如何在 ESP32 上安装 Micropython MySQLdb

How to install Micropython MySQLdb on ESP32

我想将来自 ESP32 的数据保存在网络数据库中。因此,我需要 ESP32 上 Micropython 中的模块 MySQLdb。我怎样才能在那里安装它?

您是否尝试过 https://github.com/dvrhax/uPyMySQL ? Looks like it needs to be compiled into firmware to work on ESP8266. Maybe (have not tested by myself) would be enough for ESP32 to cross-compile with mpy-cross 之类的东西。如果您尝试过,请分享您的经验。

另一种方式——编写API以PHP或任何网络语言保存数据,并使用GET/POST参数调用页面。我在我的主机上使用了这个方法,创建了 PHP 脚本来处理 GET 请求 (http://example.com/addData.php?temp=23.4&hum=57),从中提取数据 (温度和湿度)并与时间戳一起写入数据库。在网页上我有另一个脚本可以解析数据库中的数据并制作漂亮的图表。

编辑: 我最近在 ESP-32 通用(无 PSRAM)上玩 uPyMySQL,可以分享我的发现。库在开箱即用时对我不起作用 - 我必须进行多次编辑才能使其与我的 own-compiled LVGL Micropython 固件一起使用。我不得不 cross-compile 将几个文件转换为 mpy 格式,因为我的微控制器在加载库时内存不足。

当我终于连接到数据库时——它确实有效。无论如何,Lib 在列类型(int、varchar、datetime)处理方面存在一些缺陷,因为某些逻辑未移植到 Micropython,但希望它可以修复。库有调试模式 如果您想了解后台发生的事情,这很好。

但不要指望查询大数据集。我一直在玩弄 table 列 DateTime、Temp、Humidity、CO2。选择100个记录时,限制控制器不在内存中,对于大约60-70记录,它可以正常工作。

插入正常,只是你必须在最后执行commit命令。

如果您的服务器中有 php,那么您可以将您的数据发送到 php 并编写代码以将该数据存储在 MySQL 数据库中。 试试看,让我知道。

运行几乎任何从 ESP32 到托管数据库的数据库客户端都将是一个挑战(在处理能力、安全性和维护状态方面)

我建议使用 ESP32 将数据发送到 mqtt 代理,然后有其他东西,(服务器 运行 数据库,无服务器功能等)订阅该主题,然后写对数据库的任何更改。