SIM7028 NB-IOT HAT携手Aliyun IoT

序言:

MQTT是基于二进制消息的发布/订阅编程模式的消息协议;由于规范很简单,非常适合需要低功耗和网络带宽有限的IoT场景,比如:智能家居、智慧城市和医疗医护;深受广大童鞋的青睐和喜爱。下面我们以SIM7028 NB-IoT HAT为例实现和阿里云的MQTT通信。

准备工作

硬件准备

软件准备

通信步骤

1.硬件连接

  • 将SIM7028 NB-IoT HAT接上天线、nano nbiot卡
  • 将SIM7028 NB-IoT HAT的跳线帽接至A口,使用Type-C连接windows电脑

2.阿里云物联网平台功能配置

注册登录

  • 首先注册登录到阿里云物联网平台,选择华东2(上海)节点

创建产品

  • 创建新产品,根据下图所示填写相关信息

  • 创建完产品进入产品功能定义,定义一个自定义功能来承接需要上传的数据信息,这里创建一个字符串类型的测试功能属性

  • 这里一定要发布上线,不然可能会没有效果

创建设备

  • 选择创建的产品下创建设备,这里创建了一个名为7028_raspi的设备

  • 新建好的设备是未激活状态,只有接入之后才会显示是在线/离线
  • 在设备详情页查看MQTT连接参数,后续SIM7028 NB-IoT HAT连接需要用到。

 在使用时要对应要更改为自己的MQTT连接参数,此连接参数只对测试账号的设备有用  
"clientId":"a1c5wcCxNLh.7028_raspi|securemode=2,signmethod=hmacsha256,timestamp=1693275393802|"
"username":"7028_raspi&a1c5wcCxNLh"
"mqttHostUrl":"a1c5wcCxNLh.iot-as-mqtt.cn-shanghai.aliyuncs.com"
"passwd":"093aef27165c79ad6b7f1371a2d0ac74ed32582a9f068bf9ee850a5085b1f4f1"
"port":1883
  • 查看此产品的物模型上报TOPIC

这里的物模型通信Topic是设置的物模型属性的topic

/sys/a1c5wcCxNLh/${deviceName}/thing/event/property/post

在使用时要对应把此topic中的${deviceName}换成自己的设备名称,例如

我建立的设备名称为7028_raspi,所以对应的topic应该为:
/sys/a1c5wcCxNLh/7028_raspi/thing/event/property/post

至此阿里云物联网平台功能设置结束

3.通过MQTT和阿里云平台通信

指令及指令解析

AT+CMQTTSTART // 开启MQTT服务
// 申请ClientID,格式为AT+CMQTTACCQ=0,"$(clientid)",0 这里的$(clientid)填入阿里云MQTT连接参数
AT+CMQTTACCQ=0,"a1c5wcCxNLh.7028_raspi|securemode=2,signmethod=hmacsha256,timestamp=1692872147157|",0
// 连接MQTT服务器,格式为AT+CMQTTCONNECT=0,tcp://$(mqttHostUrl):$(port),2000,0,"$(username)","$(passwd)" 这里的$xxxx填入阿里云MQTT连接参数
AT+CMQTTCONNECT=0,tcp://a1c5wcCxNLh.iot-as-mqtt.cn-shanghai.aliyuncs.com:1883,2000,0,"7028_raspi&a1c5wcCxNLh","575302c7cc51dacd0c53b7a5ade3c55552821c68b74ddec006e3ec106fbb613e"
AT+CMQTTTOPIC=0,53 // 输入发布的主题,这里的53为topic的字符长度,要按需更改
键入/sys/a1c5wcCxNLh/7028_raspi/thing/event/property/post
AT+CMQTTPAYLOAD=0,51 // 输入消息体,这里的51为消息体的字符长度,要按需更改
键入{"id":"waveshare","params":{"test":"test message"}}

这里的格式参考阿里云物模型数据上传格式 其要求为:

AT+CMQTTPUB=0,0,60 // 发布消息

运行结果查看