正点原子4G DTU 上传物模型数据至阿里云

1、进入阿里云物联网平台选择公共实例

2、在产品下选择创建产品

产品名称:写上自己的产品名称

所属品类:自定义品类->直连设备

联网与数据:蜂窝(2G/3G/4G)

数据格式:ICA标准数据格式(Aink JSON)(后面上传数据需要使用此格式进行上传)

数据校验级别:弱校验

认证方式:设备密钥

3、在设备下选择添加设备

产品:选择刚刚创建好的产品名称

DeviceName:写上自己的设备名称

备注名称:可以不写

4、创建物模型

4.1、进入刚刚创建好的产品界面选择功能定义选项

 4.2、点击编辑草稿进入功能定义

 

 4.3、选择添加功能

此项会导致后面上传数据的发布格式不一样,具体见6.3

4.3.1、选择添加标准功能

选择其他功能来选择自己需要的功能

4.3.1、选择添加自定义功能

读写类型选择读写,其余选项按照自己的需求进行设置

5、在上位机软件上进行4G DTU模块的配置

5.1、工作模式选择阿里云

5.2、填写自己的设备证书编号

阿里云进入设备界面,点击DeviceSecret右侧的查看填写自己的设备证书编号

5.3、填写发布主题和订阅主题

进入产品界面,选择Topic类列表,选择物模型通信Topic

5.3.1、订阅

选择属性设置下的订阅格式

/sys/a1AsRPqqbsm/${deviceName}/thing/service/property/set

5.3.2、发布

选择属性上报下的发布格式

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

5.4、其他设置

可以根据阿里云官方文档去找得这些参数的具体设置,这里给出我的设置

5.5、保存所有参数

6、程序修改

6.1、初始化DTU参数

参数里选择DTU_WORKMODE_ALIYUN
dtu_config_init(DTU_WORKMODE_ALIYUN)

6.2、修改阿里云里的配置参数

此时的参数设置与第五步的配置一模一样

6.3、定义需要传输的数据

6.3.1、传输标准格式的数据

//此处给出一小段例子
char DTU_IndoorTemperature_DATA[300];
float indoor = 24;

sprintf(DTU_IndoorTemperature_DATA,
"{\"method\":\"thing.event.property.post\",\"id\":\"2564884\",\"params\":{\"IndoorTemperature\":%1f},\"version\":\"1.0.0\"}",indoor);

send_data_to_dtu((uint8_t *)DTU_IndoorTemperature_DATA, strlen(DTU_IndoorTemperature_DATA));

6.3.2、传输自定义类型的数据

//此处给出一小段例子
char DTU_BodyTemp_DATA[300];
float body = 38.3;

sprintf(DTU_BodyTemp_DATA,
"{\"method\":\"thing.service.property.post\",\"id\":\"2564885\",\"params\":{\"BodyTemp\":%1f},\"version\":\"1.0.0\"}",body);

send_data_to_dtu((uint8_t *)DTU_BodyTemp_DATA, strlen(DTU_BodyTemp_DATA));

版权声明:本文为W__winter原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。