文档首页/ 设备接入 IoTDA/ 开发指南/ 设备侧开发/ 通过华为认证模组接入
更新时间:2024-07-29 GMT+08:00
分享

通过华为认证模组接入

概述

认证模组是指通过预集成IoT Device SDK Tiny,并且通过华为测试认证,遵循华为指定AT命令规范的模组。使用华为认证的模组可以带来以下好处:

  • 设备厂商在MCU上无需关心如何连接到华为云IoT(例如,MQTT建链时密钥的加密算法,clientID的组成方式等),只通过调用该模组提供的AT指令对接华为IoT平台,可以节约设备对接工作量和设备调试周期。
  • 由于MCU无须集成MQTT协议栈或者IoT Device SDK Tiny,因此大大节省MCU资源的消耗。

使用认证模组开发设备的示意图如下所示:

推荐模组列表

表1 预集成华为SDK的认证模组

模组类型

厂商

具体型号

4G Cat1模组

广和通

L610

中移物联

ML302

4G Cat4模组

移远

EC20CEFASG

移远

EC20CEHDLG

有方

N720

NB-IoT模组

中移物联

M5319-A

  • LTE Cat4模组适用于业务数据传输速率为50Mbps~150Mbps的场景,LTE Cat1模组适用于业务数据传输速率为5 Mbps~10 Mbps的场景。
  • 若上述列表中没有您所需的模组型号,请提交工单说明您的业务场景和诉求。
表2 未集成华为SDK、但通过华为测试的模组

模组类型

厂商

具体型号

NB-IoT模组

移远

BC39

BC95

BC35

BC26

BC28

有方

N27

N25

N21

中怡数宽

TPB41

TPB23

云程科技

CFB-609

利尔达

NB86-G

4G Cat4模组

域格

CLM920_NC5

CLM920_NC3

移远

EC20

4G Cat1模组

有方

N58

移远

EC200S

2G/3G模组

移远

M25

Zigbee智能模组

顺舟

SZ05

5G模组

华为

MH5000

LoRa模组

有方

LR70

唯传

M100C

前提条件

  • 已开通SIM卡流量,模组能够上网。
  • 已开通设备接入服务。

整体流程

设备商开发设备的流程为:

  • 购买华为云认证模组

  • 在设备接入控制台创建产品和设备
  • 在MCU上通过模组提供的AT指令连接华为云IoT,以及从华为云IoT收发数据

  • 在设备接入控制台对设备进行管理

硬件连接

将4G卡插入到SIM卡卡槽,确保插卡的时候卡的缺口朝里,且芯片朝上(本文以L610模组为例)。

安装USB驱动

  • 安装USB驱动:
    1. 运行安装文件,根据界面提示进行安装。

      不同厂家匹配的USB驱动版本不同,请联系厂家获取符合要求的驱动程序。

    2. 驱动安装成功后,连接开发板的USB接口到PC,并打开电源,可在设备管理器中查看到枚举出的串口设备。

  • 使用串口工具进行AT命令调试
    1. 运行安装文件,根据界面提示进行安装。

      不同厂家匹配的串口工具版本不同,请联系厂家获取符合要求的串口工具。

    2. 打开串口工具,选择步骤2枚举的AT串口,波特率设置为115200,单击“Open Port”。

      请确保设置正确,否则AT命令不能够被解析或者解析出错。

    3. 输入“AT+COPS?”指令,单击“Send Command”,若返回OK,表明网络注册状态成功,否则请检查设置以及硬件接线。

      若返回的消息中“+COPS: 0,0,"CHN-CT",7”最后一位数字不是7,表明网络存在问题,请更换SIM卡或确认SIM卡能够上网。

创建产品和设备

  1. 参考创建产品,创建基于MQTT协议的产品。
  2. 参考注册设备,获取设备ID(deviceID)和设备密钥。

    注册设备后,请妥善保管设备ID和设备密钥。设备密钥无法找回,如果忘记,可在“设备详情”页面单击“重置密钥”设置新的密钥。

  3. 访问设备接入控制台,获取MQTT/MQTTS设备对接地址。若使用MQTT协议的话,端口为1883;MQTTS协议的话,端口为8883。

