系列文章目录
第一章 阿里云物联网平台搭建
第二章 订阅与发布MQTT消息
第三章 为ESP8266-NodeMCU搭建ArduinoIDE环境
第四章 ESP8266连接阿里云
第五章 阿里云平台云产品流转
第六章 使用Aruino与云产品流转实现远程控制ESP8266
目录
前言
一、远程控制的意义
二、准备工作
1.阿里云平台设备创建
2.创建云产品流转规则
三、远程控制步骤
前言
前面我们已经实现了如何使用ESP8266连接阿里云并实现阿里云云产品流转,通过本文,我们将灵活运用该规则去实现A设备通过云平台去控制B设备。
提示:以下是本篇文章正文内容,下面案例可供参考
一、远程控制的意义
我们使用ESP8266实现远程控制是使用其通过阿里云平台进行数据传输,从而摆脱局域网的束缚,实现阿里云平台A设备远程控制B设备。后续加上我们的上位机程序(如微信小程序、AndroidAPP、Web端)实现真正的远程控制我们的家居系统,真正距离与有线的束缚。
二、准备工作
1.阿里云平台设备创建
创建两个云上设备
如还不知道具体如何创建和连接云上设备可先看看第一章和第四章。
2.创建云产品流转规则
编写SQL
添加操作
如还不知道具体如何创建和连接云上设备可先看看第五章。
三、远程控制步骤
1.使用以下代码进行连接:
链接:https://pan.baidu.com/s/1jhDMaWmhT8a0S82x0NXlKA?pwd=yckz
提取码:yckz
2.修改为自己创建的设备信息
设备2的信息
3.修改为自己所在的局域网信息
4. 识别函数
AliyunIoTsDK::bindData("LEDSwitch",LEDSwitchCallback);
该行代码调用了AliyunIoTSDK的Arduino库,该函数第一个参数(LEDSwitch)为寻找收到的MQTT消息的字段,第二个参数(LEDSwitchCallback)为跳转的回调函数,若接收到的MQTT消息中含有“LEDSwitch”,则会跳转至第二个参数的那个回调函数。
5.回调函数
// LED状态修改的回调函数
void LEDSwitchCallback(JsonVariant p)
{
int LEDSwitch = p["LEDSwitch"];
// 变更LED状态
Serial.println("LEDSwitch:");
Serial.println(LEDSwitch);
digitalWrite(LED_BUILTIN, LEDSwitch);
}
该函数是回调函数,在回调函数中我们将LEDSwitch字段后的数据赋给变量LEDSwitch,并且将该变量的值赋给板子上的LED灯引脚,对其进行控制。后续,想要加入其他的执行的事件与变化都可以在回调函数里加,或者重新加入更多的识别函数与回调函数。
6.连接ESP8266,点击“上传”
7.打开阿里云平台,观察设备2的状态
显示“在线”
8.启用云产品流转规则
9.启用设备2的在线调试
点击“关闭-1”、“设置”
串口查看是否接收到消息与进入回调函数。
10.使用设备1模拟控制设备2
‘MQTT.fx模拟设备1
11.选择发布的主题
选择的主题来自于这里
12.发送控制指令
{
"params":{
"LEDSwitch":0
}
}
13.观察现象
总结文章来源:https://www.toymoban.com/news/detail-776753.html
通过本文。我们实现了如何使用设备A远程控制设备B,这样如果我们人在学校,但是设备在宿舍,就可以远程控制我们在宿舍的设备啦。比如:远程打开宿舍的门锁或者开灯等等。文章来源地址https://www.toymoban.com/news/detail-776753.html
到了这里,关于【智能家居远程控制系统】ESP8266连接阿里云(六)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!