ESP32 通过 BLE VS Wifi 传输数据

物联网 树莓派 无线上网 ESP32 蓝牙低功耗
2021-06-18 12:02:08

我正在做一个项目,我有一个 ESP32 设备(Wifi 和蓝牙),它从一些传感器读取数据,例如温度和土壤湿度(室外环境)。然后将数据发送到 15 米远的 Raspberry PI,然后 PI 通过 Internet 发送数据。现在,Raspberry 将插入外部稳定电源,而 ESP32 将使用 3.3 伏电池运行,因此我需要设计好两个设备的通信方式以节省能源。乍一看,我正在考虑简单的 RESTful API,基本上,一个在 PI 上运行的 Flask 应用程序,带有 ESP32,每 3 小时从深度睡眠模式唤醒一次,向服务器发送 POST 请求。经过一番研究,我发现我的 ESP32 也支持 BLE(低功耗蓝牙),所以我玩了一下,我已经能够在 PI 和 ESP32 之间交换一些数据。我的做法是:

  • ESP32 自我宣传,将传感器的值写入特征
  • PI 持续扫描 ESP32,并在找到时读取数据
  • ESP32 在每个周期后进入深度睡眠。

即使我设法完成了这项工作,我认为 Flask 方法要干净得多,因为没有像现在 PI 中那样的循环。关键是 ESP32 几乎总是处于深度睡眠状态,所以我需要循环(在 PI 中)找到它,如果找到则读取数据。我正在阅读 BLE 设计中传感器是服务器的内容,但我认为如果 PI 是服务器自己做广告并且 ESP32 发现它并将传感器的值写入一个特性中,那可能会更好。我仍然需要完全理解这里的最佳模式。

任何人的建议在上面有更多经验?

0个回答
没有发现任何回复~