首页文章esp8266 云端 手机端 esp8266上云云端手机「esp8266 云端 手机端 esp8266上云」

esp8266 云端 手机端 esp8266上云云端手机「esp8266 云端 手机端 esp8266上云」

时间2025-01-17 02:20:44发布yu分类文章浏览124
导读:(示例:stm32f103c8t6+esp01s串口AT指令模式)流程简介:...


(示例:stm32f103c8t6+esp01s串口AT指令模式)

流程简介:

esp8266 云端 手机端 esp8266上云_嵌入式硬件

      本期教程使用的是stm32+AT指令控制esp01s接入华为云联网平成数据上报与命令处理,在先前如果使用Arduino开发过后的esp8266可能已经无法使用AT指令,或者出厂固件不支持全部的MQTT功能,这里我们首先对esp8266进行MQTT固件烧录,如果平时一直在使用原厂固件开发,可跳过第一步,若AT指令无效再按第一步操作。

烧录工具链接:https://docs.ai-thinker.com/tools

esp8266 云端 手机端 esp8266上云_stm32_02

固件链接:

https://docs.ai-thinker.com/%E5%9B%BA%E4%BB%B6%E6%B1%87%E6%80%BB

大家根据自己需要选择相应的版本,我使用的是esp01s,下载的是1471号

esp8266 云端 手机端 esp8266上云_串口_03

esp8266 云端 手机端 esp8266上云_stm32_04

连接u转ttl模块,点击START,然后保持esp01s的IO0拉低后重新上电

esp8266 云端 手机端 esp8266上云_stm32_05

 

esp8266 云端 手机端 esp8266上云_esp8266 云端 手机端_06

打开串口助手,按下复位,输入命令”AT”,注意要取消勾选十六进制发送,勾选发送新行,然后检查串口打印工作状况,下图表示正常:

esp8266 云端 手机端 esp8266上云_stm32_07

我们即将用到的AT指令可以从官方手册中学习:

https://docs.ai-thinker.com/%E5%9B%BA%E4%BB%B6%E6%B1%87%E6%80%BB

esp8266 云端 手机端 esp8266上云_esp8266 云端 手机端_08

esp8266 云端 手机端 esp8266上云_嵌入式硬件_09

1) AT+CWMODE=1

设置模块为STA模式

2) AT+CWJAP="填写wifi名称","填写WiFi密码"

连接WiFi,需略微等待片刻,等显示连接后再进行下面的操作

3) AT+MQTTUSERCFG=0,1,"NULL","填写用户名","填写密码",0,0,""

设置MQTT的登陆用户名与密码

用户名与密码为华为云MQTT三元组的相关信息,可以在下面的网站生成:https://iot-tool.obs-website.cn-north-4.myhuaweicloud.com/

具体可以参考之前的文章

4) AT+MQTTCLIENTID=0,"填写ClientID"

设置MQTT的ClientID,ClientID华为云MQTT三元组的相关信息,在上一步骤中获取的三元组中查看

5) AT+MQTTCONN=0,"填写MQTT接入的地址",1883,1

设置MQTT接入地址,华为云物联网平台的地址,比如iot-mqtts.cn-north-4.myhuaweicloud.com,具体参考控制台首页的平台接入地址

6) AT+MQTTSUB=0,"订阅的主题tpoic",1

完成属性上报的话需要先订阅设备属性上报的主题,此处可填写为:

$oc/devices/填写设备ID/sys/properties/report

7) AT+MQTTPUB=0," 订阅的主题tpoic ","上报的json数据",0,0

订阅的主题:

$oc/devices/填写设备ID/sys/properties/report

上报的json数据:

{"services":[{"service_id":"填写服务ID","properties":{"填写设备属性": 填写属性数据值}}]}

建议大家完成这步时,先使用MQTT.fx进行设备属性上报测试,确保数据无误正常上传,具体参数因个人的配置而异

在完成上面的每一步时,系统都会打印一个OK,正常效果如下:

    

esp8266 云端 手机端 esp8266上云_单片机_10

    此时我们可以查看华为云物联网平台的设备属性以及消息记录:

esp8266 云端 手机端 esp8266上云_嵌入式硬件_11

esp8266 云端 手机端 esp8266上云_嵌入式硬件_12

8) AT+MQTTSUB=0,"订阅的主题topic ",1

此时我们在这填写的是平台下发命令的主题:$oc/devices/填写设备ID/sys/commands/#

9)  进入华为云物联网平台的->监控运维->在线调试,完成命令下发

服务ID与下发命令的创建方法参考以前的文章:

esp8266 云端 手机端 esp8266上云_嵌入式硬件_13

此时设备会接收到下发的命令:

esp8266 云端 手机端 esp8266上云_串口_14

接收到命令后我们需要对命令进行响应,即下一步的步骤

10) 特别注意!!!下面两步的操作时间建议接收到命令后的20s以内,超时后平台会认定为同步命令设备响应异常!

esp8266 云端 手机端 esp8266上云_stm32_15

11) AT+MQTTSUB=0,"$oc/devices/填写设备ID /sys/commands/response/request_id=填写接收到的request_id ",1

订阅设备响应平台命令主题,其中接收到的request_id在上图接收到的数据中,我们需要把它拿出来放到新订阅的tpoic的对应位置里

esp8266 云端 手机端 esp8266上云_嵌入式硬件_16

例如:AT+MQTTPUB=0,"$oc/devices/填写设备id/sys/commands/response/request_id=填写request_id ","",0,0

13) 完成上面的三步操作后,我们可以看到华为云物联网平台已经完成了命令的接收与响应

esp8266 云端 手机端 esp8266上云_串口_17

esp8266 云端 手机端 esp8266上云_串口_18

此时,我们的设备属性上报与设备命令的接收响应功能就已经完成了,接下来我们完成STM32代替串口助手完成对esp8266的上述控制。

(1)配置串口与LED的GPIO

esp8266 云端 手机端 esp8266上云_串口_19

(2)打开串口并使能串口中断

esp8266 云端 手机端 esp8266上云_单片机_20

esp8266 云端 手机端 esp8266上云_嵌入式硬件_21

esp8266 云端 手机端 esp8266上云_嵌入式硬件_22

1) 添加头文件:

2) printf重定向



4. 发送测试



esp8266 云端 手机端 esp8266上云_esp8266 云端 手机端_23

5. 接收测试

(1)main.c中添加下列声明



(2)重写串口接收中断回调函数



(3)在串口初始化后使能串口中断



运行测试:

esp8266 云端 手机端 esp8266上云_嵌入式硬件_24

6.  完善主要接入华为云物联网平台的相关代码

(1)接入华为云初始化



 (2) AT命令发送



(3) 属性上报



(4)串口接收中断回调

esp8266 云端 手机端 esp8266上云_嵌入式硬件_25

esp8266 云端 手机端 esp8266上云_单片机_26

保山版权声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕,E-mail:xinmeigg88@163.com

展开全文READ MORE
手机云端云云
手机上的ic是什么?手机ic「手机上的ic是什么?」 手机触摸屏坏了怎么修手机屏幕坏了「手机触摸屏坏了怎么修」