ESP8266-(ESP01S)-STM32-连接阿里云上传物理模型数据

本文适用于对单片机基本功能熟悉,对tcp/http/mqtt有一点了解的同学观看(理解什么是报头等基本概念,明白JSON格式是什么),是单片机毕设上云的参考文章

首先,关于ESP8266的基本使用逻辑是:通过串口发送AT指令给esp模块,模块识别后进行相应的操作,而AT指令集与esp的固件版本息息相关,比如本次用到的MQTT指令需要支持MQTT的固件,而ESP-01S(8Mbit)的出场固件不支持,可以前往AT固件汇总|安信可科技下载最后一个选项,刷固件的教程在购买模块时一般会赠送,或在网站搜索也是一搜一大堆。

首先连接手机热点,核心AT指令,展示方式都为keil5代码

	uint8_t esp_AT[32] = "AT\r\n";
	uint8_t esp_RST[32] = "AT+RST\r\n";
	uint8_t esp_station[32] = "AT+CWMODE=1\r\n"; //选择station模式
	uint8_t esp_AP_conect[32] = "AT+CWJAP=\"PpX\",\"20040308\"\r\n";
	uint8_t esp_ConnectIp[48] = "AT+CIPSTART=\"TCP\",\"10.49.40.199\",8080\r\n";		//连接ip
	uint8_t esp_TC_mode[32] = "AT+CIPMODE=1\r\n";	//开启透传模式
	uint8_t esp_TC_mode_start[32] = "AT+CIPSEND\r\n";	//开始透传

先利用电脑串口与模块直接相连(建议使用带串口的下载器更方便),直接发送AT指令,可以省去所有引号,而换行和空格视情况自行空格或回车,连接热点这一部分比较简单,并且只需设置一次,以后模块断电重连会自动连接热点,透传模式不必开启,按照以上展示的顺序输入即可,如果回复ERROR,一般是打错字或未添加换行
可以参考AT指令连接手机app        esp与stm32、手机通讯     乐鑫官方全部AT指令集

核心部分,阿里云平台,站内的关于阿里云的blog很多都落后了,平台的部分更新可能会给新人造成不便,在此我着重叙述如何创建自己的产品和设备。

1.搜索阿里云

2.创建账户并实名认证后,在主页面左上角的产品中选择物联网平台

3.点击管理控制台

4.点击公共实例,是免费使用的

以下按顺序新建产品与设备,设备从属于产品,例如产品为智能农业大棚,设备为ESP01S,上传物理模型数据时是传输给设备,而物理模型需要再产品中创建,创建产品和设备时,使用默认设置即可,物理模型可以自己根据情况自定义创建或者直接采用阿里云现成的
 

请记住Topic是报头,上报数据用的是属性上报topic,deviceId是指设备名

 

uint8_t MQTTUSERCFG[]="AT+MQTTUSERCFG=0,1,\"k05lo2zc7xV.ESP_01S|securemode=2\\,signmethod=hmacsha256\\,timestamp=1693744545777|\",\"ESP_01S&k05lo2zc7xV\",\"0034064c340d6ccaabfb0973f9ac3288f991cf8b2042fb275a21032a74496895\",0,0,\"\"\r\n";//每一个"前面加'\'
uint8_t MQTTCONN[]="AT+MQTTCONN=0,\"iot-06z00f25roalsx7.mqtt.iothub.aliyuncs.com\",1883,1\r\n";
snprintf((char *)MQTT_send, sizeof(MQTT_send), "AT+MQTTPUB=0,\"/sys/k05lo2zc7xV/ESP_01S/thing/event/property/post\",\"{params:{\\\"Tem_peng\\\":%.2f\\,\\\"guangzhao\\\":%d}}\",1,0\r\n",(double)temperature,guangzhao);

这是AT指令中MQTT部分的核心指令,从上到下意为:设置属性,连接平台,上报数据
 

设置属性中包含三元组,三元分别是Client,username,password,可以在设备页面找到

查看MQTT连接属性即可,其中Client是打开一次网站就是刷新一次,但不必每次刷新都更新代码,过一段时间换一次即可 

连接平台需要url,也在上述页面中与三元组在一块
 

更新数据是一大难点,你会发现按照站内其他人的json格式根本传不上去,太过繁杂,按我的写下的格式即可,官方的json格式我并未找到具体位置,有知道的同学可以和我说一下,感谢

更新需要前面提到的topic和你准备好的数据,你可以自己编造来进行测试,正式使用需要传感器等,那部分代码我就不展示了

最后,通过电脑与esp模块直接串口通信可以完成上述操作后,就可以在keil里面编写代码了,基本逻辑就是单片机的串口与模块连接,二者内部通信,直接发送我写下的这些数组即可,但由于返回值不可视,还是需要一定耐心逐步排错的,我的数组都经过我的检测没有任何问题

上云这部分耗费了我两三天的时间,看似只是发几段代码的事,其实操作起来并不见得很容易,祝大家顺利

推荐blog:乐鑫官方教程(非物理模型,单纯收发信息)

                  转义字符防踩坑必看

                  在串口助手使用的指令参考(上报指令不可用)

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值