计划实现功能:将STM32F103采集到的温湿度,PM2.5等数值,通过UART与ESP8266通讯,使得ESP8266对外仅充当串口功能的黑盒。ESP8266通过MTQQ发布订阅数据,设备上传、接收 阿里云的数据,通过SmartConfig配网。
用到工具和环境:
1.安信可ESP8266 IDE集成环境,https://wiki.ai-thinker.com/ai_ide_install
注:cygwin的文件已存在在下载文件中,不需要网上搜索下载。不要被链接中的内容误导
2.如何使用安信可ESP系列集成环境 https://wiki.ai-thinker.com/ai_ide_use
3.ESP 系列模组烧录固件: https://wiki.ai-thinker.com/esp_download
4.官方SDK下载链接 https://www.espressif.com/zh-hans/products/hardware/esp8266ex/resources
注:本人使用的是 ESP8266_NONOS_SDK-3.0 + aliyun_mqtt_app。
5.下载 aliyun_mqtt_app。 https://github.com/AngelLiang/esp8266_aliyun_mqtt_app
一. 免费注册阿里云,https://www.aliyun.com/ 阿里云物联网平台目前收费方法是按消息数量收费,不过每月前100万条消息免费,对于个人玩转物联云是完全够用的。获取阿里云IoT hub设备认证三元组方法流程:
注册阿里云->开通物联网平台->创建产品->创建设备->获取认证三元组(DeviceName、ProductKey、DeviceSecret)。具体参照阿里云文档https://help.aliyun.com/document_detail/73728.html?spm=5176.11485173.0.0.3fc459afRok2la 这里只介绍部分注意点。
附阿里云创建完成后页面:
1.新建产品时,选择的数据格式决定后续的通讯方式
1)ALINK JSON的数据格式: Alink协议是针对物联网开发领域设计的一种数据交换规范,数据格式是JSON,用于设备端和物联网平台的双向通信,官方给出的SDK中包含了ALINK JSON需要上报的数据格式,一般在设备端处理能力足够的情况下采用此方式,这里采用此种格式。
2)透传/自定义 数据格式:使用这种数据格式的上报方式,需要在物联网平台网页中(路径为 产品->数据解析)调用数据解析脚本中的 protocolToRawData
方法,将结果数据转换成Alink JSON格式。阿里云文档参照https://help.aliyun.com/document_detail/68702.html?spm=a2c4g.11186623.6.575.64e920a8CHKJBw 注: 数据格式选择为透传/自定义时, 产品页面下的才有数据解析的选项。ALINK JSON格式下无需设置。
2.创建设备时输入的DeviceName将用于认证三元组中。获取认证三元组之后要在 产品->功能定义 中填入需要设备属性和服务以及事件,这里我使用的是自定义功能,设备的属性数据只要可读就能更新来自设备的数据。此页面下可查看已创建好的物模型(后续将用到)。
二:MQTT协议简介:基于TCP协议栈上,轻量级的发布订阅,不实时,低开销,低宽带占有。MQTT的topic和三个角色:发布者,订阅者,代理
1.topic,附加在消息中的标签,发布信息时附带topic。
2.发布者:发布一条带有topic的信息。
3.订阅者:订阅感兴趣的topic(多个topic在代码中进行string的判断选择)。
4.代理:负责对来自发布者的信息进行存储操作,并将消息发送至正确的订阅者去。
附:产品topic查看位置,各个topic功能参展后面的描述,(可自定义topic)。
----------------今天也是充满希望的一天呦~