一种基于 GP2Y1014AU0F 传感器的 Arduino 空气质量检测系统

准备工作:
材料:

- Arduino Nano
- 夏普 GP2Y1014AU0F 传感器
- 0.96英寸SPI OLED显示模块
- 跳线
- 220 µF 电容器
- 150 Ω 电阻器
GP2Y1014AU0F 传感器讲解




夏普 GP2Y1014AU0F 是一款六引脚、模拟输出型微型光学粉尘(颗粒物)传感器,主要用于检测空气中的悬浮粉尘颗粒,其检测原理基于光散射法。
传感器内部结构中,红外发射二极管(IR LED)与光电探测器沿进气通道呈对角布局。当含尘空气经进气孔进入传感器内部检测腔室时,粉尘颗粒会对红外 LED 发出的光线产生散射作用,部分散射光入射至光电探测器并被其接收。
散射光的强度与空气中粉尘颗粒的浓度直接相关:颗粒数量越多、浓度越高,散射光强度越大。传感器通过内部电路将光信号转换为电信号,最终由 VOUT 引脚输出与粉尘浓度成正比的模拟电压信号,实现对空气中粉尘浓度的实时检测与输出。
如图1所示
如图2所述,GP2Y1014AU0F传感器采用 6针连接器。下图和表格显示了GP2Y1014AU0F的引脚分配:
序号 | 别针名称 | 引脚描述 |
1 | V-LED | LED Vcc引脚。通过150Ω电阻连接至5V电源。 |
2 | LED接地 | LED接地引脚。连接到GND |
3 | 引领 | 用于切换 LED 的亮灭状态。可连接至 Arduino 的任意数字引脚。 |
4 | S-GND | 传感器接地引脚。连接到 Arduino 的 GND。 |
5 | V输出 | 传感器模拟输出引脚。连接至任意模拟引脚 |
6 | V CC | 正极电源引脚。连接到 Arduino 的 5V 电源。 |
GP2Y1014AU0F 传感器规格:
- 低功耗:最大 20mA
- 典型工作电压:4.5V 至 5.5V
- 最小可检测粉尘尺寸:0.5微米
- 粉尘密度检测范围:最高可达 580 微克/立方米
- 感应时间:小于 1 秒
- 尺寸:1.81 x 1.18 x 0.69 英寸(46.0 x 30.0 x 17.6 毫米)
OLED显示模块

本项目采用0.96 英寸单色 OLED 显示屏,驱动芯片为SSD1306,模块共 7 个引脚,支持多种串行通信方式,可灵活适配不同主控接口。该模块支持三种通信协议:3 线 SPI 模式、4 线 SPI 模式与 I²C 模式,可根据硬件接线与程序配置进行选择。
引脚定义与功能说明 如下
引脚名称 | 常用别名 | 功能描述 |
GND | GND、地 | 电源地引脚,为模块提供参考地电位。 |
VDD | VCC、5V | 电源供电引脚,兼容宽电压输入(典型 3.3V–5V)。 |
SCK | D0、SCL、CLK | 串行时钟引脚,I²C 与 SPI 通信共用,用于同步数据传输时序。 |
SDA | D1、MOSI | 串行数据引脚,I²C 与 SPI 通信共用,用于传输命令与显示数据。 |
RES | RST、RESET | 模块硬件复位引脚(低电平有效),在 SPI 通信与上电初始化时尤为关键。 |
DC | A0 | 数据 / 命令选择引脚,仅在 SPI 模式 下使用,用于区分传输内容为命令或数据。 |
CS | CS、Chip Select | 片选引脚,仅在 SPI 模式 下使用,多用于多模块总线复用,实现芯片寻址与使能。 |
OLED 核心电气与显示参数
- 驱动芯片:SSD1306
- 分辨率:128 × 64
- 显示颜色:单色(蓝色)
- 可视角度:>160°
- 工作电压:3.3V~6V
- 工作温度:-30℃ ~ +70℃
电路图

