亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

NodeMCU 和 Raspberry Pi 3 B+

之间的 MQTT 通信

使用 MQTT、NodeMCU、DHT22、RaspberryPi 和 IoT MQTT Panel 监控温度和湿度。

使用 Raspberry Pi 3 B+ 作为多个 NodeMCU 的代理,其中 DHT-22 传感器测量温度和湿度并在 IoT MQTT Panel App 上进行监控。我使 NodeMCU 和 Raspberry 的算法可升级。只需更改已发布和订阅的主题,并添加到 IoT MQTT Panel App 即可随时掌握所有数据。

我在互联网上搜索了很多信息,因为我对 raspberry、python 和 MQTT 一无所知。所以,我总结了我所学到的一切,并赞扬了这些网站。

如果您的互联网连接丢失,您的传感器将继续向您的经纪人发送数据。这意味着您可以保存数据!!! (当然你需要做一些编程)

请关注我以获取任何更新。很快我将发布所有运行的视频! 🙂

1。连接事物:

您的网络将是什么样子:

2.编程的东西:

首先,您必须确保在 Arduino IDE 和 Raspberry Pi 3B+ 上安装了所有库。

2.1 Arduino

在您的 Arduino IDE 上安装库。

2.2 树莓派 3 b+

在您的 Python IDE 上安装库。

2.3 上传代码

分别上传代码到你的NodeMCU和Raspberry。

2.4 解释代码——ARDUINO IDE

这些是之前提到的要安装在您的 Arduino IDE 上的库。

#include  // Esp8266/NodeMCU 库#include  // MQTT 库#include "DHT.h" // DHT 传感器 

声明为在整个代码中使用的变量:

const char* mqtt_server ="Broker_IP_Address"; // MQTT 服务器 IP 地址 

mqtt_server :要获取 Raspberry pi 上的 IP 地址,请打开终端屏幕并输入:

[email protected]:~ $ ifconfigwlan0:flags=4163 mtu 1500 inet 192.168.1.200 netmask 255.255.255.0 broadcast 165.192  

在此示例中,IP 地址将为 192.168.1.200

const char* clientID ="room1"; // 客户端 id 标识 NodeMCU 设备。 

clientID :用于标识您正在使用的 NodeMCU 的任何名称或编号。在这种情况下,它将位于 room1。所以它被命名为room1。

const char* topicT ="/room1/temperature"; // 主题温度const char* topicH ="/room1/湿度"; // 话题湿度 

topicT :发布温度的话题。在此示例中,对于 room1 温度,主题将是“/room1/temperature”。

topicH :发布湿度的主题。在这个房间 1 湿度示例中,主题将是“/room1/湿度”。

const char* willTopic ="/room1/status"; // 主题 Statusconst char* willMessage ="0"; // 0 - 断开连接 

willTopic :发表遗嘱的主题。这将用于检查 NodeMCU 是否已连接/打开。如果它断开连接,它将发布 willMessage willTopic。 在这种情况下“/room1/status”

willMessage :将在 willTopic 上发布的消息 如果 NodeMCU 断开/关闭。

int willQoS =0;boolean willRetain =true; 

willQoS :用于设置服务质量。在这种情况下为 0。

将保留 :用于在断开连接时保留遗嘱信息。设置为 True。

int counter =0; // 用于重新连接MQTT serverconst char* swversion ="1.0"; // 软件版本 

计数器 :用于重新连接例程的计数器。

swversion :用于控制我的软件版本。

WiFiClient wifiClient;PubSubClient 客户端(mqtt_server, 1883, wifiClient); // 1883 是 Broker 的监听端口 

wifiClient :创建一个客户端,该客户端可以连接到 client.connect() 中定义的指定互联网 IP 地址和端口。

client() :Client 是所有基于 WiFi 客户端的调用的基类。它不是直接调用的,而是在您使用依赖于它的函数时调用。

DHT dhtA(2, DHT22); // 名为 dhtA 的 DHT 实例,NodeMCU D4 上的 Pin 和传感器类型 

DHT :创建一个名为 dhtA 的实例并分配传感器 DHT-22 的 NodeMCU V3 (D4) 的引脚 2。按照下面的示意图。如果您想使用另一个引脚,请将值更改为正确的引脚。在更改使用的引脚之前,请检查下面的引脚分配以分配正确的引脚。

如果您使用的是 DHT-11,它将是:

注意: 如果您使用的库与我相同。如果您使用不同的库,请查看库文档以检查您应该如何声明使用的引脚和传感器。

void setup() :这里我们初始化东西。

void setup() {Serial.begin(9600); // 调试目的检查 DHT 和与 MQTT Broker 的连接是否正常工作Serial.print(swversion);// Debug.软件版本dhtA.begin(); // 启动 DHT-22 

连接到 MQTT 代理。

delay(2000); // 延迟以允许与 MQTT Broker 的第一次连接 

延迟(2000) :如果第一次连接失败,则增加时间。在这种情况下,2000 允许 NodeMCU 连接到 Broker。

if (client.connect(clientID,"","", willTopic, willQoS, willRetain, willMessage, true)) { // 连接到 MQTT Broker 

client.connect() :下面解释。摘自:https://pubsubclient.knolleary.net/api.html#connect5

____________________________________________________________

布尔连接(clientID、用户名、密码、willTopic、willQoS、willRetain、willMessage、cleanSession)

使用 Will 消息、用户名、密码和指定的干净会话标志连接客户端。

注意 :即使 cleanSession 设置为 false /0 客户不会 重试 qos 1 发布失败。此标志仅用于维护代理上的订阅。

参数

退货

来源:NodeMCU 与 Raspberry Pi 3 B+ 之间的 MQTT 通信


制造工艺

  1. Python 和 Raspberry Pi 温度传感器
  2. Raspberry Pi 温度和光传感器
  3. Raspberry Pi 传感器和执行器控制
  4. 新的 RASPBERRY PI 3 型号 B + 功能和购买
  5. 使用 Raspberry Pi 和 Python 构建机器人
  6. 电镀和阳极氧化的区别
  7. 有色金属和黑色金属的区别
  8. 钎焊和锡焊的区别
  9. 钻孔、镗孔和铰孔的区别
  10. 整形机和刨床的区别
  11. 离心泵和往复泵的区别
  12. 脉冲涡轮和反作用涡轮的区别