【RT-Thread 作品秀】空气质量监测系统

【RT-Thread 作品秀】空气质量监测系统_第1张图片

1. 概述

随着城市的扩张和经济的发展,大量的工业废气和汽车尾气等污染气体进入大气层,使得空气污染问题愈发严重。不仅有全球变暖这种国际性问题,还有雾霾等大气长期污染问题。除此之外,室内空气污染问题也不容忽视,吸烟、厨房油烟、室内装修材料散发的有机气体和放射性气体,以及粉尘螨和细菌等微生物,都是室内空气污染的帮凶。

你可能不知道,空气污染使九分之一的人丧命,且对我们的气候未来造成威胁。通过搭建一套空气质量监测系统,帮助你了解你的城市和家庭是否面临危险。

人无时无刻都在呼吸,长期生活在受污染的空气环境中,容易诱发慢性呼吸性疾病,甚至是肺癌。然而现实生活中,却很少人会关注与我们息息相关的空气质量。因此,本人基于雅特力 AT32F403-START 开发板和 RT-Thread 操作系统,搭配三个传感器模块共检测五种空气质量指标,分别是空气温度、湿度、颗粒物浓度、TVOC 浓度以及 CO2 浓度。为了增加数据分析和应用功能,同时考虑入网的便捷性,使用 NB-IoT 模块将数据上报到云端进行统计分析和存储,并开发微信小程序“空气侦探”方便用户随时随地查看数据。

系统分为感知层、网络层、平台层和应用层,整体方案如下图所示。

【RT-Thread 作品秀】空气质量监测系统_第2张图片

2. RT-Thread 使用情况概述

RT-Thread 使用情况:

  • 内核部分:RT-Thread 4.0.3
  • 组件部分:sensor、at client、netdev、dfs
  • 软件包部分:dhtxx、gy2y10、sgp30、littled、bc28_mqtt

(上述5个软件包均为本人亲手制作的,已贡献到 RT-Thread 软件包库,可在 http://packages.rt-thread.org/ 网页检索)

3. 硬件框架

【RT-Thread 作品秀】空气质量监测系统_第3张图片

硬件方案介绍:

  • 中间蓝色部分为主控模块,雅特力 AT32F403A 微控制器,运行 RT-Thread 物联网操作系统,负责驱动外部设备和系统逻辑控制;
  • 左侧红色部分为传感模块,分别是单总线接口的 DHT22 温湿度传感器,ADC 接口的 GP2Y1014 灰尘传感器,以及 I2C 接口的 SGP30 气体传感器(检测 TVOC 和 CO2);
  • 上方黄色部分为存储模块,为 AT32F403A-START 板载的 SPI Flash,负责在必要时存储传感数据;
  • 右上方浅绿色部分为交互模块,通过板载按键和 LED 灯实现简单的交互功能;
  • 右下方深绿色部分为通信模块,使用移远的 NB-IoT 模组 BC28 连接阿里云物联网平台,负责传感数据上报和逻辑数据通信。

4. 软件框架说明

整个系统主要分为设备端、云端、用户端三大块。设备端 MCU 运行 RT-Thread,主要负责采集传感器数据并将数据上报到云端;云端采用阿里云 IoT 平台接入设备,同时实现设备管理、数据转发功能,通过搭配 ECS、RDS 等云服务,实现数据存储和应用服务;用户端包括基于 IoT Studio 实现的 Web 页面和微信小程序,方面用户随时随地关注室内外的空气质量情况。

【RT-Thread 作品秀】空气质量监测系统_第4张图片

具体到设备端,由于搭载 RT-Thread 物联网操作系统,使用软件包 dhtxx、gy2y10、sgp30 实现传感器模块底层驱动,软件包 bc28_mqtt 实现 NB 网络连接阿里云 IoT 平台,软件包 littled 实现 LED 灯的异步控制。因此业务逻辑变得简洁明了,完全在 main.c 中实现。

5. 软件模块说明

在 RT-Thread + 软件包的基础上进行应用程序开发,将任务分为三组线程,并使用信号量和事件集进行同步,使用邮箱和内存池进行通信。

【RT-Thread 作品秀】空气质量监测系统_第5张图片

设备端应用层程序的三组线程分别是:

  • 左侧红色部分为传感数据采集线程,dhtxx、gy2y10、sgp30 均已对接 sensor 框架,因此调用统一的 rt_device_xxx 接口进行操作;
  • 中间蓝色部分为同步线程,负责协同不同速率的传感器,同时做一些本地数据处理,为数据上报做准备;
  • 右侧绿色部分为数据上报线程,负责将传感器数据上报到云端。

6. 演示效果

B 站视频:https://www.bilibili.com/video/BV1mK411p7jj

【RT-Thread 作品秀】空气质量监测系统_第6张图片

硬件平台展示

【RT-Thread 作品秀】空气质量监测系统_第7张图片

Web 平台数据展示

【RT-Thread 作品秀】空气质量监测系统_第8张图片

微信小程序数据展示

7. 代码地址

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,系列,人人都懂物联网,物联网)