设备接入 IoTDA设备接入 IoTDA

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

通过华为认证模组接入

概述

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

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

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

推荐模组列表

表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收发数据

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

购买华为云认证模组

  1. 访问华为云市场
  2. 购买您所需的模组型号,目前已上架的模组型号请参考表1

硬件连接

将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"}

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

      • 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. 下发命令。在设备接入控制台设备详情 > 命令页签,单击“同步命令下发”右侧的“命令下发”。选择要下发的命令和命令值。下发成功后,设备侧收到+HMREC,topic,payload_len,payload指令,例如,

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

      其中参数说明请参考5

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

      其中参数说明请参考6

    6. 断开和IoT平台的连接。发送AT+HMDIS指令。

管理设备

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

分享:

    相关文档

    相关产品