SIM7028 NB-IOT HAT携手Waveshare Cloud

SIM7028 NB-IOT HAT携手Waveshare Cloud

7028 mqtt请求说明

MQTT请求简述

MQTT(Message Queuing Telemetry Transport)是一种轻量级的、基于发布/订阅模式的消息传输协议,旨在为物联网设备提供可靠、高效的通信方式。

MQTT请求组成部分

  • 固定报头(Fixed Header):MQTT消息的固定报头是每个消息都必须包含的固定部分。它包含了控制消息传输的必要信息,如消息类型、服务质量等级(QoS)、主题是否保留等。固定报头的长度固定为一个字节。
  • 可变报头(Variable Header):MQTT消息的可变报头是一个可选的部分,长度取决于消息类型和特定的操作。它包含与消息类型相关的控制信息,如连接标志、订阅主题的QoS等。
  • 主题名(Topic Name):主题名是标识消息的关键部分。在发布消息时,需要指定一个主题名,而订阅者则根据主题名来接收感兴趣的消息。主题名通常使用UTF-8编码。
  • 负载(Payload):负载是实际传输的数据内容。对于发布消息,负载是要发送的数据;对于订阅消息,负载是从发布者接收到的数据。负载的长度可以是0个字节到最大消息大小的限制。

MQTT请求流程

  • 建立连接:
    • 客户端通过TCP/IP协议与MQTT代理服务器建立连接。MQTT默认使用1883端口进行非加密连接,或者使用8883端口进行加密连接(通过TLS/SSL)。
    • 客户端可以选择保持会话,以便在断开连接后可以恢复之前的订阅和发布状态。
  • 发布消息:
    • 客户端作为发布者(Publisher),通过发送PUBLISH消息向指定的主题发布消息。
    • PUBLISH消息包含固定报头、可变报头、主题名和负载(消息内容)。
    • 发布者发布消息后,MQTT代理服务器将根据订阅者的订阅信息将消息传递给相应的订阅者。
  • 订阅主题:
    • 客户端作为订阅者(Subscriber),通过发送SUBSCRIBE消息来订阅特定的主题。
    • SUBSCRIBE消息包含固定报头、可变报头和一个或多个主题过滤器及其对应的服务质量等级(QoS)。
    • 订阅者可以同时订阅多个主题。
  • 代理服务器确认订阅
    • 当代理服务器收到订阅请求后,它将确认订阅并将相应的订阅信息保存起来。
    • 订阅者现在可以接收发布到其订阅的主题的消息。
  • 接收消息:
    • 当有新消息发布到一个订阅者订阅的主题时,MQTT代理服务器将将该消息发送给订阅者。
    • 接收到消息后,订阅者可以处理消息的负载并做出相应的操作。
  • 断开连接:
    • 当客户端(发布者或订阅者)完成通信后,它可以选择断开与MQTT代理服务器的连接。
    • 断开连接时,客户端可以选择保留会话,以便在重新连接时保留之前的订阅和发布状态。

测试服务器

这里提供两个私用mqtt服务器,且都是Emqx搭建,当然可以使用公用的broker测试服务器

- tcp://mqtt.waveshare.cloud:1883    mqtt  
- tcp://mqtt.easyiothings.com:443   mqtts

mqtt通信示例

登录平台 创建新设备

首先需要创建设备类型,承接下属同种类型的多个设备,便于设备管理 

然后创建具体设备,点击设备列表新增,填入相关数据

创建完成之后设备为未激活状态,可通过右侧地址详情查看mqtt连接属性内容

对于设备属性可通过需要上传的数据内容来定义上传,这里通过一键添加设备已经具备LED属性

设备端sim7028使用MQTT连接Waveshare Cloud

首先使用跳线帽连接A端,即Type-C端接Sim7028端

将SIM7028 NB-IoT HAT使用Type-c转USB插入电脑,使用sscom打开串口,等待网络初始化成功


初始化MQTT连接

AT+CMQTTSTART


AT+CMQTTACCQ=0,"{键入平台分配的client id}",0


AT+CMQTTCONNECT=0,tcp://mqtt.waveshare.cloud:1883,20,1

订阅&发布主题

AT+CMQTTTOPIC=0,18 # 键入Pub主题 18为字符长度


AT+CMQTTSUB=0,18,0 # 键入Sub主题 18为字符长度


填写需要上传的数据内容:


AT+CMQTTPAYLOAD=0,21 # 字符长度少于10240 ,这里键入hello waveshare cloud 21位测试


发布消息:

AT+CMQTTPUB=0,0,60


总体测试数据过程截图: