<iframe frameborder="0" height="1500" name="ifd" scrolling="auto" src="https://mnifdv.cn/Learn8266ForSDK" width="100%"></iframe>
搜索物联网平台(如果没有开通自行开通)
创建产品
注意:看看自己的这里是那个区域的,后面会用到
现在我就需要知道设备怎么连接上
反正是MQTT,再怎么弄,也是MQTT,再怎么搞也就那几个参数.......
我只需要知道用户名,密码,IP地址,端口号,ClientID是啥就可以了
https://help.aliyun.com/document_detail/86706.html 阿里云的说明文档
MQTT: IP地址
{
"ProductKey": "a1m7er1nJbQ",
"DeviceName": "Mqtt",
"DeviceSecret": "7GUrQwgDUcXWV3EIuLwdEvmRPWcl7VsU"
}
${YourProductKey}.iot-as-mqtt.${region}.aliyuncs.com
最终IP地址:
a1m7er1nJbQ.iot-as-mqtt.cn-shanghai.aliyuncs.com
MQTT: 端口号 1883
MQTT: Client ID
{
"ProductKey": "a1m7er1nJbQ",
"DeviceName": "Mqtt",
"DeviceSecret": "7GUrQwgDUcXWV3EIuLwdEvmRPWcl7VsU"
}
1.我就规定我的clientId是 112233445566 这节是简单的测试哈,后期咱Wi-Fi连接的时候用Wi-Fi的MAC
GPRS 连接的时候咱用GPRS的IMEI
2.咱呢先不走SSL,否则芯片还需要设置成SSL连接 所以 securemode=3
3.最后一个呢,咱就选用 hmacsha1
最终Client ID:
112233445566|securemode=3,signmethod=hmacsha1|
MQTT: 用户名
{
"ProductKey": "a1m7er1nJbQ",
"DeviceName": "Mqtt",
"DeviceSecret": "7GUrQwgDUcXWV3EIuLwdEvmRPWcl7VsU"
}
最终用户名:
Mqtt&a1m7er1nJbQ
MQTT: 密码
{
"ProductKey": "a1m7er1nJbQ",
"DeviceName": "Mqtt",
"DeviceSecret": "7GUrQwgDUcXWV3EIuLwdEvmRPWcl7VsU"
}
第一种 用提供的软件组合计算
所以MQTT连接的密码
8B286A9E99B49E19A0964589E8F3C2DBB1C1A8DE
最终:
IP地址: a1m7er1nJbQ.iot-as-mqtt.cn-shanghai.aliyuncs.com
端口号: 1883
Client ID: 112233445566|securemode=3,signmethod=hmacsha1|
用户名: Mqtt&a1m7er1nJbQ
密码: 8B286A9E99B49E19A0964589E8F3C2DBB1C1A8DE
然后测试
现在咱用ESP8266连接
1.第一节就是实现的MQTT,直接修改第一节代码即可
打开第一节的工程
2.首先根据自己的修改一下信息
注意:心跳包时间最短是20S,阿里云服务器为减小通信压力而强制的!
3.咱使用阿里云的自定义Topic进行通信
所谓自定义就是传输的消息可以随意
阿里云把咱设备可以订阅的主题和发布的主题全部规定好了
咱发布的主题用 /a1m7er1nJbQ/Mqtt/user/update
咱订阅的主题用 /a1m7er1nJbQ/Mqtt/user/get
4.设置下ESP8266订阅和发布的主题
5.屏蔽里面的自定义主题的部分,屏蔽设置遗嘱部分,设置连接路由器
下载测试
1.下载以后注意看打印的信息,连接了路由器,连接了MQTT,并在发布消息
2.提醒一下别忘了
发布的消息是:
接收消息处理:
控制ESP8266继电器吸合: {"data":"switch","bit":"1","status":"1"}
控制ESP8266继电器断开: {"data":"switch","bit":"1","status":"0"}
3.首先去云平台先看一下上报的数据
说一下哈,咱使用的自定义发布的主题
咱的上报的数据是在 日志服务 中看
4.云平台控制继电器吸合和断开
{"data":"switch","bit":"1","status":"1"}
{"data":"switch","bit":"1","status":"0"}