基于GD32的物联网环境监测系统
一套集成多传感器采集、NB-IoT远程通信、阿里云物联网平台数据流转及Flutter移动端实时显示的低功耗环境监测解决方案。
Nov 2024 - Present • 1 year, 1 month • Ongoing
Tech Stack
GD32 MCUC/C++PCB DesignNB-IoTMQTTAlibaba Cloud IoTFlutterDart
关于本项目
本项目旨在设计并实现一套基于国产高性能微控制器GD32F470ZG的环境监测系统,以满足对环境参数进行实时、远程、智能化监测的需求。针对传统监测站建设成本高、覆盖范围有限的痛点,该系统利用物联网技术实现了低成本、低功耗的网格化监测方案。
系统以立创梁山派开发板为核心,集成了温湿度、TVOC和气压传感器,通过NB-IoT网络将数据上传至阿里云物联网平台,并最终在移动端App上进行实时展示,验证了国产MCU在环境监测领域的应用可行性。
核心功能
多参数环境感知
- 高精度采集:集成AHT21温湿度传感器、AGS10 TVOC传感器和WF183D气压传感器,实现对环境温度、相对湿度、挥发性有机化合物浓度及大气气压的精确采集。
- 数据处理:在MCU端进行原始数据的解析、校验(CRC)及单位转换,例如将湿度信号转换为相对湿度。
智能电源管理
- 双路供电切换:支持USB(5V)与3.7V锂电池双路供电。采用BQ25616RTWT芯片实现路径管理,当USB断开时自动无缝切换至电池供电。
- 充电与升:集成锂电池充电管理,并通过TPS61022RWUR将电池电压同步升压至5V,再降压至3.3V供系统使用,确保电压稳定。
远程通信与云平台
- NB-IoT 数据远传:利用EC-01F模组,通过AT指令与MQTT协议将JSON格式的环境数据发布到阿里云物联网平台。
- 云端规则引擎:在阿里云平台配置数据流转规则,解析设备上报的数据并转发至指定Topic,供移动端订阅。
移动端实时监控
- 跨平台 App:基于Flutter框架开发的移动应用程序,支持Android和iOS 。
- 实时数据同步:App通过MQTT协议连接云平台,订阅数据Topic,实时接收并解析JSON数据,动态更新UI界面显示的各项环境指标。
技术架构
硬件架构
- 主控单元:GD32F470ZG(Arm® Cortex®-M4, 240MHz),负责传感器驱动与系统调度。
- 传感器组:
- 温湿度:AHT21(I2C接口)
- TVOC:AGS10(I2C接口)
- 气压:WF183D(UART接口)
- 通信模块:EC-01F NB-IoT模组(UART接口,支持3GPP R14)。
- 电源系统:BQ25616(充电管理)+TPS61022(升压)+TMI3411(降压)。
- PCB 设计:采用四层板设计,合理布局电源层与地层,优化射频与模拟电路隔离。
软件架构
- 嵌入式固件:
- 开发环境:VS Code+EIDE+ARM Compiler 5。
- 驱动开发:实现软件I2C、硬件UART驱动及AT指令解析。
- 算法实现:传感器数据校准与CRC8校验计算。
- 云端平台:阿里云IoT Platform,利用物模型(TSL)定义数据结构,配置规则引擎实现数据流转。
- 移动端:
- 框架:Flutter(Dart语言)。
- 通信库:使用mqtt_client插件实现与阿里云的MQTT通信。
认证与管理
- 一机一密:设备端使用ProductKey、DeviceName、DeviceSecret三元组进行阿里云身份认证,确保接入安全。
- 用户鉴权:移动App端实现了基础的用户登录验证机制,保护监控数据的访问权限。