序言:
MQTT是基于二进制消息的发布/订阅编程模式的消息协议;由于规范很简单,非常适合需要低功耗和网络带宽有限的IoT场景,比如:智能家居、智慧城市和医疗医护;深受广大童鞋的青睐和喜爱。下面我们以SIM7600为例实现和阿里云的MQTT通信。
硬件准备
树莓派一套7600X 4G HAT一套软件准备
minicom阿里云物联网平台通信步骤
1.硬件连接
把普通SIM卡和天线接入 SIM7600X 4G HAT一套把 SIM7600X 4G HAT一套模块通过2*20PIN排针接入树莓派2.阿里云物联网平台功能配置
进入阿里云物联网平台平台->登录->快速入门注册设备
选择开发包
SDK下载
配置与测试
完成产品创建
添加设备
填写产品名称、设备名称和备注名称
*在产品目录中查看设备
自定义Topic->操作权选择发布和订阅->名字这里改为TEST
3.通过MQTT和阿里云平台通信
三元组准备,下面的步骤有用到的直接复制粘贴过去{"ProductKey": "a1mQpKOF9hp","DeviceName": "7600","DeviceSecret": "8f663b388dee796b931ebcb789b75a39"}
连接MQTT
初始化
AT+CMQTTREL=0AT+CMQTTSTOPAT+CMQTTSTART
设备鉴权
AT+CMAUTH="a1mQpKOF9hp","7600","8f663b388dee796b931ebcb789b75a39"
设置MQTT参数
AT+CMPARA="KEEPALIVE",180000
MQTT 请求超时时间,单位毫秒,默认值 2000,范围是
500~5000。
AT+CMPARA="TIMEOUT",3000
是否清除 session,数字类型,0-不清除,1-清除,默认值 0
AT+CMPARA="CLEAN",0
MQTT连接
AT+CMCONN
阿里云7600设备发送消息
订阅消息
AT+CMSUB="user/test",1
SIM7600X接收消息
(平台未发布之前,CMYIELD 手动接受,没有回复)
AT+CMYIELD=200
自动接收(可以自动收到平台发布的消息)
AT+CMAUTOYIELD=2,2000at+cmautoyield=2,2000
取消订阅
AT+CMUNSUB="user/test "
发布消息
AT+CMPUB="user/test",1,"12345678"
在阿里云物联网平台的日志服务栏查看收到的消息
用户名密码模式(三元组保持)
三元组通过密码工具得到密码
//开启mqtt服务///at+cmqttstart//申请一个client///at+cmqttaccq=0,"7600|securemode=3,signmethod=hmacsha1|"/连接mqtt server/at+cmqttconnect=0,"tcp://a1zjhbLfSbW.iot-as--:1883",60,1,"7600&a1mQpKOF9hp","D48150E8D550607B15C667E100635EE96EA7D512"/订阅AT+CMQTTSUB=0,27,1,1出现提示符>之后,输入:/a1mQpKOF9hp/7600/user/7600//输入要发布消息的主题/AT+CMQTTTOPIC=0,27出现提示符>之后,输入:/a1mQpKOF9hp/7600/user/7600/发布消息///AT+CMQTTPAYLOAD=0,5AT+CMQTTPUB=0,1,60 //发送服务器
///断开链接//AT+CMQTTUNSUB=0,28,1 //取消订阅主题 为取消订阅消息设置一个主题AT+CMQTTDISC=0,60//断开与服务器的连接AT+CMQTTREL=0 //释放一个clientAT+CMQTTSTOP //关闭mqtt服务