| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> ESP-01S+AT指令基于MQTT协议连接阿里云步骤 -> 正文阅读 |
|
[嵌入式]ESP-01S+AT指令基于MQTT协议连接阿里云步骤 |
目录 前提是已经在阿里云创建好项目产品,完成添加设备及相关设置。 一、报文制作报文组成:固定报文+可变报文+负载报文。 固定报文:控制类型+剩余长度(所有报文都有) 1、连接报文报文内容: ????????可变报文:协议名+协议级别+连接标志+保持连接时间; ????????负载报文:客户端ID+用户名+密码(信息前分别用两字节表示长度)。 ????????固定报文和可变报文在MQTT手册中查看,基本可以固定不变。因此重点在负载报文。在阿里云官网中有对客户端ID+用户名+密码的说明(去掉timestamp项后): 客户端ID:clientId+"|securemode=3,signmethod=hmacsha1|"; 用户名:deviceName+"&"+productKey; 密码:clientId12345deviceNamedeviceproductKeypk(示例,其中12345为clientId,device为deviceName,pk为productKey,此密码需要加密后才能使用) 在阿里云创建好的设备信息界面: 构建步骤:1)clientId和deviceName替换为自己设备的DeviceName; 2)productKey替换为自己设备的ProductKey; 3)密码加密: 百度搜索在线加密链接,使用hmacsha1进行加密,密钥是设备信息中的DeviceSecret(点击复制)。 构建后的信息(需转为十六进制):客户端ID: ?NBIOT02|securemode=3,signmethod=hmacsha1|; 用户名:??? NBIOT02&a1zqBbogNSH; 密码:? ? ? ?clientIdNBIOT02deviceNameNBIOT02productKeya1zqBbogNSH; 加密后密码:c4fecfa9c70c7cf10797d852723094dfe7c97484(使用该密码); 报文信息(十六进制):固定报文:10 ??(剩余长度暂定,字节单位) 可变报文:00 04 4D 51 54 54 04 C2 00 64 (保持连接时间64,为100秒) 负载:00 29 4E 42 49 4F 54 30 32 7C 73 65 63 75 72 65 6D 6F 64 65 3D 33 2C 73 69 67 6E 6D 65 74 68 6F 64 3D 68 6D 61 63 73 68 61 31 7C 00 134E 42 49 4F 54 30 32 26 61 31 7A 71 42 62 6F 67 4E 53 48 00 28 63 34 66 65 63 66 61 39 63 37 30 63 37 63 66 31 30 37 39 37 64 38 35 32 37 32 33 30 39 34 64 66 65 37 63 39 37 34 38 34 组合后的报文:10 74 00 04 4D 51 54 54 04 C2 00 64 00 29 4E 42 49 4F 54 30 32 7C 73 65 63 75 72 65 6D 6F 64 65 3D 33 2C 73 69 67 6E 6D 65 74 68 6F 64 3D 68 6D 61 63 73 68 61 31 7C 00 13 4E 42 49 4F 54 30 32 26 61 31 7A 71 42 62 6F 67 4E 53 48 00 28 63 34 66 65 63 66 61 39 63 37 30 63 37 63 66 31 30 37 39 37 64 38 35 32 37 32 33 30 39 34 64 66 65 37 63 39 37 34 38 34 2、订阅报文报文内容:????????固定报文:82 ??(剩余长度暂定,字节单位); ????????可变报文:报文标识符00 0A(固定); ????????负载报文:长度(两字节表示)+订阅主题+服务质量; 订阅选择的主题:/sys/a1zqBbogNSH/NBIOT02/thing/service/property/set; 服务质量 01; 构建后的订阅报文(十六进制):82 38 00 0A 00 33 2F 73 79 73 2F 61 31 7A 71 42 62 6F 67 4E 53 48 2F 4E 42 49 4F 54 30 32 2F 74 68 69 6E 67 2F 73 65 72 76 69 63 65 2F 70 72 6F 70 65 72 74 79 2F 73 65 74 01 3、PIN报文每隔一段时间发送一个PIN报文,用于保持设备与服务器的连接。 报文内容:C0 00 (仅有固定报文) 服务器回复:D0 00 表示发送成功。 4、断开连接报文:E0 00 (仅有固定报文) 二、IP获取使用MQTT连接的域名组成:${YourProductKey}.iot-as-mqtt.${YourRegionId}.aliyuncs.com:1883 说明: ????????${YourProductKey}:请替换为设备所属产品的ProductKey; ????????${YourRegionId}:请替换为您的物联网平台设备所在地域代码; ????????1883:端口号; 地域代码列表: 替换后的域名:a1zqBbogNSH.iot-as-mqtt.cn-shanghai.aliyuncs.com 域名转IP:Windows下:win+r->输入cmd->打开DOS窗口->输入命令nslookup +域名->回车。 IP:47.103.191.238 三、连接阿里云?1、?硬件连接:(与串口)???????VCC--- 3.3V ?????? GND---GND ?????? TX --- ?RX ?????? RX ---- TX ?????? EN---- 3.3V 2、发送AT指令步骤:注意指令不要含有空格符!!! 1)AT+CWMODE=1 ???//配置为station模式 2)AT+CWJAP_DEF="wifi名","密码" ?//连接wifi 3)AT+CIPMUX=0????? //开启单链接 4)AT+CIPSTART="TCP","47.103.191.238",1883? //连接TCP服务器,需要快速发送后续指令 5)AT+CIPMODE=1??? //开启透传 6)AT+CIPSEND? //开始发送信息 发送AT+CIPSEND指令等待回复“>”后即可发送连接报文和订阅报文(十六进制发送)。 发送连接报文: 回复(需要勾选16进制显示): 阿里云设备显示在线: 发送订阅报文: APP端控制,服务端发布消息成功: |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/30 2:33:56- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |