使用MQTT,NodeMCU,DHT22,RaspberryPi和Blynk监视温度和湿度。
硬件/软件
介绍
连接
编程
Arduino
Raspberry Pi 3 b+
上传代码
解释代码-ARDUINO IDE
解释代码-RaspberryPi-Python
物联网MQTT面板
硬件
提示
原理图/完整代码
介绍
使用Raspberry Pi 3 B +作为多个NodeMCU的代理,并使用DHT-22传感器测量温度和湿度并在Blynk App上进行监视。 我制作了算法,使NodeMCU和Raspberry具有可扩展性。 只需更改发布和订阅的主题,并在Blynk上添加虚拟图钉,即可随时获取所有数据。
如果您的互联网连接丢失,您的传感器将继续向您的代理器发送数据。意味着您可以保存数据!!! (当然,您需要进行一些编程)
连接
您的网络看起来如何:
编程
首先,必须确保已在Arduino IDE和Raspberry Pi 3B +上安装了所有库。
Arduino
在Arduino IDE上安装库。
MQTT
DHT传感器库
Adafruit统一传感器库
ESP8266
Raspberry Pi 3 b+
安装Python IDE上的库。
Time - Python本机库
Paho MQTT - 在终端上键入“ pip install paho-mqtt”以安装MQTT库。如果有任何疑问,访问此处
上传代码
将代码分别上传到您的NodeMCU和Raspberry。
解释代码-ARDUINO IDE
这些是之前提到的要安装在Arduino IDE上的库。
#include <ESP8266WiFi.h> // Esp8266/NodeMCU Library
#include <PubSubClient.h> // MQTT Library
#include “DHT.h” // DHT Sensor
声明要在整个代码中使用的变量:
const char* mqtt_server = “Broker_IP_Address”; // MQTT Server IP Address
mqtt_server:要在Raspberry pi上获取IP地址,请打开终端屏幕并输入:
pi@raspberrypi:~ $ ifconfig
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.200 netmask 255.255.255.0 broadcast 192.168.1.255
在此示例中,IP地址为192.168.1.200
const char* clientID = “room1”; // The client id identifies the NodeMCU device.
clientID:标识您正在使用的NodeMCU的任何名称或数字。在这种情况下,它将位于room1。因此它被命名为room1。
详情参阅 - 亚图跨际