零门槛实现WiFi ESP8266 MQTT 通信
发布网友
发布时间:2024-09-17 02:41
我来回答
共1个回答
热心网友
时间:2024-09-17 12:36
本教程参考自 FlexLua 官网的ShineBlink学习板栏目。
一、前言
MQTT是一种基于TCP的物联网通信协议,在物联网领域应用非常广泛,基本上所有的云平台都支持设备以MQTT协议接入,所以如果您的设备支持MQTT连接,就可以很容易的对接各云平台(比如ONE NET、阿里云、腾讯云等)。CORE提供的MQTT库函数也十分简单,您只需根据各云平台的规则,在调用MQTT库函数时对传入的参数做相应的调整即可对接各家云平台。
使用Core提供的基于ESP8266 WIFI模块的库函数能够很容易的将Core对接入云平台,涉及的库函数只有如下三个:
LIB_MQTTConfig() --初始化 LIB_MqttRecvSub() --接收 LIB_MqttSendPub() --发送
二、本例程实现功能介绍
CORE向云端(mqtt broker)上传温湿度数据,同时也接受云端下发的命令数据来控制CORE电路板上LED2灯的亮灭。
本例程接入的 OneNet mqtt 云平台,OneNet 的接入方法请参考其官网教程。
三、硬件接线图、材料清单
四、完整代码&代码解析
(1)完整代码
代码功能:CORE每隔9秒向云端上传温湿度数据,同时也接受云端下发的数据来控制CORE电路板上LED2灯的亮灭。
代码部分省略,具体内容请参考原文。
(2)代码关键部分解析
PART 1 (路由器参数)
代码部分省略,具体内容请参考原文。
PART 2(云平台地址)
代码部分省略,具体内容请参考原文。
PART 3(MQTT连接参数)
代码部分省略,具体内容请参考原文。
PART 4(MQTT订阅、发布、接收)
代码部分省略,具体内容请参考原文。
从云平台下发cmd指令控制CORE上的LED2灯的亮灭:
Ⅰ 鼠标点击进入在对应的设备的“更多操作”中的“下发命令” -->
Ⅱ 然后在弹出的界面中的命令内容中输入“{"LED":2}”,超时时间5秒,返回结果中选择String格式
Ⅲ 最后点击发送,待设备成功收到命令并返回正确的应答后(应答消息中包含“Got it”),我们就可以看到Core电路板上的LED2灯珠由亮变灭或者由灭变亮了。