006-微信小程序和ESP8266连接阿里云物联网平台,并通过云平台实现远程温湿度采集和继电器控制(预注册)

<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/ESA2GJK1DH1K_A/" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>

 

 

实现的功能

微信小程序和ESP8266连接阿里云物联网平台,并实现微信小程序和ESP8266之间通信控制.

 

 

 

 

 

前要

请先学习完上一节!并配置好规则引擎!

请先学习完上一节!并配置好规则引擎!

请先学习完上一节!并配置好规则引擎!

 

添加设备

1.上一节我添加了一个名字为 8266LUASDK的产品

然后在这个产品下注册了名字为Android 和 ESP8266 的设备

这一节咱再在这个产品下注册个名字为 Mini 的设备

这个设备作为给微信小程序接入使用

 

 

 

 

 

 

 

 

 

 

 

 4.点击查看

 

 

 

 

 

 

 

5.打开本节微信小程序源码,并修改上面相应的参数

如果日志打印有 connect 说明成功接入了阿里云平台

 

 

 

 

 

测试(单片机程序还是使用的上一节的单片机程序)

1.提醒

可以直接用开发软件测试,也可以用真机测试

测试的时候一次只能一个做测试! 否则就会相互挤掉连接.

如果用手机测试,可以把软件设置为离线.

 

2.选择添加自定义设备

 

 

 

 

3.输入单片机使用的设备的名字

 

 

 

 

4.点击这个设备进入控制页面

 

 

 

 

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

 

 

 

 

6.控制继电器

 

 

 

 

 

 

 

源码说明

我再解释下一个事情:

阿里云注册的一个设备就作为了一个mqtt客户端,你可以把这个设备作为单片机使用也可以作为APP使用.

一个设备的信息同一时间只能一个设备去用,如果同时使用,就会挤掉线!!!!

 

1.整体通信流程说明(就再叨叨这一遍)

 

微信小程序和单片机设备都是作为了阿里云注册的设备接入.

 

其实就是阿里云上面注册的两个设备通信.

 

这节的微信小程序使用的云端注册的设备名字为 Mini 的设备接入云平台

 

发布的主题是:  /{ProductKey}/{DeviceName}/user/update

 

即:/a1kalhdMH2Z/Mini/user/update

 

 

 

订阅的主题为:/{ProductKey}/{DeviceName}/user/get

 

即:/a1kalhdMH2Z/Mini/user/get

 

 

 

这节的单片机使用的云端注册的设备名字为 ESP8266 的设备接入云平台

 

发布的主题是:  /{ProductKey}/{DeviceName}/user/update

 

即:/a1kalhdMH2Z/ESP8266/user/update

 

 

 

订阅的主题为:/{ProductKey}/{DeviceName}/user/get

 

即:/a1kalhdMH2Z/ESP8266/user/get

 

 

 

微信小程序和单片机设备各自作为阿里云的设备接入阿里云服务器.

 

然后微信小程序 添加设备的时候是添加的单片机设备注册的名字

 

然后微信小程序发布的消息为:(以控制继电器吸合为例)

 

{"TargetDevice":"ESP8266","DeviceName":"Mini","data":"switch","bit":"1","status":"1"}

 

 

 

TargetDevice 字段的值是 ESP8266,是微信小程序添加的设备的名字.

 

DeviceName 字段的值是 Mini ,是微信小程序本身设备的名字.

 

这条信息发给云平台以后,经过了转发规则

 

 

 

注:(提取数据)  /a1kalhdMH2Z/+/user/update  里面的 + 代表任意字符串

 

意思是提取符合主题 /a1kalhdMH2Z/任意/user/update  里面的所有消息

 

上面的就提取了  

 

{"TargetDevice":"ESP8266","DeviceName":"Mini","data":"switch","bit":"1","status":"1"}

 

 

 

 

 

 

 

 

 

 

注:(对数据进行操作)   发布到另一个 Topic    /a1kalhdMH2Z/${TargetDevice}/user/get 

 

${TargetDevice}意思是提取消息里面字段为 TargetDevice 的字段值,然后替换上面的  ${TargetDevice}

 

咱的消息是 {"TargetDevice":"ESP8266","DeviceName":"Mini","data":"switch","bit":"1","status":"1"}

 

所以最终消息转发给下面的主题(也就是单片机订阅的主题)

 

/a1kalhdMH2Z/ESP8266/user/get 

 

然后单片机就收到了消息 {"TargetDevice":"ESP8266","DeviceName":"Mini","data":"switch","bit":"1","status":"1"}

 

 

 

 

 

 

 

 

单片机接收到消息以后,提取 "DeviceName":"Mini"

 

然后用自己的发布主题发布消息  /a1kalhdMH2Z/ESP8266/user/update

 

消息为:

 

{"TargetDevice":"Mini","DeviceName":"ESP8266","data":"switch","bit":"1","status":"1"}

 

 

 

TargetDevice 字段的值改为了 Mini

 

DeviceName 字段的值为单片机自己的设备名字  ESP8266

 

 

 

消息发给了服务器,然后经过转发规则,同理 ,消息便会转发给了微信小程序

 

最后微信小程序 提取消息里面的数据,就完成了通信

 

2.微信小程序执行流程说明

1.作为阿里云的一个设备接入云平台

 

 

 

 

 

 

 

2.添加一个设备,并把添加的设备的名字存储到数据库

 

 

 

 

 

 

 

 

3.点击跳转到控制页面时把设备名字传递过去

 

 

 

 

4.控制页面获取设备名称并组合发送的消息

 

 

 

 

5.组合自己的自定义主题

 

 

 

 

 

6.发送消息

 

 

 

 

 

 

 

 

7.接收处理消息

 

 

 

 

单片机程序说明请看上一节

单片机程序说明请看上一节

单片机程序说明请看上一节

 

 

结语

用户也可以同时打开上一节的手机APP控制设备.

 

posted on   广源时代  阅读(2943)  评论(1编辑  收藏  举报

编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具

导航

支付宝 QQ群
点击右上角即可分享
微信分享提示