1. 点击添加自定义功能节点![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bjQnVOSb-1687836381141)(NB-IOT设备接入OneNET平台.assets/image-20230627092941424.png)]](https://img-blog.csdnimg.cn/e4da3c589a454e2f92e1b19135b82400.png)
2. 创建一个简单的物模型,完成后点击新增![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6Bh8qfM1-1687836381142)(NB-IOT设备接入OneNET平台.assets/image-20230627093241581.png)]](https://img-blog.csdnimg.cn/747c583b765c4ded9a1e91ecfbd0cef3.png)
可以看到列表中看到了新增的信息事件,点击保存,就可以将我们刚才设置的事件保存到我们的物模型中
2.3、添加设备
设置完一个简单的物模型后我们先来测试一下它的可用性,但是此时我们的产品下还没有设备,所以我们先来添加一个设备
- 点击设备接入管理->设备管理->添加设备
- 产品选择我们刚刚创建的测试,设备名称随意,我们还缺少两个必填项
IMIE
和IMSI
- 打开串口调试助手输入
AT+CGSN=1 获取
IMEI
号
AT+CIMI 获取
IMSI
码
4. 将获取到的IMEI
和IMSI
输入,点击确定
我们就可以在设备列表中看到我们刚才添加的设备了
2.4、测试物模
- 点击设备详情
- 点击设备调试->事件上报->启动调试
- 事件选择我们刚才创建的测试用例,具体的参数随意填写,之后点击事件上报
- 可以在右边的调试日志中看到设备上报到平台的数据形式
我们先把它复制出来,在后面需要用到
{ “title”: “事件上报”, “timestamp”: “2023-06-27 09:54:04”, “message”: “{“payloads”:{“id”:“1687830843101”,“version”:“1.0”,“params”:{“Test”:{“value”:{“Begin”:110,“Mid”:119,“End”:120}}},“method”:“thing.event.post”},“url”:”/19/0/0"}" }
在这里可以先了解一点连接平台相关的知识
1. [物模型通信协议>OneJson简介]( )
2. [LwM2M协议接入>LwM2M-Studio概览]( )
3、连接NB-IOT
3.1、模块初始化
//确认模块能正常响应 AT 命令
AT
OK
//获取模块 IMEI 号
AT+CGSN=1
+CGSN: “865324037375316”
OK
//查询模块固件版本号
AT+CGMR
+CGMR: N306_C1-E05-STD-BZ-001
OK
//确认模块能识别到 SIM 卡
AT+CPIN?
+CPIN: READY
OK
//获取 IMSI
AT+CIMI
460016657520885
OK
//确认信号良好 12< CSQ <31
AT+CSQ
+CSQ: 31, 99
OK
//主动关闭低功耗模式
AT+ECPMUCFG=1,1
OK
// 查询网络附着情况
AT+CGATT?
+CGATT: 1
OK
// 查询网络注册情况
AT+CEREG?
+CEREG: 0,1
OK
//查询 PDP 是否激活成功
AT+CGPADDR
+CGPADDR: 0,“10.20.221.89”
OK
这里具体的命令可能会有所不同,具体的命令要找模组厂商要资料,我这里使用的是有方的N306模块(很明显这不是广告)
3.2、模块接入 OneNET 平台,完成注册
//查询基础通信套件版本
AT+MIPLVER?
+MIPLVER: 2.3.0OK
//创建基础通信套件成功,返回 < ref > 为 0,0 是基础通信套件标识,后续 AT 指令都需要使用到它
AT+MIPLCREATE
+MIPLCREATE: 0OK
//添加对象为 19
AT+MIPLADDOBJ=0,19,1,“1”,1,1
OK//模块请求注册AT+MIPLOPEN=0,3600
OK+MIPLEVENT:0,1 //OneNET 平台返回结果 BOOTSTRAP_START
+MIPLEVENT:0,2 //OneNET 平台返回结果 BOOTSTRAP_SUCCESS
//不是内部集成平台SDK的模块不返回0,4
+MIPLEVENT:0,4 //OneNET 平台返回结果 CONNECT_SUCCESS
+MIPLEVENT:0,6 //OneNET 平台返回结果 REG_SUCCESS
//OneNET 平台对象/实例 Observe 请求
+MIPLOBSERVE: 0,125579,1,19,0,-1
//模块响应 Observe 请求,其中 msgid=125579 必须对应 OneNET 平台 Observe 请求消息中下发的 msgidOK
AT+MIPLOBSERVERSP=0,125579,1
//OneNET 平台对象 Discover 请求
+MIPLDISCOVER: 0,60044,19
//模块响应 Discover 请求,其中 msgid=60044 必须对应 OneNET 平台 Discover 请求消息中下发的 msgid。
AT+MIPLDISCOVERRSP=0,60044,1,1,“1”
OK//平台返回 Discover 请求结果给模块,完成订阅。
+MIPLEVENT: 0,11
到这里我们就成功的与平台建立了通信,查看设备状态为在线
4、上传数据到ONENET平台
设备要向平台上传能被物模型解析的数据的格式要是16进制的OneJson格式数据
所以这个时候需要用到我们前面在设备调试时复制来的数据了,我们可以用几个实用的工具网站来转换成我们需要的数据
- 我们在这里可以使用去转义功能,将我们复制来的数据格式化成我们需要的样子(只需要playload里面的内容)JSON在线 | JSON解析格式化—SO JSON在线工具
转换后我们得到了这样的数据
{
"id": "1687830843101",
"version": "1.0",
"params": {
"Test": {
"value": {
"Begin": 110,
"Mid": 119,
"End": 120
}
}
},
"method": "thing.event.post"
}
- 保险起见我们再清除空白字符在线字数统计工具 | 菜鸟工具 (runoob.com)
我们可以得到这样的结果
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年嵌入式&物联网开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新!!
g-SsoNdkcT-1715591713536)]
[外链图片转存中…(img-NGqXx6YE-1715591713536)]
[外链图片转存中…(img-jI5rFN83-1715591713537)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新!!