本帖最后由 ttkx 于 2019-6-18 13:29 编辑
基于GD32E231C的NB IoT 小型气象台设计
项目背景和概述
智慧农业是物联网技术在现代农业领域的应用,主要有监控功能系统、监测功能系统、实时图像与视频监控功能。对于电信运营商而言,智慧农业,车联网、智慧医疗、智能家居等物联网应用将产生连接,远远超过人与人之间的通信需求。NB-IoT聚焦于低功耗广覆盖(LPWA)物联网(IoT)市场,是一种可在全球范围内广泛应用的新兴技术,因为NB-IoT自身具备的低功耗、广覆盖、低成本、大容量等优势,使其可以广泛应用于多种垂直行业,如远程抄表、资产跟踪、智能停车、智慧农业等。本文基于GD3232231低功耗MCU和移动物联的NB模块M5311设计了小型的气象台,该气象台包括光照强度,大气温度,湿度,PM2.5,大气压力和二氧化碳浓度等气象参数。由于各个传感器使用RS485总线,方便后续扩展雨量,风速,土壤温湿度等农业需要的气象参数。
系统框图
图 1 NB IOT小型气象站系统框图
硬件框图
图 2硬件框图
该方案主要是利用一次电池供电,因此对功耗要求比较严格,该方案中利用GD32的超低功耗特点。系统初始化后进入休眠,每隔1个小时唤醒一次,唤醒后给485传感器网络上电,同时利用AT指令让NB模块M5311推出PSM模式进入active模式。然后采集各个传感器数据后关闭传感器网络的电源。通过NB IOT上报百叶箱的大气温度,湿度,PM2.5和二氧化碳浓度等气象参数后利用AT指令让NB IOT模块进入PSM模式,系统再次进入休眠。软件的流程图如下所示:
图 3系统工作流程图
项目的Demo实物图如下:
GD32E231C开发板(白色),UART转RS485板(红色),NB IOT模块M3511,NB天线
百叶窗传感器(五合一,包括温度,湿度,光照,PM2.5,二氧化碳浓度)
云端服务器数据监控界面:
一些关键点的总结和说明:
一些关键点的总结和说明:
- GD32E231C的功耗问题
方案中尝试两种方式来降低功耗,一种是让NB模块进入PSM低功耗模式,利用服务器端指令唤醒,用振铃的方式(外部中断)唤醒GD32E231C,但是利用AT指令设置完后,服务器发送数据后,振铃功能好像不起作用,这点和GPRS模块有些不同。第一种方法失败。第二种是GD32E231C进入待机状态,利用RTC定时唤醒然后激活M5311从PSM模式进入ACTIVE模式。目前看待机模式功耗最低。
- NB模块M3351的控制问题总结
M3351总体上和GPRS模块控制相似,都是利用AT指令设置和发送数据,但是M3351目前只是能支持UDP协议,M3351A支持UDP和TCPIP协议,目前发现UDP协议会有丢包问题,在协议层需要考虑容错和缓存部分数据。
- 调试问题总结:
- 由于GD32E231C只有两个串口,一个用于NB模块的通讯,一个用于采集传感器采集的RS485。没办法只能把debug口挂在RS485网络上,RS485是一主多从,所以debug口只做监听数据。
- 低功耗调试起来比较麻烦,没有可以参考的例程,按照手册上的描述勉强可以工作,后续还需要继续优化和调试。
- NB网络的信号目前还不是很好,特别是覆盖问题。而且目前移动只对公办理开卡业务,个人无法办理。
该方案用到的资料:
1.GD32E231 IAR的库文件
GD32E23x_AddOn_V1.0.0.rar
(1.71 MB, 下载次数: 9)
2. 气象传感器编程手册
五合一百叶箱说明书.pdf
(1.01 MB, 下载次数: 11)
3. NB模块 M3351A编程手册
M5310_AT_Command_B657SP1-v2.1.0822.pdf
(1.62 MB, 下载次数: 11)
4. 该项目的源程序项目文件
IAR_NB_IoT_Project.zip
(1.36 MB, 下载次数: 17)
5. 该项目的说明文档
GD32E231C NB_Iot方案介绍.docx
(558.14 KB, 下载次数: 14)
|