当前位置:   article > 正文

手把手教你如何使用ESP8266(ESP-01S)连接到阿里云物联网平台,并通过微信小程序控制设备(如灯的亮、灭、数据上报到微信中显示)_esp8266连接阿里云阿里云_esp8266 微信小程序

esp8266 微信小程序

打开烧录软件,如下图配置进行烧录固件

按照上图配置好后,点"START"开始烧录,直至烧录完成,关闭即可。需要注意的是串口选择,是根据自已安装驱动时的串口配置,我的电脑使用是COM8串口,所以这里选择COM8。

测试是否烧录成功

使用串口工具,发送AT指令,返回OK,代表固件烧录成功。(如下图)

软件环境配置

安装Arduino IDE

使用Arduino IDE作为项目开发的主要工具,自行安装。同时也需要安装相关工具库,如下:

安装相应的库

ESP8266、PubSubClient、Crypto、ArduinoJson等这些库文件可以在ArduinoIDE上下载安装。这里就不详细讲解,不懂的,自行百度。

阿里云物联网平台配置

MQTT(Message Queuing Telemetry Transport)是一种轻量级的通信协议,常用于物联网设备之间的通信。而阿里云物联网平台是阿里云提供的物联网解决方案,可以帮助用户快速搭建物联网应用。

通过MQTT协议,物联网设备可以与阿里云物联网平台进行稳定可靠的通信,实现设备之间的数据交换和控制。其次,通过连接阿里云物联网平台,用户可以方便地管理和监控物联网设备,实现远程配置、升级和故障排查等功能。此外,阿里云物联网平台提供了丰富的数据分析和可视化展示功能,可以帮助用户更好地理解和利用物联网设备生成的数据,实现智能化决策和优化。

因此,将MQTT与阿里云物联网平台连接可以极大地提升物联网应用的可靠性、灵活性和智能化水平,为用户提供更加便捷和高效的物联网解决方案。

下面为大家讲解一下,如何使用阿里云物联网平台配置我们的物联网环境。

从阿里云平台中找到物联网平台

选择“管理控制台”进入平台管理界面,再找到“公共实例”进入配置(如下图)

创建产品

找到“产品”,然后选择“创建产品”,如下图

参照下图红框中的选项进行选择,产品名称填写你自已的

以上是添加微信端的设备,确认后,会进入到下图的界面,找到添加设备,点击“前往添加” 你的设备。

添加设备

添加ESP-01S端设备

下面是添加ESP-01S设备端的流程

点击“添加设备” 后,会弹出如下图所示界面,填写上相应的名称,确认

添加微信端

下面是添加微信端的流程,原理同上

至始,两端设备,添加完成。下面是配置Topic。

自定义Topic

回到“产品”选项,添加自定义的Topic,如下图

添加ESP01S端的Topic
添加微信端的Topic

定义完成后,选择“消息转发”,找到“云产品流转”,如下图

创建规则

选择“返回旧版”,创建ESP01S端和微信端的规则

创建ESP01S端的规则

ESP01S端处理数据的规则创建

ESP01S端转发数据规则的创建

确认后,返回到创建规则的界面,找到刚才创建的ESP01S端的规则,启动它,即可。 

创建微信端的规则
微信端处理数据的规则创建

微信端转发数据规则的创建

 最后别忘记启动它

最后,就是选择设置,分别找到两端的三元组,复制出来备用

ESP-01S端三元组的获取办法,同上,不再详细讲解。按照上述所示,自行查看。

配置ESP-01S设备的自定义功能

这里我需要配置三个自定义功能(根据自已的需要配置)。首先在阿里云物联网平台中找到“产品”,再找到“功能定义”,打开“查看”,如下图

然后,找到“前往编辑草稿”,进去添加自已需要的功能

最后,记得要发布上线,不然,它们是不会生效的。

至始,阿里云物联网平台就配配完成。接下来就是实现微信端与ESP8266端的代码了。

微信小程序端代码参数设置

小程序导入设置

修改小程序的appid

微信端的三元组参数填写

当阿里云物联网配置完成后,打开设备,发现两端的设备处于未激活状态。如下图

那么,要如何才能激活使用呢?这里就需要打开微信小程序的代码,找到,填写设备三元组的地方,填写上微信端的三元组,如下面所示。

