了解如何使用MicroPython对ESP32或ESP8266板进行编程,以通过MQTT将DHT11或DHT22传感器读数(温度和湿度)发布到支持MQTT或任何MQTT客户端的任何平台。 例如,我们将传感器读数发布到Node-RED仪表板。
注意:本教程与ESP32和ESP8266开发板均兼容。
概述
注意:本教程与ESP32和ESP8266开发板均兼容。
ESP要求从DHT11或DHT22传感器获取温度和湿度读数
温度读数发布在esp / dht / temperature主题中
湿度读数在esp / dht /湿度主题中发布
Node-RED订阅了这些主题
Node-RED接收传感器读数并将其显示在仪表上
您可以在任何支持MQTT的平台上接收读数,并根据需要处理读数
前提
要遵循本教程,您需要在ESP32或ESP8266板上安装MicroPython固件。您还需要一个IDE来编写代码并将其上传到板上。我们建议使用Thonny IDE或uPyCraft IDE:
Thonny IDEThonny IDE的安装和入门
使用esptool.py刷新MicroPython固件uPyCraft IDEuPyCraft IDE入门
安装uPyCraft IDE(Windows,Mac OS X,Linux)
将MicroPython固件闪存/上传到ESP32和ESP8266
MQTT代理
要使用MQTT,您需要一个代理。我们将使用安装在Raspberry Pi上的Mosquitto代理。
零件需求
MQTT库文件
使用uPyCraft IDE上传MQTT库文件
使用Thonny IDE上传MQTT库文件
ESP32和DHT11/DHT22原理图
ESP8266和DHT11/DHT22原理图
源代码
代码如何工作
连接到MQTT代理
重新启动并重新连接
读取DHT传感器
发布MQTT消息
准备Node-RED仪表板
ESP32或ESP8266每隔5秒钟发布esp / dht /温度和esp / dht /湿度主题的温度读数。 现在,您可以使用任何支持MQTT的仪表板或任何其他支持MQTT的设备来订阅这些主题并接收读数。
举例来说,我们将使用Node-RED创建一个简单的流程来订阅这些主题并在仪表上显示读数。
演示