【智能家居控制系统保姆级教程4】ESP8266接收云平台数据

《基于ESP8266的智能家居控制系统》
功能:
1、采集环境数据:温度、湿度、烟雾检测、人体红外检测。
2、安防警报功能:烟雾阈值判断进行报警,人体红外检测判断外人入侵报警。
3、WiFi联网、MQTT协议
4、手机APP远程控制电器设备
5、手机APP远程监控家中环境数据
6、MQTT阿里云平台远程监控家中数据和电器设备
7、手机APP手动消除警报(应对家中宠物误触情况) 

目录

1. 知识预备

2. 创建手机app设备

3. 创建自定义主题

4. 云产品流转

5.订阅主题


 1. 知识预备

我们之前有讲到使用的MQTT协议是发布/订阅的一种方式,就好比如公众号一样,我们只有关注了公众号,才能收到这个公众号发来的消息,其他人也关注了这个公众号的话,也可以同时收到这个新的消息,同时我们也可以向这个公众号发消息。在MQTT中主题就是公众号,订阅就是关注,我们要先订阅主题才能接收主题发来的消息。

其实在本项目中我们用到的主题就两种一个是属性上报主题,一个是自定义主题。esp8266端会向属性上报主题发消息,然后会订阅自定义主题(自定义主题用来接收云流转发来的消息)

手机APP端也向自己的属性上报主题内发消息,然后也订阅一个自定义主题。

也就是总共参与进来的就4个主题。整体规则如下图所示。云流转规则如何设置,会在下面进行讲解。云流转配置成转发的规则,可以实现将A设备主题内的数据转发到B设备的主题中。

2. 创建手机app设备

做到这一步,需要你们首先在同一产品下,创建好手机APP要连接的设备,创建方式与前面讲的ESP8266设备一致即可,这里我就不在演示。属性就不用再次定义了,因为属性是一个产品的属性,同一产品下所有的设备属性一致。创建好之后如下图所示。同一个产品smarthome下有两个设备一个用来连接esp8266一个用来连接手机app,这样就不会导致同时连一个设备挤下线了。我的手机app设备名称起的不好,你们可以起个有标志性的比如就叫PhoneAPP之类的。

3. 创建自定义主题

接下来我们讲解如何在产品中创建自定义主题

打开阿里云物联网平台,进入控制台界面,查看产品,操作如下。

选择Topic类列表,选择自定义Topic,点击定义Topic类

创建两个自定义主题如下图所示,复制下来主题名/k17gxDWtuCB/ESP8266/user/apptomcu(注意修改${deviceName}这个主题是app转发到esp8266所以填写app设备的名称ESP8266注意我这里手机app设备名称起的有问题,你们别混肴/k17gxDWtuCB/mcu-device/user/mcutoapp

4. 云产品流转

这里要创建两个云流转规则,一个esp8266传感器数据转发到手机app自定义主题/k17gxDWtuCB/mcu-device/user/mcutoapp,一个手机app数据转发到esp8266自定义主题/k17gxDWtuCB/ESP8266/user/apptomcu。

自定义主题定义好之后开始云流转配置,点击云产品流转,返回旧版

点击创建规则,规则名称和规则描述随便填,数据格式选择JSON格式,如下图所示。

创建后点击编写SQL如下图所示。

SQL设定按照下图4-1进行配置。

SQL定义好点击确定,点击添加操作,

操作按照下图来进行配置,这样就完成了esp8266数据转发到手机app的操作,接下来同理的操作,再创建一个规则用来将app的数据转发到esp8266,我不再讲解只放图片。

手机app属性上报数据转发到esp8266端自定义主题

最后回到云产品流转界面,将刚定义好的两个规则启动。启动之后,就会一直开启,除非你手动点击停止,不然就算你关闭网页,或者怎样都不停止。

至此,云产品流转设置结束。

5.订阅主题

我们知道只有订阅主题才可以接收这个主题发来的数据,我们想要esp8266端接收手机app端远程发来的控制电器设备的数据,就需要订阅这个主题。这个主题就是上面云流转的自定义主题/k17gxDWtuCB/ESP8266/user/apptomcu。

打开esp8266端总代码

里面的mqttCheckConnect()这个函数就是用来连接设备和订阅主题的。里面的client.subscribe()用来订阅主题,别忘了在代码开头进行修改,改成自己的自定义主题

这样就订阅成功了,会在连接设备成功后,自动订阅这个主题。

  • 27
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值