aliyunInfo: {
    productKey: '设备Key,对应上面阿里云平台中的微信端的Key', //阿里云连接的三元组 ,请自己替代为自己的产品信息!!
    deviceName: '根据你创建的设备名称来填写,如上面阿里云平台中,微信端的名称标识填写的是WeChat,这里就写WeChat', //阿里云连接的三元组 ,请自己替代为自己的产品信息!!
    deviceSecret: '设备密钥', //阿里云连接的三元组 ,请自己替代为自己的产品信息!!
    regionId: '主机所在地区,如上海,就填cn-shanghai', //阿里云连接的三元组 ,请自己替代为自己的产品信息!!
    pubTopic: '发布主题的地址', //发布消息的主题
    subTopic: '订阅消息主题的地址', //订阅消息的主题
},

//以上的所有参数,可以在阿里云物联网平台,微信端中可以找到,不懂的,参考上面阿里云配置可以找到
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

将以上参数填写完成后,保存或编译运行,这时打开阿里云物联网平台,就会发现你的微信端已经在线了(如下图)

如何填写发布主题和订阅消息主题
发布主题

在阿里云物联网平台中,找到“消息转发”,然后打开“云产品流转”,找到红框中的地址,粘贴到微信小程序对应的位置,即可。如下图

订阅消息主题

同理,在“云产品流转”中打开ESP-01S端,找到红框中的地址,粘贴到微信小程序对应的位置,即可。如下图

它们两者的关系,不懂的,看到两遍,好好理解下。

订阅消息

第一次使用,需要先订阅一下设备(也就是微信绑定ESP01S模块),这里只需订阅一次,即可。在微信小程序源码中可以找到,取消注释,等待成功连接服务器之后,在随便点击(开灯)或(关灯)就可以订阅函数,订阅后,打上注释。

this.data.client.subscribe(this.data.aliyunInfo.subTopic,function(err){
    if(!err){
        console.log("订阅成功");
    };
    wx.showModal({
        content: "订阅成功",
        showCancel: false,
    })
})
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
发布消息
if (this.data.client && this.data.client.connected) {
    //{"method":"thing.service.property.set","id":"2117888738","params":{"LightSwitch":1},"version":"1.0.0"}
    this.data.client.publish(this.data.aliyunInfo.pubTopic, '{"params":'+JSON.stringify(sendData)+'}');
    console.log(this.data.aliyunInfo.pubTopic)
    console.log(JSON.stringify(sendData))
} else {
    wx.showToast({
        title: '请先连接服务器',
        icon: 'none',
        duration: 2000
    })
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
设备开关控制
onLightClick:function(){
    if(this.data.switchStatus){
       that.sendCommond(1);
       this.setData({
           switchStatus: !this.data.switchStatus
       });
    }else{
       that.sendCommond(0);
       this.setData({
           switchStatus: !this.data.switchStatus,
       });
    }
},
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

ESP8266端代码参数设置

ESP8266端三元组填写

同理,ESP-01S端,也需要填写设备的三元组,使用Arduino打开ESP01S项目的源码,找到,如下所示位置,填写上对应的三元组(这里根据自已配置的来填写)

// 设置产品和设备的信息,从阿里云设备信息里查看
const String productKey = "a1SIobCLvYD";                        //替换
const String deviceName = "ESP-01S";               //替换
const String deviceSecret = "b8298ac5f763da25ee92ea44e17921bc"; //替换
//订阅主题
const String subTopic = "/sys/" + productKey + "/" + deviceName + "/thing/service/property/set";
//发送主题
const String pubTopic = "/" + productKey + "/" + deviceName + "/user/update";
const String regionId = "cn-shanghai"; //替换自己的区域id
const String serverUrl = productKey + ".iot-as-mqtt." + regionId + ".aliyuncs.com";
const int serverPort = 1883;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
ESP-01S设备状态回调

需要注意,LightSwitch,需要对应阿里云中的功能定义属性标识符,参考上面的配置

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年嵌入式&物联网开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新!!

片转存中…(img-VocFawCW-1715743762063)]

[外链图片转存中…(img-uPZKE9L2-1715743762064)]

[外链图片转存中…(img-KL78yPQS-1715743762064)]

[外链图片转存中…(img-944WxmKx-1715743762065)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新!!

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

闽ICP备14008679号