使用Arduino GIGA R1和DFRobot PM2.5传感器构建空气质量监测系统
空气污染是全球日益严峻的问题,细颗粒物(PM2.5)因其能够深入肺部并进入血液,成为最危险的污染物之一。无论您担心的是室内空气质量、野火烟雾还是城市污染,掌握实时数据都能让您采取有效行动。
在本文中,我们将通过将DFRobot PM2.5传感器(SEN0460)与Arduino GIGA R1 WiFi(目前市面上最强大的Arduino开发板之一)集成,构建一个专业级空气质量监测器。内容涵盖从接线到代码编写、校准、数据记录,甚至可选的物联网仪表盘。
为什么选择这种组合?
Arduino GIGA R1 WiFi 是一款基于 STM32H747XIXI 双核微控制器(480 MHz Cortex-M7 + 240 MHz Cortex-M4)打造的开发利器,配备 2MB Flash Flash 存储、1MB RAM 和额外 8MB SDRAM。它拥有 76 个 GPIO GPIO 引脚、3 个 I2CC 接口、4 个 UART 和 2 个 SPI SPI 接口,可轻松同时处理传感器、显示屏、SDSD 卡以及 Wi-Fi/蓝牙连接。
DFRobot PM2.5 传感器(SEN0460)采用激光散射技术,可连续测量0.3微米至10微米范围内的空气中颗粒物,并通过简单的Gravity I2C接口输出PM1.0、PM2.5和PM10的浓度数据。该传感器工作电压为3.3V至5V,功耗低至100mA,测量范围为0–500 µg/m³(最高可达1000 µg/m³),分辨率为1 µg/m³。
它们共同构成了一个实验室级空气质量监测站的基础,可在一小时内建成。
为您的项目定制制造PCB板
一定要去PCBWAY在线订购便宜的PCB!
您可享受低价优惠,获得10块高品质PCB板,并直接送货上门。首次下单还可享运费折扣。将您的Gerber文件上传至PCBWAY,即可获得高质量、快速交付的PCB制造服务。PCBWay现在可提供从设计到外壳生产的一站式完整解决方案。欢迎体验其在线Gerber文件查看功能。通过积分奖励,您还可以在礼品商店免费获取各类产品。此外,点击此处查看PCBWay为KiCad提供的实用插件博客。使用该插件,您只需在KiCad完成设计后,一键即可直接订购PCB板。
第一步 — 设置Arduino GIGA R1
在连接传感器之前,请确保您的GIGA R1已准备就绪:
•安装 Arduino IDE — 从 arduino.cc 下载并安装最新版本。
•添加 GIGA R11 板支持 — — 打开工具 → → 板件 → → 板件管理器,搜索“GIGA”,并安装 Arduino Mbed OS GIGAA 板软件包。
•选择板子 — — 进入工具 → → 板子 → Arduino Mbed OS GIGAA 板 → Arduino GIGA R1 WiFi。
•选择端口——通过 USB-C-C 连接板卡,并选择正确的 COM COM COM 端口(Windows)或 /dev/cu.*(macOS/Linux)。
重要提示:GIGA R1 采用 3.3 V 逻辑电平,切勿直接将 5 V 电压施加到任何 GPIO GPIO 引脚上。幸运的是,DFRobot PM2.5 传感器的 I2C 逻辑电平兼容——即使在 5 V 供电时,它仍能接受 SDA/SCL 上的 3.3 V 电压。
第二步 — — 将 DFRobot PM2.5 传感器连接到 GIGA R1
得益于Gravity接口和GIGA的三个I2C端口,布线简单,即插即用。
应该使用哪个I2C接口?
GIGA R1 提供三个 I2CC 接口:
•I2C1(总线)——默认 I2C,引脚 20(SDA)和 21(SCL)。
•I2C2(Wire1)——引脚26(SDA)和27(SCL)。
•I2C3(Wire2)——引脚82(SDA)和83(SCL)。
为了简化,本教程将使用 I2C1(引脚 20 和 21)。
接线图
连接后,请再次检查传感器的I2C地址。SEN0460使用默认的I2C地址0x19,您可以通过I2C扫描仪代码来验证该地址。
步骤3 — — 安装DFRobot库
•DFRobotRobot 团队提供了一个官方库,可处理所有底层通信,并提供干净、即用型的传感器数据。
•在 Arduino IDE 中,前往 Sketch → → 包含库 → → → 管理库。
•搜索“DFRobot AirQualitySensor”。
•通过DFRobot安装库。
•或者,从官方 GitHub 仓库下载。
•安装后,您可以在“文件”→“示例”→“DFRobot_AirQualitySensor”下浏览示例。
第4步 — — 编写代码
现在我们将编写一个程序,每秒读取一次PM1.0、PM2.5和PM10的浓度,并将结果输出到串口监视器。
完整草图
代码讲解
•库包含 — DFRobot_AirQualitySensor.h 提供了所有传感器功能。
•I2CC 地址定义 — 传感器使用地址 0x19(默认)。
•begin() — 初始化I2C并验证通信。通过while()循环确保在找到传感器之前不断重试。
•gainParticleConcentration_ugm3() — 获取浓度值,单位为 µg/m³。使用 PARTICLE_PM2_5_STANDARD、PARTICLE_PM1_0_STANDARD 或 PARTICLE_PM10_STANDARD_STANDARD_STANDARD 指定所需的颗粒物粒径。
•大气值 vs.. 标准值 — 该传感器可输出“标准”(实验室校准)和“大气”(环境调整)两种数值。建议一般使用标准值。
•空气质量评估——一个简单的if/else语句根据常见的健康标准对PM2.5读数进行分类
上传并测试
•通过USB-C连接GIGA R1。
•选择正确的端口和板(Arduino GIGA R1 WiFi)。
•点击上传
•在115200波特率下打开串行监视器(工具 → 串行监视器)。
•你应该能看到实时的PM2.5、PM1.0和PM10数据。
结论
只需几个连接和一些简单的代码,你就能打造一个专业级空气质量监测器,精准测量影响健康的微小颗粒物。Arduino GIGA R111 拥有强大的性能,足以将这款传感器升级为功能齐全的环境监测站——配备本地触摸屏、云端数据记录,甚至可实现预测性提醒。让你更安心地了解身边空气中的真实状况。
本文编译自hackster.io





