电子说
对于这种方案的应用场景,一般是应用在集成商上面,比如户外环境,燃气管道监控等,需要上传一些数据和图片到指定的服务器,这个时候,一款低功耗的图片数据抓拍机就是很迫切的需求了。
对比了很多4G模块,想流畅地把数据和图片上传到服务器,带宽,速率这些都要考虑在里面,目前很多厂商用的方案是CAT1,但是我们在实践发现,CAT1还是满足不了图片和数据的快速上传,而且还要考虑到功耗问题,所以选了合方圆的低功耗4G模块G8100B为主控,这款可以直接支持USB接口,高速率接口,能快速上传图片和数据。能做到实时的视频传输。
具体的实现方案如图:
应用场景-4G低功耗摄像头
该方案中,Module为G8100B,HOST为海思摄像头(Linux or LiteOS),G8100B的USB可以在Host端虚拟出串口和
网卡,G8100B符合以下条件进入休眠:
1) 用户AT+CSCLK=1命令使能睡眠功能,关于CSCLK更多参数和作用请参考用户手册
(可以配置唤醒时长,是否保存睡眠参数);
2)拉高DTR管脚(该管脚默认启动为拉高);
3)通过GPIO拉低连接的模块VBUS管脚(USB断电)。
发生以下事件时会唤醒整个系统:
1)拉高VBUS管脚即可唤醒模块。
2)主机拉低DTR可以唤醒模块,大概需要100毫秒以上唤醒模块;
3)当G8100模块有TCP唤醒包或URC需要上报时,RI信号将会唤醒主机,此时RI产生100毫秒脉冲(可以用
AT+RIMODE指令配置RI工作模式为“唤醒一直拉高”)
怎么上传图片和数据到服务器?
通信方式及异常处理
1. 长连接使用 TCP 协议实现,启动指令:AT+CIPSTART="CAM","host or ip", port,2,保存指
令:
AT+CIPCFG=1,180,0,0,0,600
AT+CIPSCONT=0,"CAM","host or ip", port,2
2. 设备与服务器建立长连接并一直保持连接,间隔 1 - 5 分钟发送一次心跳包,服务端收到
心跳包返回心跳响应数据。
3. 服务器下发命令,设备根据下发命令进行相应操作后返回数据
4、数据以“C28C0DB26D39331A“作为起始标志 15B86F2D013B2618 作为结束标志
例:
C28C0DB26D39331A{"msg_type":4,"command":"image","timestamp":1585884815415}15B8
6F2D013B2618
协议内容
用户在多台公网服务器上运行支持 TCP 长连接的服务器程序,等待 4GCAM100 设备连接到
服务器监听端口,4GCAMx00 可以配置为 1 - 5 分钟一个心跳包的发送间隔,4GCAM100 每
次发送给服务器上行请求,服务器都应该响应,相反,服务器发送到设备的下行指令,设备2
也需要做出应答响应。本协议主要实现以下功能:
定时上报设备运行信息到服务器;
通过服务器下发抓拍在长链接直接返回图像数据;
通过服务器下发抓拍在 HTTP POST 方式发送到指定 URL;
远程升级 4GCAMx00 的 APP 固件;
下面为通讯协议具体细节定义格式:
1.设备定时心跳请求(上行)
数据请求方向:设备 --- 服务器
请参数名称
参数类型
是否必须
描述
err
int
是
错误号
msg_type
Int
是
1:心跳数据
firmware_version
String
是
固件版本
device_id
String
是
设备 ID
timestamp
Int
是
时间戳
battery
Float
是
电池电压
signal
String
是
4G 信号强度,范围:-30 到
-110,-30 为最强。
temp_env
int
是
环境温度
temp_cpu
int
是
CPU 温度
icharge
float
否
充电电流(带充电模块支持)
iload
float
否
负载电流(带充电模块支持)
vcharge
float
否
充电电压(带充电模块支持)
2.服务器心跳响应(下行)
数据请求方向:服务器 --- 设备
参数名称
参数类型
是否必须
描述
msg_type
Int
是
2:心跳响应数据
timestamp
Int
是
时间戳
审核编辑 黄宇
全部0条评论
快来发表一下你的评论吧 !