了解如何使用MicroPython对ESP32或ESP8266板进行编程,以通过MQTT将BME280传感器读数(温度,湿度和压力)发布到支持MQTT或任何MQTT客户端的任何平台。 例如,我们将传感器读数发布到Node-RED仪表板。
注意:本教程与ESP32和ESP8266开发板均兼容。
概述
下图显示了我们将构建的项目的高级概述。
- ESP要求从BME280传感器获取温度和湿度读数
- 温度读数发布在esp / bme280 / temperature主题中
- 湿度读数发布在esp / bme280 /湿度主题中
- 压力读数发布在esp / bme280 / pressure主题中
- Node-RED订阅了这些主题
- Node-RED接收传感器读数并将其显示在仪表上
- 您可以在任何支持MQTT的平台上接收读数,并根据需要处理读数
前提
要遵循本教程,您需要在ESP32或ESP8266板上安装MicroPython固件。您还需要一个IDE来编写代码并将其上传到板上。我们建议使用Thonny IDE或uPyCraft IDE:
- Thonny IDE
- Thonny IDE的安装和入门
- 使用esptool.py刷新MicroPython固件
- uPyCraft IDE
- uPyCraft IDE入门
- 安装uPyCraft IDE(Windows,Mac OS X,Linux)
- 将MicroPython固件闪存/上传到ESP32和ESP8266
MQTT代理
要使用MQTT,您需要一个代理。我们将使用安装在Raspberry Pi上的Mosquitto代理。
零件需求
MQTT库文件
使用uPyCraft IDE上传MQTT库文件
使用Thonny IDE上传MQTT库文件
BME280 MicroPython库
BME280和ESP32原理图
BME280和ESP8266原理图
源代码
代码如何工作
连接到MQTT代理
重新启动并重新连接
读取BME280传感器
发布MQTT消息
准备Node-RED仪表板
详情参阅 - 亚图跨际