<time>: -t 设备存活时间,标示终端和

OneNET 平台之间连接的存活周

期,设置范围为

10s~86400s;

: -u 设置

PUT 和 POST 指令分片长度,范围 0~6,指示分片长度

为 2^(4+u),缺省值为

5;

: -g

设置GET指令分片长度,范围0~6,指示分片长度为2^(4+g),

缺省值为 5;

: -x 设置触发分片操作的最大长度,范围

0~2,指示阈值为

2^(4+x),缺省值为

2。

如 无 特殊 需求,建议分片参数 block1 和 和

block2 设置

为缺省值,block2th 设

置为 为 1 。

这种方法适用于采用串口调试助手调试M5310模组。

(2)使用相关算法生成注册码:

#include

"memory.h"

#include

"string.h"

#include

"stdio.h"

#include

"stdlib.h"

#include

"string.h"

typedef enum

{

MIPL_DEBUG_LEVEL_NONE

= 0,

MIPL_DEBUG_LEVEL_RXL,

MIPL_DEBUG_LEVEL_RXL_RXD,

MIPL_DEBUG_LEVEL_TXL_TXD,

}

MIPL_DEBUG_LEVEL_E;

typedef unsigned char

uint8;

typedef unsigned short

uint16;

typedef unsigned

uint32;

#define

MIPL_BOOT 1

#define

MIPL_ENCRYPT 0

#define

MIPL_DEBUG MIPL_DEBUG_LEVEL_NONE

#define

MIPL_PORT 0

#define

MIPL_KEEP_ALIVE 3000

#define

MIPL_BLOCK1 5

#define

MIPL_BLOCK2 5

#define

MIPL_BLOCK2TH 1

#define

MIPL_URI "coap:\/\/183.230.40.39:5683"

#define

MIPL_ENDPOINT "862018102915220;460040236709122"

typedef

struct

{

uint8

boot;

uint8

encrypt;

MIPL_DEBUG_LEVEL_E

debug;

uint16

port;

uint32

keep_alive;

size_t

uri_len;

char*

uri;

size_t

ep_len;

char*

ep;

uint8

block1; //COAP option

BLOCK1(PUT or POST),0-6.

2^(4+n) bytes

uint8

block2; //COAP option

BLOCK2(GET),0-6.

2^(4+n) bytes

uint8

block2th; //max size to

trigger block-wise operation,0-2. 2^(8+n) bytes

} MIPL_T;

void mipl_generate(char *buf,

size_t buflen, MIPL_T *mipl);

int

main(void)

{

char

config[1024];

MIPL_T

m5310_mipl_t;

m5310_mipl_t.block1

= MIPL_BLOCK1;

m5310_mipl_t.block2

= MIPL_BLOCK2;

m5310_mipl_t.block2th

= MIPL_BLOCK2TH;

m5310_mipl_t.boot

= MIPL_BOOT;

m5310_mipl_t.debug

= MIPL_DEBUG;

m5310_mipl_t.encrypt

= MIPL_ENCRYPT;

m5310_mipl_t.ep_len

= strlen((char*)MIPL_ENDPOINT);

m5310_mipl_t.ep

= (char*)MIPL_ENDPOINT;

m5310_mipl_t.keep_alive

= MIPL_KEEP_ALIVE;

m5310_mipl_t.port

= MIPL_PORT;

m5310_mipl_t.uri

= (char*)MIPL_URI;

m5310_mipl_t.uri_len

= strlen((char*)MIPL_URI);

mipl_generate(config,

sizeof(config), &m5310_mipl_t);

while(1);

return

0;

}

void output_buffer(unsigned

char *buffer, int length,int index, int flag)

{

int i =

0;

while( i <

length )

{

printf(

"X", buffer[i++] );

}

printf(",%d,%d\r\n",index,flag);

}

void mipl_generate(char *buf,

size_t buflen, MIPL_T *mipl)

{

uint32 offset

= 0;

int mipl_num

= 0;

char mode =

0;

memset(buf,

0, buflen);

mode =

((mipl->boot & 0x1) << 4) | (mipl->encrypt &

0x1);

memcpy(buf +

offset, &mode, 1);

offset++;

memcpy(buf +

offset, &mipl->debug, 1);

offset++;

memcpy(buf +

offset, &mipl->port, 2);

offset +=

2;

memcpy(buf+offset,

&mipl->keep_alive, 4);

offset +=

4;

memcpy(buf +

offset, &mipl->uri_len, 2);

offset +=

2;

memcpy(buf +

offset, mipl->uri, mipl->uri_len);

offset +=

mipl->uri_len;

memcpy(buf +

offset, &mipl->ep_len, 2);

offset +=

2;

memcpy(buf +

offset, mipl->ep, mipl->ep_len);

offset +=

mipl->ep_len;

*(buf +

offset) = mipl->block1;

offset++;

*(buf +

offset) = mipl->block2;

offset++;

*(buf +

offset) = mipl->block2th;

offset++;

mipl_num =

0;

while(offset

> 1024)//每条+MIPLCONF命令最多输入1024字节配置数据

{

printf("AT+MIPLCONF=%d,",1024);

output_buffer( (unsigned char *)(buf + (mipl_num >>

10)),1024,mipl_num + 1,0);//index从1起始

mipl_num++;

offset -=

1024;

}

printf("AT+MIPLCONF=%d,",offset);

output_buffer(

(unsigned char *)(buf + (mipl_num >> 10)),offset,mipl_num +

1,1);//结束

}

