①需要个人实名认证。
②计费规则,每月可以免费使用100万条消息数。
基础信息:
注意:这里因为我要用移远BC28模块连接华为云IOT平台,所以用的是LwM2M/CoAP协议类型。
产品模型:是用来描述设备能力的文件,通过JSON的格式定义了设备的基本属性、上报数据和下发命令的消息格式。定义产品模型,即在物联网平台构建一款设备的抽象模型,使平台理解该款设备支持的属性信息。
编解码插件:主要根据设备上报数据的格式来判断是否需要开发。如果设备上报的“数据格式”为“二进制码流”,则该产品下需要进行编解码插件开发。如果“数据格式”为“JSON”,则该产品下不需要进行编解码插件开发。(编解码插件是供物联网平台调用,完成二进制格式和JSON格式相互转换的。它将设备上报的二进制数据解码为JSON格式供应用服务器“阅读”,将应用服务器下行的JSON格式命令编码为二进制格式数据供终端设备(UE)“理解执行”。)
创建产品:某一类具有相同能力或特征的设备的集合称为一款产品。除了设备实体,产品还包含该类设备在物联网能力建设中产生的产品信息、产品模型(Profile)、插件等资源。
功能定义:即开发产品模型,产品开发最重要的是开发产品模型,产品模型用于描述设备具备的能力和特性。定义产品模型,即在物联网平台构建一款设备的抽象模型,使平台理解该款设备支持的服务、属性、命令等信息。
开发插件:如果设备上报的数据是二进制码流格式,就需要开发对应的插件,用于物联网平台完成二进制格式和JSON格式的转换;如果设备上报的是JSON格式数据,则不需要开发插件。
在线调试:设备接入控制台提供了产品在线调试的功能,您可以根据自己的业务场景,在开发真实应用和真实设备之前,使用应用模拟器和设备模拟器对数据上报和命令下发等场景进行调测,也可以在真实设备开发完成后使用应用模拟器验证业务流。
产品信息:描述一款设备的基本信息,包括厂商ID、厂商名称、设备类型、协议类型。
例如:TempMeter的厂商名称为“CXH”,厂商ID为“XXXXX”,设备类型为“TemprMeter”,协议类型为“CoAP”。
服务能力:描述设备具备的业务能力。将设备业务能力拆分成若干个服务后,再定义每个服务具备的属性、命令以及命令的参数。
维护能力:描述设备具备的维护能力,包括固件升级、软件升级、设备配置。
服务名称(serviceID):采用首字母大写的命名方式,如:StreetLight,
服务描述:描述设备的作用,如:温度上报,设备开关控制等
属性名称:首位必须为字母,建议采用驼峰形式,例如:internalTemp
数据类型 | 含义 |
---|---|
int | 当上报的数据为整数或布尔值时,可以配置为此类型。 |
decimal | 当上报的数据为小数时,可以配置为此类型。配置“经纬度”属性时,数据类型建议使用“decimal”。 |
string | 当上报的数据为字符串、枚举值或布尔值时,可以配置为此类型。如果为枚举值或布尔值,值之间需要用英文逗号(“,”)分隔。 |
DateTime | 当上报的数据为日期时,可以配置为此类型。 |
jsonObject | 当上报的数据为json结构体时,可以配置为此类型。 |
访问权限:设置应用服务器通过接口访问数据的模式.
可读:通过接口可以查询该属性。
可写:通过接口可以修改该属性值。
可执行:应用服务器订阅了数据变化通知后,设备上报了属性,应用服务器会收到推送通知
命令名称:首位必须为字母,建议采用全大写形式,单词间用下划线连接的命名方式。
①添加下发参数:
下发命令参数名称:首位必须为字母,建议采用第一个单词首字母小写,其余单词的首字母大写的命名方式。
②添加响应命令(我在示例中没有用到,只是做介绍):
响应命令字段参数:首位必须为字母,建议采用第一个单词首字母小写,其余单词的首字母大写的命名方式。
插件开发:如果“数据格式”为“二进制码流”,则该产品需要进行编解码插件开发。如果“数据格式”为“JSON”,则该产品下不需要进行编解码插件开发。(对NB-IOT来说:为了省电→采用二进制码流)
简单来说(112):一个解析(CoAP消息解析为payload),一个查找(查找对应编解码插件),两个转换(二进制数据与JSON数据的相互转化)。
图形化开发:在设备接入控制台,通过可视化的方式快速开发一款产品的编解码插件。
离线开发:使用编解码插件的Java代码Demo进行二次开发,实现编解码功能、完成插件打包和质检等。
脚本化开发:使用JavaScript脚本实现编解码的功能。
这里为了节省时间,简单实现。所以,采用了图形化开发。
注意:
①新增消息应该与前面模型定义中的属性一致。
②因为只有一条数据上报消息,则没有添加messageID字段。
③名称不能为JAVA的关键词。
④假如要使用响应字段,则需要messageID字段!(添加响应字段:添加响应字段后,物联网平台在收到设备上报的数据后,会下发用户设置的响应数据到设备(响应数据:AAAA0000))。
数据类型:根据数据上报消息种类的数量进行配置。
长度:根据数据类型的配置自动填充的。
默认值:可以修改,但必须为十六进制格式,且设备数据上报消息的对应字段必须和此处的默认值保持一致。
有关messageID字段的使用:
例如:添加字段,添加messageID字段,表示消息类型。假设我需要温度预警级别、温度(此消息类型为:0X0)。
messageID:此消息的第一个字段,起始位置为0,字节长度为1,终点位置为1。所以偏移值为0-1。
温度预警级别:偏移量1-2
温度:数据类型:int16u,偏移量2-4。
如果上报消息为:0001016A(第一字段:00表示此条消息指的是温度预警级别和温度这条消息。第二字段:01 表示此事温度预警级别。第三四字段:016A表示此时的温度)
注意:因为只有一条命令下发消息,则没有添加messageID字段,以及mid字段。
拖动右侧“设备模型”区域的属性字段和命令字段,数据上报消息和命令下发消息的相应字段建立映射关系。然后,点击右上角保存、部署。
有关响应mid字段:mid字段需要跟平台下发的命令里的mid字段保持一致(命令下发字段要设置mid,并且与命令响应mid字段对应),用于将下发的命令和命令执行结果进行关联。mid字段的数据类型默认为int16u。
例如:
AT+CMEE=1:发送指令如果出错,BC28串口会主动返回错误代号。
ATE1:设置命令回显,发送的指令内容会显示。
AT+CFUN?:查看UE功能等级(显示CUFN:1代表全部功能打开了。)
AT+CIMI :检测SIM卡是否有读取成功(返回SIM号则成功)。
AT+CEREG? :查询网络注册状态(=0 (第一个数)表示已禁用网络注册 URC,=1(第二个数) 表示已注册)
AT+CGATT? :查询网络是否被激活(返回0为入网失败,返回1为入网成功)。
注意:网络激活成功,通常需要等待 30s
AT+CSQ :检测信号强度。(不为99则表示有信号(即第一个数))
我们使用的CoAP协议,其端口号为:5683,IP地址:可以通过ping域名进行获取。
0:手动注册模式
1:自动注册模式
2:禁用注册模式
注意:注册模式针对的是重启并联网后会不会触发注册。
区别:自动注册需要用AT+NRB命令来重启模块。
+QLWEVTIND:0 //表明成功注册
+QLWEVTIND:3 //IoT 平台已观察到对象 19。当模块报告此消息时,数据可以发送到 IoT 平台。
AT+QLWULDATA=3,313233:发送 NON 数据,不需要 IoT 平台应答 ACK 消息。
AT+QLWULDATAEX=3,313233,0X0100 //发送 CON 消息, IoT 平台需要应答 ACK 消息
OK
+QLWULDATASTATUS:4 //数据发送成功
AT+QLWULDATASTATUS? //查询数据发送状态
+QLWULDATASTATUS:4 //数据发送成功