通过模组提供的AT指令连接华为云IoT

模组提供两种编码方式的AT指令连接华为云,ASCII码方式和hexstring模式,ASCII表示原始编码,hexstring表示十六进制编码。

  • 使用ASCII模式连接华为IoT平台

    1. 连接华为云IoT平台。发送AT+HMCON=bsmode,lifetime,"serverip","serverport","deviceID","passwd",codec指令,例如AT+HMCON=0,300,"iot-mqtts.cn-north-4.myhuaweicloud.com","8883","deviceID","passwd",0,若收到“+HMCON OK”,表明设备成功连接到平台。
      其中各参数含义如下所示:
      • bsmode:是否使用设备发放,填写为0。0表示直接连接设备接入平台;1表示经过设备发放连接设备接入平台;
      • lifetime:MQTT心跳时间,默认300;
      • serverip:MQTTS/MQTT协议的对接地址,请参考平台对接信息获取。如果经过设备发放连接平台,则为设备发放的地址,请参考设备发放获取;
      • serverport:设备接入的对接端口。如果使用MQTTS协议,端口为8883;MQTT协议,端口则为1883。如果使用设备发放则为设备发放的端口;
      • deviceID:注册设备返回的设备ID,参考步骤2获取;
      • passwd:注册设备设置的密钥,参考步骤2获取;如果使用证书模式,该项可以设置为空,但是需要提前设置设备端的公钥以及私钥证书。
      • codec:数据传输方式,请填写0或1。0表示是可视的ASCII码方式;1表示使用的是hexstring模式。如果是ascii模式,则数据模式一般为len,ascii_payload。例如2,"ab";如果是hextring模式,则表示为2,“6162”。
    2. 订阅自定义主题。发送AT+HMSUB=qos,topic指令,例如AT+HMSUB=0,"$oc/devices/device_id/user/mytopic”,若收到“+HMSUB OK” ,表明订阅成功。

      其中各参数含义如下所示:

      • qos:topic的qos,默认填写0;
      • topic:新增的自定义Topic。详细操作指导请参考新增自定义Topic,其中设备操作权限选择“订阅”,deviceID需要替换为实际设备ID。
    3. 消息上报。发送AT+HMPUB=qos,topic,payload_len,payload指令,例如,

      AT+HMPUB=0,"$oc/devices/device_id/user/mytopic",16,"{\"test\":\"hello\"}",若收到“+HMPUB OK”,表明发布成功。

      payload为ASCII模式,要求字符串首尾为双引号,中间的特殊字符要用转义字符。

      其中各参数含义如下所示:

      • qos:对应MQTT的qos,建议使用0。
      • topic:新增的自定义Topic。详细操作指导请参考新增自定义Topic,其中设备操作权限选择“发布”,deviceID需要替换为实际设备ID。
      • payload_len:上报消息的长度,不包含\。
      • payload:上报的消息。
    4. 属性上报。发送AT+HMPUB=qos,topic,payload_len,payload指令,例如,

      AT+HMPUB=0,"$oc/devices/device_id/sys/properties/report",82,"{\"services\":[{\"service_id\":\"Clock\",\"properties\":{\"card_no\":\"3028\",\"use_type\":1}}]}",若收到“+HMPUB OK”,表明上报成功,您可以在设备详情页面查看上报的属性值。

      属性上报前需要自定义产品模型或使用平台预置的产品模型。详细操作说明请参考在线开发产品模型平台预置产品模型

      • qos:对应MQTT的qos,建议使用0;
      • topic:平台预置的Topic。更多Topic请参考Topic定义,deviceID需要替换为实际设备ID。
      • payload_len:上报属性的长度,不包含\;
      • payload:上报的属性。
    5. 下发命令。在设备接入控制台设备详情 > 云端下发-命令下发页签,单击“同步命令下发”下方的“命令下发”。选择要下发的命令和命令值。下发成功后,设备侧收到+HMREC:topic,payload_len,payload,例如,+HMREC: "$oc/devices/device_id/sys/commands/request_id={request_id}{"paras":{"value":1},"service_id":"SmokeDetectorControl","command_name":"QUITSILENCE"}",86,{"paras":{"value":1},"service_id":"SmokeDetectorControl","command_name":"QUITSILENCE"
      图1 命令下发-SmokeDetectorControl_SILENCE

      其中各参数含义如下所示:

      • qos:对应MQTT的qos,建议使用0;
      • topic:平台预置的Topic。更多Topic请参考Topic定义,deviceID需要替换为实际设备ID,{request_id}用于唯一标识这次请求。设备侧发起的消息带该参数时,需要保证设备侧该参数值的唯一性,可以用递增的数字或者UUID来实现。设备侧收到的消息带该参数时,响应消息需要将该参数值返回给平台。
      • payload_len:下发命令的长度,不包含\;
      • payload:下发的命令。
    6. 取消自定义主题。发送AT+HMUNS="topic",例如,AT+HMUNS="$oc/devices/deviceID/user/mytopic",若收到“+HMUNS OK”,表明取消成功。

      其中topic为2中新增的自定义Topic,deviceID需要替换为实际设备ID。

    7. 断开和IoT平台的连接。发送AT+HMDIS指令。
    8. 设置服务器或客户端证书。
      • 设置CA证书:AT+HMPKS=type,para1,[para2],“Certificate”,例如发送AT+HMPKS=0,1360
      • 设置客户端证书: AT+HMPKS=type,para1,[para2],“Certificate”,例如发送 AT+HMPKS=1,1022
      • 设置私钥证书: AT+HMPKS=type,para1,[para2],“Certificate”,例如发送AT+HMPKS=2,1732
      • type:取值0,1,2。其中0表示CA证书,证书通过para1传递;1表示客户端证书,证书通过para1传递;2表示设备私钥证书,设备的私钥证书通过para1传递;如果有密码,则通过para2传输。
      • para1/[para2]:其中para1用于存放证书,为空时表示清除证书;para2用于存放私有证书的密码,仅当设置私有证书时有效,证书以字符串格式传输PEM。
      • Certificate:证书内容的字符长度值。
  • 使用HEXSTRING模式

    1. 连接华为云IoT平台。发送AT+HMCON=bs,lifetime,“serverip”,“serverport”,“deviceID”,“passwd”,codec指令,例如AT+HMCON=0, 300,“iot-mqtts.cn-north-4.myhuaweicloud.com”,“8883”,“deviceID”,“passwd”,0,若收到“+HMCON OK”,表明设备成功连接到平台。

      其中参数说明请参考1

    2. 订阅自定义主题。发送AT+HMSUB=qos,topic指令,例如AT+HMSUB=0,"$oc/devices/device_id/user/mytopic”,若收到“+HMSUB OK” ,表明订阅成功。

      其中参数说明请参考2

    3. 消息上报。发送AT+HMPUB=qos,topic,payload_len,payload指令,例如,AT+HMPUB=0,"$oc/devices/device_id/user/mytopic",16,7b2274657374223a2268656c6c6f227d

      :payload为HEX数据格式,可以直接是HEX字符串,且首尾无需双引号。

      其中参数说明请参考3

    4. 属性上报。此处以消息上报为例,其中参数说明请参考4
    5. 下发命令。在设备接入控制台设备详情 > 命令页签,单击“同步命令下发”右侧的“命令下发”。选择要下发的命令和命令值。下发成功后,设备侧收到+HMREC,topic,payload_len,payload指令,例如,

      +HMREC: "$oc/devices/device_id/sys/commands/request_id={request_id}",102,7B227061726173223A7B2276616C7565223A223132333435363738393071617A77737865646372667674676279686E756A6D696B6F6C70227D2C22736572766963655F6964223A224E42444F4F52222C22636F6D6D616E645F6E616D65223A2273656E64227D

      其中参数说明请参考5

    6. 取消自定义主题。发送AT+HMUNS="topic",例如,AT+HMUNS="$oc/devices/device_id/user/mytopic",若收到“+HMUNS OK”,表明取消成功。

      其中参数说明请参考6

    7. 断开和IoT平台的连接。发送AT+HMDIS指令。
    8. 设置服务器或客户端证书。参考步骤8

管理设备

模组设备接入平台后,物联网平台支持批量设备管理、远程控制和监控OTA升级等,并支持将设备数据灵活流转到华为云其他服务。

相关文档