这种方法适用于通过MCU控制M5310模组。

将生成的注册码发送到M5310:

AT+MIPLCONF=71,10000000B80B00001900636F61703A2F2F3138332E3233302E34302E33393A353638331F003836323031383130323931353232303B343630303430323336373039313232050501,1,1

0

OK

0为

4、 订阅Object

组 配置

命令格式:AT+MIPLADDOBJ=,,

objectid代表的类型可参考IPSO

资源模型,http://www.openmobilealliance.or ...

/LwM2MRegistry.html。

如发送:AT+MIPLADDOBJ=0,3303,0

5、模组侧发起登录

AT+MIPLOPEN=0,15

上述指令中,30

代表登录超时时间;如果超过该时间,模组还未接收到平台的登录响应,模组则会上报登录失败的通知。

登录结果上报:

模组上报登录请求,服务器收到登录请求数据之后,会根据数据内容,返回本次登录结果;如果登录失败,或者登录超时,模组都会上报登录失败的响应。

登录成功上报打印如下:

+MIPLOPEN:0,1

登录失败上报打印如下:

+MIPLOPEN:0,0

需要注意的是, 如果在注册码中的

debug参数设置为非0,则在登录过程中,除了上报登录信息之外,还会应显示对应debug

等级的数据内容。

模组登录成功后,平台会下发Observer 消息和

Discover 消息;模组收到这两条消息之后,会自动处理,无需用户另行处理:

同时OneNET会显示设备在线:

6、向OneNET平台发送数据

命令格式:AT+MIPLNOTIFY=,,,,,,[,]

这里使用不带ackid方法上报:

AT+MIPLNOTIFY=0,3303,0,5700,4,"24.5"

OK

查看上报的数据:

参数说明:

:资源ID,请参考IPSO

资源模型,http://www.openmobilealliance.or ...

/LwM2MRegistry.html。

:

1 2 3 4 5 6

string opaque integer float bool hex_str

五、命令总结

1、上电检查流程

(1) AT

//判断模组是否上电开机成功

(2) AT+CSQ

//信号质量检查

(3) AT+CEREG? //判断 PS

域附着状态,标识位返回 1 或 5 表示附着正常

(4) AT+CGATT? //检查模组 PS

附着状态

2、模组侧设备创建及资源订阅,登录流程

(1) AT+MIPLCONF=72,1003000……….

3033393639050501,1,1//设置模组侧设备注册码

(2)

AT+MIPLADDOBJ=0,3200,0 //订阅

Object 3200 资源设置

(3)

AT+MIPLNOTIFY=0,3200,0,5505,6," E309C82FE6 ",1 //订阅 Resource 5500

资源设置

(4) AT+MIPLOPEN=0,30 //设备登录到

OneNET 平台

3、OneNET 数据收发流程

(1)

AT+MIPLNOTIFY=0,3200,0,5505,6," E309C82FE6 ",1

//数据上传

(2)

AT+MIPLREAD=0,60204,3200,0,5505," E309C82FE6

",1 //Read

操作回复流程

(3) AT+MIPLWRITE=0,62069,1

//Write 操作回复流程

(4) AT+MIPLEXECUTE=0,46081,1

//Execute 操作回复流程

4、模组侧设备注销流程

(1)

AT+MIPLCLOSE=0 //登录注销流程

(2) AT+MIPLDELOBJ=0,3200,0

//模组侧订阅资源列表释放

(3) AT+MIPLDEL=0

//模组侧通信实例删除

六、IPSO 资源模型示例

更多请参考:OMA LightweightM2M (LwM2M) Object and

Resource Registry

