<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/product/gy001.html" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p
说明
1,这节是模组控制摄像头采集到图片以后, 上传图片到OneNet物联网平台, 可以在OneNet上查看设备拍照的图片
OneNet也支持下载文件,后续得空将增加手机APP查看功能;


2,如果在OneNet上开通了基站定位功能,还可以在地图上看到设备的位置

3,设备属性里面可以看到设备上传的供电电压(电池供电时的电池电压)
不仅是电池电压,也可以上报通过RS485或者CAN总线获取的其它数据

4,如果设备里面安装了内存卡,也可以在内存卡里面看到设备拍照的图片
20260324是日期, 160555是拍照时间点

测试准备工作
1,把这节的工程放到开发环境下面的目录里面并解压!
把这节的工程放到开发环境下面的目录里面并解压!
把这节的工程放到开发环境下面的目录里面并解压!

2,右键选择通过 Code 打开

3,开通OneNet平台
访问这个地址注册登录OneNet https://iot.10086.cn/console/login
点击设备管理服务

4,点击开通

5,开通以后再次点击 设备管理服务
6,右上角复制这个用户ID, 填写到程序里面


7,鼠标指向用户图像, 然后点击访问权限

8,点击查看

9,复制, 然后填写到程序里面


10,点击左上角的控制台, 点击设备管理 , 点击产品开发, 按照下面的选项创建产品





11, 点击产品开发,可以获取到产品的ID 和 Key


把产品ID 和 产品的 access_key 填写到程序里面

12, 设置物模型(如果不测试基站定位,客户可以不设置)
1, 设置物模型

我把我这边配置的物模型导出来了, 如果用户想快速设置物模型可以直接选择导入
如果用户想自己设置物模型可以看这个文档的最后面,有自己添加物模型的过程
如果用户想自己设置物模型可以看这个文档的最后面,有自己添加物模型的过程
如果用户想自己设置物模型可以看这个文档的最后面,有自己添加物模型的过程








2,开通基站定位

3,点击产品开发, 打开设备主动注册


编译下载测试(远离补光灯,远离补光灯,远离补光灯)
1,程序是启动以后就开始拍照, 用户可以在这里设置拍照次数,连续拍照间隔

2,点击这个进行编译
提示: 第一次编译时间有点长, 编译完这一次后面再编译就快了

3,编译下载程序,在日志窗口打印下面的日志说明已经执行完了一个流程休眠了


4,客户可以在OneNet平台上看到图片(设备名称默认是4G模组的IMEI)


5,如果开通了基站定位可以看到设备的位置


6,触发拍照测试(远离补光灯,远离补光灯,远离补光灯)
用户可以短接一下这两个引脚, 设备就会启动执行拍照
7,RS485 和 CAN总线的测试将放到后面的例程中
测试OTA升级
1,把程序软件版本改为0.0.1
GY001_0000_0.0.0: GY001 代表板子型号; 中间的0000代表硬件版本,字符串随意规定; 最后的0.0.0 代表软件版本

2,编译一下

3,编译完成以后固件是这个


4,添加升级包




5,点击验证升级

这个是咱当前设备上报的版本号


6,设备将会收到升级通知
提示: OneNet的OTA升级感觉有问题, 必须让设备重启重新上线才能收到通知;
{"params":["STUDIO-OTA-C"],"version":"1.0","id":"400"}
下载中


刷新一下会显示 已验证;
实际上就是找个设备先测试一下升级是不是完全可以, 可以以后再去批量升级别的设备;

7,然后就可以批量升级别的全部低版本的设备了


程序说明-关于为啥程序看着是跳来跳去
所有的网络接收数据以后不直接在回调函数里面解析, 是发到对应的缓存里面, 然后再在另外的任务读取缓存数据去解析;
比方说 MQTT



程序说明-OTA升级
1,设备上线以后上传版本



提示: 只所以把数据发送到拍照任务里面去解析执行, 是因为不想再多开个任务;
因为多开一个任务又要多加一个缓存区, 这边尽量留出更多的内存空间;
2,当服务器端设置了新的固件以后, 会通过MQTT给设备发送个通知有新固件

3,通过onenet 的 http去获取升级任务的tid值

onenet的http统一从这里接收数据



获取到tid的值以后再发到任务去处理


程序说明 - mqtt连接和http方式注册设备,上传图片
1,main函数里有一些引脚的说明和初始化

2,初始值onenet一些参数

mqtt是保持连接通信

http 主要做设备注册,OTA升级,图片文件上传等


3,等待网络连通以后连接onenet




4,在http回调函数里面获取设备信息



5,发送图片到OneNet

程序先执行的拍照,把图片存储到了缓存


然后等待联网

然后把图片一张一张的发送到OneNet服务器

6,4G联网部分是阻塞的

可以在回调函数里面获取联网状态, 可以通过全局变量 on_modem_event_id 获取状态

7,这是和4G模组串口通信部分


这个里面除了获取模组信息, 主要的就是获取定位

如果想自己一点一点的添加物模型,可是按照下面的操作
1,添加系统功能点

把基站定位和WiFi定位全选择上,虽然wifi定位现在没使用,也许以后会使用

2,添加完保存一下


3,设置物模型->添加系统功能点->添加自定义功能点





4,设置物模型->添加系统功能点->添加自定义功能点


标识符填写: local (这个不能随意写)

5,添加参数mnc

mnc -2147483648 2147483647 1

6,添加参数mcc

mcc -2147483648 2147483647 1

7,添加参数lac

lac -2147483648 2147483647 1

8,添加参数cid

cid -2147483648 2147483647 1

9,添加参数lon

lon -180 180 0.000001

10,添加参数lat

lat -90 90 0.000001

11,参数添加好了, 点击新增 -> 保存



.