当前位置:   article > 正文

【智能家居远程控制系统】ESP8266连接阿里云(六)_正点原子esp8266连接阿里云

正点原子esp8266连接阿里云

系列文章目录

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

第二章 订阅与发布MQTT消息

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

第四章 ESP8266连接阿里云

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

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



前言

前面我们已经实现了如何使用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.回调函数 

  1. // LED状态修改的回调函数
  2. void LEDSwitchCallback(JsonVariant p)
  3. {
  4. int LEDSwitch = p["LEDSwitch"];
  5. // 变更LED状态
  6. Serial.println("LEDSwitch:");
  7. Serial.println(LEDSwitch);
  8. digitalWrite(LED_BUILTIN, LEDSwitch);
  9. }

该函数是回调函数,在回调函数中我们将LEDSwitch字段后的数据赋给变量LEDSwitch,并且将该变量的值赋给板子上的LED灯引脚,对其进行控制。后续,想要加入其他的执行的事件与变化都可以在回调函数里加,或者重新加入更多的识别函数与回调函数。

 6.连接ESP8266,点击“上传”

7.打开阿里云平台,观察设备2的状态

显示“在线”

 8.启用云产品流转规则

 9.启用设备2的在线调试

点击“关闭-1”、“设置”

 串口查看是否接收到消息与进入回调函数。

 10.使用设备1模拟控制设备2

MQTT.fx模拟设备1

 11.选择发布的主题

选择的主题来自于这里 

 12.发送控制指令

  1. {
  2. "params":{
  3. "LEDSwitch":0
  4. }
  5. }

 13.观察现象


 总结

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/391425
推荐阅读
相关标签
  

闽ICP备14008679号