18363890557 发表于 2020-10-27 23:20:45

4.14-物联网篇(阿里云物联网平台)-Android和ESP8266连接阿里云...




实现的功能Android和ESP8266连接阿里云平台,并实现Android和ESP8266之间通信控制.







开通阿里云物联网平台https://www.aliyun.com/1.搜索阿里云物联网平台(如果没有开通请自行开通)



创建产品(并在产品下面添加设备)
1.创建产品


2.设置下产品的名称





3.添加设备,设备名字我写的是ESP8266





4.点击查看









注意地域!后面有说明!


5.打开ESP8266源码,并修改上面的三个参数





6.关于地域,请参考



7.我的是上海,所以填写的是cn-shanghai



8.修改连接路由器的信息


9.下载并查看打印打印连接成功,并在每个一段时间发布消息.然后后台上面显示上线





再添加一个设备,作为Android接入1.添加设备,设备名字我写的是 Android




2.点击查看





3.打开本节Android源码,并修改上面相应的参数





4.安装到手机并打开,如果日志打印有 Connect Success说明已经接入了阿里云




配置规则引擎1.规则引擎 ,云产品流转,创建规则




2.选择编写 SQL






3.添加操作



4.注意①自己填写   ${TargetDevice}


5.启动规则











点击APP右上角菜单,选择添加设备1.点击添加设备



2.输入WiFi模块程序中使用的注册的设备的名字


3.然后点击确定,页面上将添加一个设备,点击这个设备


4.控制页面会显示当前ESP8266采集的温湿度数据,还有开关状态



5.控制继电器   













源码说明1.基础的知识请用户看前面的4.10 - 4.13章节学习2.根据用户填写的阿里云的设备信息,组合计算MQTT各个参数

注意:MQTT的ClientID 计算方式是拼接的ESP8266的MAC地址


3.APP添加设备以后发送给WiFi模块的数据格式如下:发布的主题:/a1kalhdMH2Z/Android/user/update{"data":"switch","bit":"1","TargetDevice":"ESP8266","DeviceName":"Android","status":"-1"} //询问开关状态{"data":"TH","bit":"1","TargetDevice":"ESP8266","DeviceName":"Android","status":"-1"} //询问温湿度{"data":"switch","bit":"1","TargetDevice":"ESP8266","DeviceName":"Android","status":"1"} //控制继电器吸合{"data":"switch","bit":"1","TargetDevice":"ESP8266","DeviceName":"Android","status":"0"} //控制继电器断开
所有的数据里面都有 "TargetDevice":"ESP8266","DeviceName":"Android"字段 TargetDevice 后面跟的是所添加设备的名字





字段 DeviceName 后面跟的是Android自身的设备的名字


4.关于规则引擎,云产品流转1.编写SQL 里面的SELECT为 * 代表所有消息里面的FROM设置的是/a1kalhdMH2Z/+/user/update里面的 + 代表任意字符串意思是提取发布主题 /a1kalhdMH2Z/+/user/update里面的所有消息
APP发布的主题为 /a1kalhdMH2Z/Android/user/update符合: /a1kalhdMH2Z/+/user/update(+代表任意的字符串都可以,所以主题中的Android也不例外)所以会提取这个主题里面的所有消息

2.编辑操作里面写的是 发布到另一个 Topic下面就是转发给 /a1kalhdMH2Z/${TargetDevice}/user/get 这个主题里面有一个 ${TargetDevice}意思是提取消息里面字段为 TargetDevice 的字段值,然后替换上面的${TargetDevice}APP发送的消息是{"data":"switch","bit":"1","TargetDevice":"ESP8266","DeviceName":"Android","status":"-1"}所以提取消息里面的字段为 TargetDevice 的字段值 ESP8266然后转发的主题就变为了/a1kalhdMH2Z/ESP8266/user/get





5.WiFi模块 本身就订阅了这个主题.所以APP发送的消息发给了WiFi模块




6.解析数据并上报数据注:APP发送的消息是{"data":"switch","bit":"1","TargetDevice":"ESP8266","DeviceName":"Android","status":"-1"}
ESP8266发布的主题为/a1kalhdMH2Z/ESP8266/user/updateESP8266要想发送数据给APP,那么消息里面 TargetDevice 字段后面跟的就应该是 APP使用的设备的名字Android然后APP为了便于区分是哪个设备发来的数据,那么DeviceName字段就需要跟上自身设备的名字8266上报的数据为{"data":"switch","bit":"1","TargetDevice":"Android","DeviceName":"ESP8266","status":"1"}

7.经过规则引擎之后经过SQL提取了/a1kalhdMH2Z/ESP8266/user/update 里面的所有消息然后提取消息里面TargetDevice字段值 Android最后消息就转发给了 /a1kalhdMH2Z/Android/user/get
8.APP本身就订阅了这个主题








9.APP循环发送查询继电器和温湿度指令

10.APP解析数据


关于MQTT1.组合计算MQTT参数



计算密码

2.APP添加设备,把设备名称存入数据库,和ListView




3.点击设备,跳转页面的时候携带着所点击设备的名称

4.控制页面获取这个设备名字,并把这个名字放到消息里面

页: [1]
查看完整版本: 4.14-物联网篇(阿里云物联网平台)-Android和ESP8266连接阿里云...