如图是夏普GP2Y1014AU0F传感器与Arduino接口的电路图
本系统硬件电路设计简洁,核心为 Arduino Nano 主控板 与 GP2Y1014AU0F 粉尘传感器、0.96 英寸 SSD1306 OLED 显示屏 的电气连接。
- 供电设计:GP2Y1014AU0F 粉尘传感器与 OLED 显示模块均由 Arduino Nano 的 +5V 电源引脚供电,GND 引脚共地,保证电位参考一致;
- 信号交互:传感器模拟输出与控制引脚接入 Arduino 模拟 / 数字接口,OLED 模块通过 SPI 总线与 Arduino 通信,实现数据显示。
1. OLED 显示模块与 Arduino Nano 连接表
序号 | OLED 模块引脚 | Arduino Nano 引脚 | 备注 |
1 | GND | GND(地) | 电源地,共地连接 |
2 | VCC | 5V | 模块供电(兼容 3.3V/5V) |
3 | D0 (SCK) | 10 | SPI 串行时钟引脚 |
4 | D1 (MOSI) | 9 | SPI 串行数据输入引脚 |
5 | RES (RST) | 13 | 模块硬件复位引脚 |
6 | DC (A0) | 11 | SPI 数据 / 命令选择引脚 |
7 | CS | 12 | SPI 片选引脚(低电平有效) |
2. GP2Y1014AU0F 粉尘传感器与 Arduino Nano 连接表
表格
序号 | 传感器引脚 | Arduino Nano 引脚 | 备注 |
1 | Vcc | 5V | 传感器主电源供电引脚 |
2 | V0 (VOUT) | A5 | 模拟电压输出引脚(粉尘浓度对应电压) |
3 | S-GND | GND(地) | 传感器信号地,与电源地共地 |
4 | LED | 7 | 传感器红外 LED 控制引脚(数字电平控制) |
5 | LED-GND | GND(地) | 红外 LED 回路地,与信号地共地 |
6 | V-LED | 5V(串 150Ω 电阻) | 红外 LED 供电引脚,串联 150Ω 限流电阻防过流 |
搭建

将所有元器件焊接在万用板(洞洞板)上后,整体硬件电路连接关系即可成型;若无焊接条件,也可使用面包板进行临时搭建与调试。本项目中,GP2Y1014AU0F 粉尘传感器与此前用于连接 SDS011 传感器的万用板共用,直接在同一块板上完成焊接与布线。焊接过程中需注意:各焊点、焊盘之间应保持足够间距,避免因焊锡粘连造成短路,确保电路可靠工作。
空气质量代码讲解

所需库
本项目使用 Adafruit_GFX 和 Adafruit_SSD1306 库。可通过 Arduino IDE 安装:
- 打开 Arduino IDE,依次点击 “项目” → “包含库” → “管理库”。
- 搜索 Adafruit GFX 并安装由 Adafruit 提供的库。
- 同理,搜索并安装 Adafruit SSD1306 库。
灰尘传感器无需额外库,通过 Arduino 模拟引脚直接读取电压即可。
OLED 显示屏设置
定义显示屏分辨率(本项目使用 128×64 SPI OLED,可根据实际屏幕调整):
定义 SPI 接口引脚:
创建 OLED 显示实例:
灰尘传感器与 LED
setup() 初始化
loop() 主循环
- 打开红外 LED,延迟 0.28 毫秒。
- 读取传感器模拟电压,延迟 40 微秒。
- 关闭 LED 并等待剩余周期时间 9680 微秒(保证每 10 毫秒闪烁一次)。
粉尘密度计算
OLED 显示粉尘密度
完整内容

硬件和代码都准备妥当后,就可以开始传感器的测试工作了。你需要先把 Arduino 通过数据线连接到笔记本电脑,在 Arduino IDE 里选好对应的开发板型号和串口端口,接着点击上传按钮。上传完成后,OLED 显示屏就会像如图这样,实时显示出当前环境的灰尘浓度数值。
完整代码如下 效果如图所示
0
0
0
qq空间
微博
复制链接
分享
0