本帖最后由 阿基米东 于 2020-7-6 01:10 编辑
概述
随着城市的扩张和经济的发展,大量的工业废气和汽车尾气等污染气体进入大气层,使得空气污染问题愈发严重。不仅有全球变暖这种国际性问题,还有雾霾等大气长期污染问题。除此之外,室内空气污染问题也不容忽视,吸烟、厨房油烟、室内装修材料散发的有机气体和放射性气体,以及粉尘螨和细菌等微生物,都是室内空气污染的帮凶。
你可能不知道,空气污染使九分之一的人丧命,且对我们的气候未来造成威胁。通过搭建一套空气质量监测系统,帮助你了解你的城市和家庭是否面临危险。
人无时无刻都在呼吸,长期生活在受污染的空气环境中,容易诱发慢性呼吸性疾病,甚至是肺癌。然而现实生活中,却很少人会关注与我们息息相关的空气质量。因此,本人基于雅特力 AT32F403-START 开发板和 RT-Thread 操作系统,搭配三个传感器模块共检测五种空气质量指标,分别是空气温度、湿度、颗粒物浓度、TVOC 浓度以及 CO2 浓度。为了增加数据分析和应用功能,同时考虑入网的便捷性,使用 NB-IoT 模块将数据上报到云端进行统计分析和存储,并开发微信小程序“空气侦探”方便用户随时随地查看数据。
整体方案
包括感知层、网络层、平台层、应用层四部分。其中网络层使用 NB-IoT 模组接入网络,使用 MQTT 协议进行通信。
整个系统主要分为设备端、云端、用户端三大块。设备端 MCU 运行 RT-Thread,主要负责采集传感器数据并将数据上报到云端;云端采用阿里云 IoT 平台接入设备,同时实现设备管理、数据转发功能,通过搭配 ECS、RDS 等云服务,实现数据存储和应用服务;用户端包括基于 IoT Studio 实现的 Web 页面和微信小程序,方面用户随时随地关注室内外的空气质量情况。
硬件框架
硬件方案介绍:
中间蓝色部分为主控模块,雅特力 AT32F403A 微控制器,运行 RT-Thread 物联网操作系统,负责驱动外部设备和系统逻辑控制; 左侧红色部分为传感模块,分别是单总线接口的 DHT22 温湿度传感器,ADC 接口的 GP2Y1014 灰尘传感器,以及 I2C 接口的 SGP30 气体传感器(检测 TVOC 和 CO2); 上方黄色部分为存储模块,为 AT32F403A-START 板载的 SPI Flash,负责在必要时存储传感数据; 右上方浅绿色部分为交互模块,通过板载按键和 LED 灯实现简单的交互功能; 右下方深绿色部分为通信模块,使用移远的 NB-IoT 模组 BC28 连接阿里云物联网平台,负责传感数据上报和逻辑数据通信。
RT-Thread 使用情况(上述5个软件包均为本人亲手制作的,已贡献到 RT-Thread 软件包库,可在 http://packages.rt-thread.org/ 网页检索)
软件模块说明 在 RT-Thread + 软件包的基础上进行应用程序开发,将任务分为三组线程,并使用信号量和事件集进行同步,使用邮箱和内存池进行通信。
设备端应用层程序的三组线程分别是:
左侧红色部分为传感数据采集线程,dhtxx、gy2y10、sgp30 均已对接 sensor 框架,因此调用统一的 rt_device_xxx 接口进行操作; 中间蓝色部分为同步线程,负责协同不同速率的传感器,同时做一些本地数据处理,为数据上报做准备; 右侧绿色部分为数据上报线程,负责将传感器数据上报到云端。
代码地址GitHub 仓库:https://github.com/luhuadong/fctc-air-at32f403a-start
软件包: dhtxx 软件包:https://github.com/luhuadong/rtt-dhtxx gp2y10 软件包:https://github.com/luhuadong/rtt-gp2y10 sgp30 软件包:https://github.com/luhuadong/rtt-sgp30 littled 软件包:https://github.com/luhuadong/rtt-littled bc28_mqtt 软件包:https://github.com/luhuadong/rtt-bc28-mqtt
更多方案细节请查看 附件《RT-Thread作品秀_空气质量监测系统》
项目开发过程及演示视频已上传到 B 站( https://www.bilibili.com/video/BV1mK411p7jj ),欢迎小伙伴们点赞、投币、收藏!
|
这种如果量产,怎么实现WIFI联网配置?即终端用户拿到产品盒子如何配置WIFI密码上网?