一.硬件选型
esp8266-01s一个以及相应固件烧录器一个(小白的话在这里推荐直接在安信可的淘宝官网买已经含有mqtt固件的模组,我之前买了一个不知道什么问题固件完全烧录不进去),烧录器用来直接将esp8266直接插到电脑的USB接口上进行串口通信。
二.阿里云平台配置
1.注册阿里云账号,搜索物联网,进入后打开控制台,点击公共实例 2.点击创建产品 选择自定义品类,自定义一个产品名称,其他都默认配置就可以了 3.点击添加设备,选择刚才新建的产品并自定义一个设备名 4.点击产品->产品详情->功能定义->编辑草稿->添加自定义功能,这里以温度为例,注意标识符在后面会用于发送数据到云服务器,靠这个标识符接收数据,完成后点击发布上线即可
三.连接到阿里云平台
1.获取MQTT连接参数,这里使用使用阿里云物联网平台配置工具
https://pan.baidu.com/s/1SrEbNda0V3abT7EZXaE4sw 提取码:fra0
点击设备->查看,获取设备证书,点击一键复制 接着打开阿里云物联网平台配置工具,在自己的设备信息中查看一下自己的地区是不是华东2!接着把一键复制的信息粘贴在右侧框中,并自定义一个ClientId,点击生成 将上面这四行输出信息保存备用。
2.使用AT指令连接到我们的设备,注意使用串口助手时每个命令都需要一个回车再发送,多个回车或者没有回车命令都是无效的!
AT+RST
AT+CWMODE=1 //设置客户端模式
AT+CIPSNTPCFG=1,8,"ntp1.aliyun.com" // 设置时域和 SNTP 服务器
AT+CWJAP="WiFi名","WiFi密码" //连接wifi
//使用之前保存的username和password,配置MQTT用户属性
AT+MQTTUSERCFG=0,1,"NULL","用户名","密码",0,0,""
//使用保存的clientId参数
//clientId参数中注意每个逗号前面加分隔符“\”!!!!
AT+MQTTCLIENTID=0,"ClienId"
//连接我们的设备,注意将域名后的:1883端口号去掉,因为被提到后面了
AT+MQTTCONN=0,"连接域名",1883,1
在最后一条指令返回OK后,就可以发现我们的设备从未激活变为了在线! 现在就可以与我们的设备进行通信了! 点击产品->查看->topic类列表->物模型通信topic,使用这里的topic类就可以将上传的温度信息通过前面定义的温度传感器功能进行显示 接下来进行订阅,订阅中的topic值为属性设置-订阅那一行的topic,注意要将${deviceName}写为你的设备名,如我这里改写为Mqtt
//订阅指令
AT+MQTTSUB=0,"topic",1
//我的指令
AT+MQTTSUB=0,"/sys/gbr6pNrrkXy/Mqtt/thing/service/property/set",1
接着我们来发送数据,topic为属性上报-发布中的topic,同样要将${deviceName}写为你的设备名,由于我们添加设备时默认的数据格式就是AJson,因此发送的内容就应该是json格式的内容,注意每个符号前都需要添加转义符号“\”,传输内容的具体格式说明参见阿里云官方文档。其中params中的参数设置的就是前面设置的温度传感器的标识符temp以及对应的数值,注意由于设置温度类型为float,这里的温度数值50.5不用加引号,否则显示不出来。
//发布指令
AT+MQTTPUB=0,"topic","AJson格式内容",1,0
//我的指令
AT+MQTTPUB=0,"/sys/gbr6pNrrkXy/Mqtt/thing/event/property/post","{\"method\":\"thing.service.property.set\"\,\"id\":\"2012934117\"\,\"params\":{\"temp\":50.5}\,\"version\":\"1.0.0\"}",1,0
在物联网平台->监控运维->日志服务中可以看到我们发送到设备的消息,成功接收到数据后可以在设备->物模型数据->运行状态中看到接收到的数据!
|