基于PSK的签名的方式连接MQTT的 官网文档在这里 : https://cloud.tencent.com/document/product/634/32546 走SDK里面也可以看到计算MQTT链接串的代码 获取设备日信息 点开设备详情页面, 得到设备的密钥等信息 比如这里是: 产品 "QY8BAN391G" 设备 "dev_test1", 密钥 "b9Qyp***WZtQ==" 2. 拼接MQTT连接串的 ClientID 等信息 MQTT CLientID 就是 productId + DeviceName , MQTT username 就是 CLientID;sdkappid 计算签名来得到MQTT密码 工具地址在这里: https://1024tools.com/hmac 通过 HMAC-SHA1 或者 HMAC-SHA256 算法对 MQTT username 生成一串摘要 最后使用 MQTT.fx 或者 mosquitto 工具来 连接 MQTT
1.交换机:二层协议设备。内部构建交换表(MAC地址) 2.路由器:三层协议设备。 (window上route print打印的是windows中缓存的路由表,实际中路由表要复杂得多) 3.防火墙:包过滤或应用网关 4.NAT:内网ip到网关外网地址转换,tcp穿透nat(和防火墙一样需要反向连接穿透 ,lcx、ipop等软件做端口数据转发实现NAT穿透) 5.P2P:分布式无中心通信协议 6.UDP:UDP传输不可靠可以使用DUT和UDPX替换 ?
丰富 UI 组件助您极速集成聊天、会话、群组、直播弹幕等完备IM功能,全球接入,全平台跨终端互通,安全可靠,IM 首购0.9折起,复购7.5折起
UsartReceiveDataCnt = UsartReceiveDataCnt + 1; DataDisposeTimerCnt = 0; end,0) 上面的程序是透传程序---MQTT 接收的数据直接转发到串口,串口接收的直接转发给MQTT服务器 ? 其它说明:其实MQTT规定每一个设备都必须有个唯一的码,在连接的时候给MQTT服务器,我用的WIFI模块的MAC地址作为这个码 MQTT服务器检测设备如果3S(根据自己的设备)*1.5 倍 时间没有接收到设备发送的心跳包 ,就会默认设备掉线了 ? 自己设置的掉线信息,让其它设备知道设备掉线了,一般都是硬件设备设置遗嘱,APP或者上位机通过这条信息知道设备掉线了 再看init.lua --[[ GPIO0--3 GPIO1--10 GPIO2--4
说明 这节测试一下Android扫码绑定Air724,并通过MQTT和模组实现远程通信控制 这一节作为板子的整体功能测试,用户下载这一节的程序用来测试基本控制篇实现的基本功能 还有就是测试一下板子是否工作正常 模块的第一个VCC引脚和底板的5V引脚相连接 WiFi模组和GSM模组都是串口2通信, 为避免通信冲突, 去掉下面的WiFi模组 测试准备工作 1.下载这节程序到单片机 2.单片机工程目录 3 .扫描成功以后,自动跳转到主页面,并添加了一个设备 显示的为设备的IMEI号 12.点击设备进入设备控制页面 整体说明 整个程序就是利用MQTT服务器实现APP和设备之间通信. ,APP发布的主题是: user/设备的IMEI号 APP订阅的主题是: device/设备的IMEI号 微信小程序和设备的发布和订阅的主题相对应,APP和设备的消息发给MQTT服务器以后,MQTT 用户始终记住:和mqtt服务器通信就是和tcp服务器通信.不过他们之间的通信数据需要按照mqtt协议规定. 2.配置所连接的MQTT服务器的参数 3.初始化MQTT变量,注册相应的回调函数 我编写的包是以注册回调函数的形式使用
说明 这节测试一下CH579M通过串口AT指令控制Air724(4G全网通GPRS)连接MQTT服务器; 然后微信小程序通过扫码绑定Air724,并通过MQTT和单片机实现远程通信控制; 测试本节例程 1.GPRS模块安装好手机卡和天线 注意手机卡的缺角方向是朝里面 2.硬件连接(单片机使用串口0和模组通信,使用PB5复位模组; 串口1作为日志打印) 3.根据硬件使用说明下载这节的单片机程序到开发板 MQTT服务器实现APP和设备之间通信. ,APP发布的主题是: user/设备的IMEI号 APP订阅的主题是: device/设备的IMEI号 微信小程序和设备的发布和订阅的主题相对应,APP和设备的消息发给MQTT服务器以后,MQTT 用户始终记住:和mqtt服务器通信就是和tcp服务器通信.不过他们之间的通信数据需要按照mqtt协议规定. 2.配置所连接的MQTT服务器的参数 3.初始化MQTT变量,注册相应的回调函数 我编写的包是以注册回调函数的形式使用
说明 这节测试一下微信小程序扫码绑定EC200(移远4G Cat1),并通过MQTT和模组实现远程通信控制 这一节作为板子的整体功能测试,用户下载这一节的程序用来测试基本控制篇实现的基本功能 还有就是测试一下板子是否工作正常 GPRS模块和单片机连接说明 单片机通过串口2和GPRS模块通信; 单片机PA8引脚作为复位模组使用 (单片机)PA2 ---- (EC200)RX; (单片机)PA3 ---- (EC200 扫描模组上面的二维码 11.扫描成功以后,自动跳转到主页面,并添加了一个设备 显示的为设备的IMEI号 12.点击设备进入设备控制页面 整体说明 整个程序就是利用MQTT服务器实现APP和设备之间通信 ,APP发布的主题是: user/设备的IMEI号 APP订阅的主题是: device/设备的IMEI号 微信小程序和设备的发布和订阅的主题相对应,APP和设备的消息发给MQTT服务器以后,MQTT 用户始终记住:和mqtt服务器通信就是和tcp服务器通信.不过他们之间的通信数据需要按照mqtt协议规定. 2.配置所连接的MQTT服务器的参数 3.初始化MQTT变量,注册相应的回调函数 我编写的包是以注册回调函数的形式使用
说明 这节测试一下CH579M通过串口AT指令控制Air724(4G全网通GPRS)连接MQTT服务器; 然后APP通过扫码绑定Air724,并通过MQTT和单片机实现远程通信控制; 测试本节例程 1 (已经被底板遮挡了) 整体说明 整个程序就是利用MQTT服务器实现APP和设备之间通信. APP通过扫码获取设备的IMEI号 设备连接上MQTT服务器以后,设备订阅的主题是: user/设备的IMEI号 设备发布的主题是: device/设备的IMEI号 APP获取设备的MAC地址后,APP 发布的主题是: user/设备的IMEI号 APP订阅的主题是: device/设备的IMEI号 APP和设备的发布和订阅的主题相对应,APP和设备的消息发给MQTT服务器以后,MQTT服务器就为各自的消息互相转发 用户始终记住:和mqtt服务器通信就是和tcp服务器通信.不过他们之间的通信数据需要按照mqtt协议规定. 2.配置所连接的MQTT服务器的参数 3.初始化MQTT变量,注册相应的回调函数 我编写的包是以注册回调函数的形式使用
整体说明 整个程序就是利用MQTT服务器实现APP和设备之间通信. APP和设备一开始通过组播通信的方式进行通信. 通信过程中,APP获取到了设备的MAC地址信息. MAC地址 APP订阅的主题是: device/设备的MAC地址 APP和设备的发布和订阅的主题相对应,APP和设备的消息发给MQTT服务器以后,MQTT服务器就为各自的消息互相转发. 程序绑定过程 1.提示 微信小程序和设备就是在局域网里面使用组播通信(UDP通信). 用户始终记住:和mqtt服务器通信就是和tcp服务器通信.不过他们之间的通信数据需要按照mqtt协议规定. ? 2.配置所连接的MQTT服务器的参数 ? 3.如果使用域名连接,先进行域名解析 ? ? 4.先使用TCP连接上TCP服务器(MQTT服务器就是TCP服务器嘛) ? 程序中使用的socket2作为tcp通信 ? 处理TCP接收的数据 ?
说明 这节测试一下微信小程序扫码绑定Air724,并通过MQTT和模组实现远程通信控制 这一节作为板子的整体功能测试,用户下载这一节的程序用来测试基本控制篇实现的基本功能 还有就是测试一下板子是否工作正常 扫描设备的二维码 12.扫描成功以后,自动跳转到主页面,并添加了一个设备 显示的为设备的IMEI号 13.点击设备进入设备控制页面 整体说明 整个程序就是利用MQTT服务器实现APP和设备之间通信 ,APP发布的主题是: user/设备的IMEI号 APP订阅的主题是: device/设备的IMEI号 微信小程序和设备的发布和订阅的主题相对应,APP和设备的消息发给MQTT服务器以后,MQTT 用户始终记住:和mqtt服务器通信就是和tcp服务器通信.不过他们之间的通信数据需要按照mqtt协议规定. 2.配置所连接的MQTT服务器的参数 3.初始化MQTT变量,注册相应的回调函数 我编写的包是以注册回调函数的形式使用 mqtt.js本人再次封装的mqtt包,用户后期通信都是使用这个里面的api函数 用户可以根据自己的mqtt服务器更改参数 15,连接mqtt只需要在一开始的时候调用下 MQTT.ConnectMqtt
GPRS模块和单片机连接说明 单片机通过串口2和GPRS模块通信; 单片机PA8引脚作为复位模组使用(高电平复位) (单片机)PA2 ---- (EC200)RX; (单片机)PA3 ---- 注:显示的内容为模组的IMEI号 10.点击显示的设备,进入设备控制页面 设备会显示当前温湿度数据,也可以点击按钮控制开发板上的继电器 整体说明 整个程序就是利用MQTT服务器实现APP和设备之间通信 APP通过扫码获取设备的IMEI号 设备连接上MQTT服务器以后,设备订阅的主题是: user/设备的IMEI号 设备发布的主题是: device/设备的IMEI号 APP获取设备的MAC地址后 ,APP发布的主题是: user/设备的IMEI号 APP订阅的主题是: device/设备的IMEI号 APP和设备的发布和订阅的主题相对应,APP和设备的消息发给MQTT服务器以后,MQTT服务器就为各自的消息互相转发 用户始终记住:和mqtt服务器通信就是和tcp服务器通信.不过他们之间的通信数据需要按照mqtt协议规定. 2.配置所连接的MQTT服务器的参数 3.初始化MQTT变量,注册相应的回调函数 我编写的包是以注册回调函数的形式使用
,并添加了一个设备 6.点击设备进入设备控制页面 整体说明 整个程序就是利用MQTT服务器实现APP和设备之间通信. APP通过和设备配网绑定,让设备连接上路由器. 通信过程中,APP也获取到了设备的MAC地址信息. 设备连接上MQTT服务器以后,设备订阅的主题是: user/设备的MAC地址 设备发布的主题是: device/设备的MAC地址 APP获取设备的MAC地址后,APP发布的主题是: user/设备的 MAC地址 APP订阅的主题是: device/设备的MAC地址 APP和设备的发布和订阅的主题相对应,APP和设备的消息发给MQTT服务器以后,MQTT服务器就为各自的消息互相转发. 用户始终记住:和mqtt服务器通信就是和tcp服务器通信.不过他们之间的通信数据需要按照mqtt协议规定. 2.配置所连接的MQTT服务器的参数 3.初始化MQTT变量,注册相应的回调函数 我编写的包是以注册回调函数的形式使用
说明 这节测试一下CH579M通过串口AT指令控制ESP8266(WiFi)连接MQTT服务器; 然后APP通过APUConfig配网绑定ESP8266,并通过MQTT和单片机实现远程通信控制; 测试本节例程 ,是自己写的一个随机的数发上来的 注:APP的控制是控制的这个小灯(已经被底板遮挡了) 整体说明 整个程序就是利用MQTT服务器实现APP和设备之间通信. APP通过和设备配网绑定,让设备连接上路由器. 通信过程中,APP也获取到了设备的MAC地址信息. MAC地址 APP订阅的主题是: device/设备的MAC地址 APP和设备的发布和订阅的主题相对应,APP和设备的消息发给MQTT服务器以后,MQTT服务器就为各自的消息互相转发. 用户始终记住:和mqtt服务器通信就是和tcp服务器通信.不过他们之间的通信数据需要按照mqtt协议规定. 2.配置所连接的MQTT服务器的参数 3.初始化MQTT变量,注册相应的回调函数 我编写的包是以注册回调函数的形式使用
说明 这节测试一下CH579M通过串口AT指令控制ESP8266(WiFi)连接MQTT服务器; 然后APP通过SmartConfig配网绑定ESP8266,并通过MQTT和单片机实现远程通信控制; ,是自己写的一个随机的数发上来的 注:APP的控制是控制的这个小灯(已经被底板遮挡了) 整体说明 整个程序就是利用MQTT服务器实现APP和设备之间通信. APP通过SmartConfig让模组连接上路由器,同时获得模组MAC地址 设备连接上MQTT服务器以后,设备订阅的主题是: user/设备的MAC地址 设备发布的主题是: device/设备的MAC 地址 APP获取设备的MAC地址后,APP发布的主题是: user/设备的MAC地址 APP订阅的主题是: device/设备的MAC地址 APP和设备的发布和订阅的主题相对应,APP和设备的消息发给 用户始终记住:和mqtt服务器通信就是和tcp服务器通信.不过他们之间的通信数据需要按照mqtt协议规定. 2.配置所连接的MQTT服务器的参数 3.初始化MQTT变量,注册相应的回调函数 我编写的包是以注册回调函数的形式使用
GPRS模块和单片机连接说明 单片机通过串口2和GPRS模块通信; 单片机PA8引脚作为复位模组使用 (单片机)PA2 ---- (EC200)RX; (单片机)PA3 ---- (EC200 注:显示的内容为模组的IMEI号 10.点击显示的设备,进入设备控制页面 设备会显示当前温湿度数据,也可以点击按钮控制开发板上的继电器 整体说明 整个程序就是利用MQTT服务器实现APP和设备之间通信 APP通过扫码获取设备的IMEI号 设备连接上MQTT服务器以后,设备订阅的主题是: user/设备的IMEI号 设备发布的主题是: device/设备的IMEI号 APP获取设备的MAC地址后,APP 发布的主题是: user/设备的IMEI号 APP订阅的主题是: device/设备的IMEI号 APP和设备的发布和订阅的主题相对应,APP和设备的消息发给MQTT服务器以后,MQTT服务器就为各自的消息互相转发 用户始终记住:和mqtt服务器通信就是和tcp服务器通信.不过他们之间的通信数据需要按照mqtt协议规定. 2.配置所连接的MQTT服务器的参数 3.初始化MQTT变量,注册相应的回调函数 我编写的包是以注册回调函数的形式使用
说明 这节测试一下CH579M通过串口AT指令控制ESP8266(WiFi)连接MQTT服务器; 微信小程序通过APUConfig配网绑定ESP8266,并通过MQTT和单片机实现远程通信控制; 测试本节例程 5.点击设备进入设备控制页面 注:开发板上并没有温湿度,是自己写的一个随机的数发上来的 注:APP的控制是控制的这个小灯(已经被底板遮挡了) 整体说明 整个程序就是利用MQTT服务器实现微信小程序和设备之间通信 微信小程序通过和设备配网绑定,让设备连接上路由器. 通信过程中,APP也获取到了设备的MAC地址信息. /设备的MAC地址 微信小程序订阅的主题是: device/设备的MAC地址 微信小程序和设备的发布和订阅的主题相对应,APP和设备的消息发给MQTT服务器以后,MQTT服务器就为各自的消息互相转发 用户始终记住:和mqtt服务器通信就是和tcp服务器通信.不过他们之间的通信数据需要按照mqtt协议规定. 2.配置所连接的MQTT服务器的参数 3.初始化MQTT变量,注册相应的回调函数 我编写的包是以注册回调函数的形式使用
绑定成功以后自动跳转到主页面,并添加了一个设备 可以点击下面的地方连接自己原先连接路由器! ? 5.点击设备进入设备控制页面 ? 整体说明 整个程序就是利用MQTT服务器实现APP和设备之间通信. APP通过和设备配网绑定,让设备连接上路由器. 通信过程中,APP也获取到了设备的MAC地址信息. 设备连接上MQTT服务器以后,设备订阅的主题是: user/设备的MAC地址 设备发布的主题是: device/设备的MAC地址 APP获取设备的MAC地址后,APP发布的主题是: user/设备的 MAC地址 APP订阅的主题是: device/设备的MAC地址 APP和设备的发布和订阅的主题相对应,APP和设备的消息发给MQTT服务器以后,MQTT服务器就为各自的消息互相转发. 用户始终记住:和mqtt服务器通信就是和tcp服务器通信.不过他们之间的通信数据需要按照mqtt协议规定. ? 2.配置所连接的MQTT服务器的参数 ?
2.扫描成功以后,自动跳转到主页面,并添加了一个设备 显示的为设备的IMEI号 ? 3.点击设备进入设备控制页面 ? 整体说明 整个程序就是利用MQTT服务器实现APP和设备之间通信. APP通过扫码获取设备的IMEI号 设备连接上MQTT服务器以后,设备订阅的主题是: user/设备的IMEI号 设备发布的主题是: device/设备的IMEI号 APP获取设备的MAC地址后 ,APP发布的主题是: user/设备的IMEI号 APP订阅的主题是: device/设备的IMEI号 APP和设备的发布和订阅的主题相对应,APP和设备的消息发给MQTT服务器以后,MQTT服务器就为各自的消息互相转发 程序MQTT通信过程 1.关于MQTT解析包 mqtt_msg 文件是最底层的mqtt协议封装文件, 用户不需要研究 mqtt 文件是在mqtt_msg之上封装的一套文件,该文件内部处理了mqtt各种通信流程 用户始终记住:和mqtt服务器通信就是和tcp服务器通信.不过他们之间的通信数据需要按照mqtt协议规定. ? 2.配置所连接的MQTT服务器的参数 ?
整体说明 整个程序就是利用MQTT服务器实现APP和设备之间通信. APP和设备一开始通过组播通信的方式进行通信. 通信过程中,APP获取到了设备的MAC地址信息. MAC地址 APP订阅的主题是: device/设备的MAC地址 APP和设备的发布和订阅的主题相对应,APP和设备的消息发给MQTT服务器以后,MQTT服务器就为各自的消息互相转发. 程序绑定过程 1.提示 APP和设备就是在局域网里面使用组播通信. 用户始终记住:和mqtt服务器通信就是和tcp服务器通信.不过他们之间的通信数据需要按照mqtt协议规定. ? 2.配置所连接的MQTT服务器的参数 ? 3.如果使用域名连接,先进行域名解析 ? ? 4.先使用TCP连接上TCP服务器(MQTT服务器就是TCP服务器嘛) ? 程序中使用的socket2作为tcp通信 ? 处理TCP接收的数据 ?
提示 单片机都是使用串口2和模组进行通信, 开发板只安装上WiFi模组. 绑定成功将会自动跳转到主页,并添加一个设备 显示的为模组的MAC地址 13.点击设备进入设备控制页面 整体说明 整个程序就是利用MQTT服务器实现APP和设备之间通信. APP通过APUConfig配置模组连接路由器,并获取模组的MAC地址信息 设备连接上MQTT服务器以后,设备订阅的主题是: user/设备的MAC 设备发布的主题是: device/设备的MAC APP获取设备的MAC地址后,APP发布的主题是: user/设备的MAC APP订阅的主题是: device/设备的MAC APP和设备的发布和订阅的主题相对应,APP和设备的消息发给MQTT服务器以后 用户始终记住:和mqtt服务器通信就是和tcp服务器通信.不过他们之间的通信数据需要按照mqtt协议规定. 2.配置所连接的MQTT服务器的参数 3.初始化MQTT变量,注册相应的回调函数 我编写的包是以注册回调函数的形式使用
提示 单片机都是使用串口2和模组进行通信, 开发板只安装上WiFi模组. 并添加了一个设备 14.点击设备进入设备控制页面 整体说明 整个程序就是利用MQTT服务器实现APP和设备之间通信. APP获取设备的MAC地址后,APP发布的主题是: user/设备的MAC APP订阅的主题是: device/设备的MAC APP和设备的发布和订阅的主题相对应,APP和设备的消息发给MQTT服务器以后 用户始终记住:和mqtt服务器通信就是和tcp服务器通信.不过他们之间的通信数据需要按照mqtt协议规定. 2.配置所连接的MQTT服务器的参数 3.初始化MQTT变量,注册相应的回调函数 我编写的包是以注册回调函数的形式使用 mqtt.js本人再次封装的mqtt包,用户后期通信都是使用这个里面的api函数 用户可以根据自己的mqtt服务器更改参数 16,连接mqtt只需要在一开始的时候调用下 MQTT.ConnectMqtt
腾讯云物联网通信( IoT Hub)旨在提供一个安全、稳定、高效的连接平台,帮助开发者低成本、快速地实现“设备-设备”、“设备-用户应用”、“设备-云服务”之间可靠、高并发的数据通信……
扫码关注腾讯云开发者
领取腾讯云代金券