m5310模组数据上传至onenet_NBIOT模组M5310接入中国移动物联网开放平台示例文档相关推荐

  1. NBIOT模组M5310接入中国移动物联网开放平台示例文档

    版权声明:本文为转载,并非原创 M5310模组采用的是海思Hi2110芯片,在全球eSIM NB-IoT模组中的尺寸最小,仅19×18.4×2.7mm,节省布板面积达30%以上,具有工业级.低功耗.深 ...

  2. m5310模组数据上传至onenet_NB-IoT模块 YNH-M5310A全网通接入OneNET平台MQTT协议实现数据传输...

    void ClearRAM(u8* ram,u32 n) { u32 i; for (i = 0;i < n;i++) { ram[i] = 0x00; } } //构建MQTT连接包 u16 ...

  3. m5310模组数据上传至onenet_m5310模组数据上传至onenet_移动M5310-A NB-IoT通信模组技术参数...

    标签: NB-IoT 提供NB-IoT技术特点,NB-IoT模块/芯片,NB-IoT解决方案等前沿技术趋势信息,工程师最喜欢的NB-IoT技术社区/物联网 物联网是新一代信息技术的重要组成部分,也是& ...

  4. 安信可EC系列模组接入OneNET物联网开放平台的多协议接入产品

    目录 前言 一.OneNET的多协议接入的创建 1. 进入到OneNET的首页:OneNET - 中国移动物联网开放平台,并进入到控制台: 2. 切换到旧版控制台:OneNET - 物联网控制台旧版 ...

  5. m5310模组数据上传至onenet_硬核干货!基于M5310-A的NB-IoT水表通信模块软件业务逻辑分享...

    根据不同的应用场景需求,目前NB-IoT水表主要有以下几种方案: 图1 几种常见NB水表方案 接下来将从NB-IoT水表上电开机.模组初始化.入网判断.业务逻辑四个环节来详细讲述,以下业务流程仅供参考 ...

  6. m5310模组数据上传至onenet_基于Semtech SX1276RF1KAS SPI模组及ATMEGA328架构下之烟雾气体感测方案...

    大大通--方案知识库 解决问题一 (如何减少硬体成本及功耗): 在初接触LoRa模组的人中有需多会先使用既有厂商开发的UART模组,其原因是可以加快开发时间及人力成本.但其中会碰到两个问题为UART模 ...

  7. m5310模组数据上传至onenet_5G通信模组799元限量发售,中国移动意欲何为?

    "一年一度双十一,通信模组亦疯狂."日前,中国移动方面宣布,其自有品牌OneMO模组在11月1日-11日期间推出双十一5G模组产品"放价"营销活动,799元限量 ...

  8. m5310模组数据上传至onenet_彻底火了的NB-IoT突破1亿大关(附最新芯片和模组厂)!...

    美国高通(Qualcomm),NB-IoT芯片型号:MDM9206.MDM9205.单模NB2芯片组Qualcomm 212 LTE IoT 深圳华为海思,NB-IoT芯片型号:Boudica 120 ...

  9. m5310模组数据上传至onenet_移动M5310-A NB-IoT通信模组技术参数

    标签: NB-IoT 提供NB-IoT技术特点,NB-IoT模块/芯片,NB-IoT解决方案等前沿技术趋势信息,工程师最喜欢的NB-IoT技术社区/物联网 物联网是新一代信息技术的重要组成部分,也是& ...

最新文章

  1. 计算机命令vty是什么意思,讲述华为交换机配置中HTTP访问和vty访问命令 -电脑资料...
  2. Kubernetes vs Docker:了解2021年的容器
  3. Flyway 执行报错: 'user_variables_by_thread' 表没有SELECT权限问题
  4. jeecg中ajax传值的前端js和后台代码
  5. 【leetcode】16 3Sum Closest
  6. accdb 用户类型未定义_Python早期设计与开发:数字类型的设计缺陷
  7. NUMA - Non Uniform Memory Architecture 非统一内存架构
  8. airpods pro是按压还是触摸_AirPods Pro体验:真好用,但我还是想退货啊
  9. Java并发编程的艺术(一)并发编程的挑战
  10. 360加固签名验证_360加固需要签名和密码
  11. android 开机自动运行程序
  12. linux中rm件命令,Linux rm命令详解
  13. pdf转换成word后有文字叠加_将PDF转换成Word文档后,为什么字体全变了?
  14. 实现ftpserver
  15. linux tahoma字体,Linux字体安装与简单美化(实践篇)(转)
  16. 14期《未来,我来》1月刊
  17. 【利用Python进行数据分析】13 - Python建模库介绍
  18. 扫地机器人水箱背景_智能扫地机器人电控水箱与普通水箱的区别。
  19. windows双系统如何删除ubuntu系统并重装
  20. 2022-2028年中国珠宝电子商务行业市场需求分析及投资方向研究报告

热门文章

  1. 元气森林、完美日记、泡泡玛特们的2021,竞争壁垒低,前行道路难
  2. 常态化疫情防控下会展经济的“长沙蓝本”
  3. java占位符打印_java简单日志打印规范小记
  4. python 执行shell命令行效率提升_在python脚本中执行shell命令的方法
  5. python实训计算总秒数,Python:如何获取每个吉利秒数
  6. 思科面试题c语言,C语言面试题~总汇(基础题、嵌入式、微软、华为、思科……).doc...
  7. (Buuctf) [第五空间2019 决赛]PWN5 简单格式化字符串漏洞利用
  8. python教程:函数参数中默认值及重要警告
  9. python 列表(list)操作及函数
  10. Python 之杀不死的Shell子进程