400字范文,内容丰富有趣,生活中的好帮手!
400字范文 > 【智能家居远程控制系统】ESP8266连接阿里云(六)

【智能家居远程控制系统】ESP8266连接阿里云(六)

时间:2020-08-02 05:16:12

相关推荐

【智能家居远程控制系统】ESP8266连接阿里云(六)

系列文章目录

第一章阿里云物联网平台搭建

第二章 订阅与发布MQTT消息

第三章为ESP8266-NodeMCU搭建ArduinoIDE环境

第四章ESP8266连接阿里云

第五章 阿里云平台云产品流转

第六章 使用Aruino与云产品流转实现远程控制ESP8266

目录

前言

一、远程控制的意义

二、准备工作

1.阿里云平台设备创建

2.创建云产品流转规则

三、远程控制步骤

前言

前面我们已经实现了如何使用ESP8266连接阿里云并实现阿里云云产品流转,通过本文,我们将灵活运用该规则去实现A设备通过云平台去控制B设备。

提示:以下是本篇文章正文内容,下面案例可供参考

一、远程控制的意义

我们使用ESP8266实现远程控制是使用其通过阿里云平台进行数据传输,从而摆脱局域网的束缚,实现阿里云平台A设备远程控制B设备。后续加上我们的上位机程序(如微信小程序、AndroidAPP、Web端)实现真正的远程控制我们的家居系统,真正距离与有线的束缚。

二、准备工作

1.阿里云平台设备创建

创建两个云上设备

如还不知道具体如何创建和连接云上设备可先看看第一章和第四章。

2.创建云产品流转规则

编写SQL

添加操作

如还不知道具体如何创建和连接云上设备可先看看第五章。

三、远程控制步骤

1.使用以下代码进行连接:

链接:/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.观察现象

总结

通过本文。我们实现了如何使用设备A远程控制设备B,这样如果我们人在学校,但是设备在宿舍,就可以远程控制我们在宿舍的设备啦。比如:远程打开宿舍的门锁或者开灯等等。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。