Dust Sensor
| ||||||||||||||||||||
| ||||||||||||||||||||
说明
产品特性
参数名称 | 参数 |
测量对象 | 直径大于0.8μm灰尘颗粒 |
有效量程 | 500μg/m3 |
输出类型 | 电压模拟量 |
工作电压 | 2.5V~5.5V |
产品尺寸 | 63.2mm×41.3mm |
固定孔尺寸 | 2.0mm |
通气孔尺寸 | 9.0mm |
原理:本模块是以夏普GP2Y1014AU0F为核心的灰尘传感器。传感器内部的红外二极管,可以输出一个跟灰尘浓度成线性关系的电压值。通过该电压值即可计算出空气中的灰尘和烟尘含量。
传感器输出特性
传感器输出电压与灰尘浓度关系在0到0.5mg/m3范围内成线性关系,如下图所示:
图 1: 传感器输出特性曲线 |
传感器控制原理
通过设置模块ILED引脚为高电平,从而打开传感器内部红外二极管。
等待0.28ms,外部控制器采样模块AOUT引脚的电压值。这是因为传感器内部红外二极管在开启之后0.28ms,输出波形才达到稳定。如下图所示:
图 2: ILED与红外二极管输出波形关系 |
采样持续0.04ms之后,再设置ILED引脚为低电平,从而关闭内部红外二极管。
根据电压与浓度关系即可计算出当前空气中的灰尘浓度,具体实现细节请参考Demo程序。
注:输出的电压经过了分压处理(查看原理图),要将测得的电源放大11倍才是实际传感器输出的电压。
主要用途
检测空气中灰尘浓度,用于空气净化器、空气质量监测仪、PM2.5检测仪等。
接口说明
引脚 | 功能 |
VCC | 电源正(2.5V-5.5V) |
GND | 电源地 |
AOUT | 电压模拟量输出 |
ILED | 传感器内部LED驱动 |
Pico使用教程
提供Python、C例程
Pico 快速上手
硬件连接
您可以对照以下表格连线。
Dust | Pico | 功能 |
VCC | 3.3V | 电源输入 |
GND | GND | 电源地 |
AOUT | GP26 | 模拟量输出 |
ILED | GP22 | 传感器内部LED驱动 |
火焰传感器、霍尔传感器、红外接近传感器、液位传感器、土壤传感器、MQ5气体传感器、声音传感器、紫外线传感器这些模块的引出脚一致,这里以MQ5气体传感器模块为例(根据表格进行连接,图仅为参考):
基础介绍
程序下载
打开树莓派终端,执行以下命令:
sudo apt-get install p7zip-full cd ~ sudo wget https://www.waveshare.net/w/upload/2/2a/Dust-Sensor-code.7z 7z x Dust-Sensor-code.7z -o./Dust-Sensor-code cd ~/Dust-Sensor-code cd Pico/c/build/
例程使用
C部分
- 以下教程为在树莓派上操作,但由于cmake的多平台、可移植的特点,在PC上也是能成功编译,但操作略有不同,需用户自行判断。
进行编译,请确保在c目录:
cd ~/Dust-Sensor-code/Pico/c/
在文件夹中创建并进入build目录,并添加SDK: 其中 ../../pico-sdk 是你的SDK的目录。 我们示例程序中是有build的,直接进入即可
cd build export PICO_SDK_PATH=../../pico-sdk (注意:务必写对你自己的SDK所在路径)
执行cmake自动生成Makefile文件
cmake ..
执行make生成可执行文件,第一次编译时间比较久
make -j9
编译完成,会生成uf2文件。 按住Pico板上的按键,将pico通过Micro USB线接到树莓派的USB接口,然后松开按键。接入之后,树莓派会自动识别到一个可移动盘(RPI-RP2),将build文件夹下的main.uf2 文件复制到识别的可移动盘(RPI-RP2)中即可。
cp main.uf2 /media/pi/RPI-RP2/
Python部分
windows环境下的使用
- 1.按住Pico板上的BOOTSET按键,将pico通过Micro USB线接到电脑的USB接口,待电脑识别出一个可移动硬盘(RPI-RP2)后,松开按键。
- 2.将python目录中rp2-pico-20210418-v1.15.uf2 文件复制到识别的可移动盘(RPI-RP2)中
- 3.打开Thonny IDE(注意:要使用最新版本的Thonny,否则是没有Pico的支持包的,当前Windows下的最新版本为v3.3.3)
- 4.点击工具->设置->解释器,如图所示选择Pico及对应的端口
- 5.文件->打开->Dust Sensor.py,点击运行即可,如下图所示:
树莓派环境下的使用
- 1.刷固件的过程与Windows上一样,你可以选择在PC或者树莓派上将rp2-pico-20210418-v1.15.uf2 文件拷入pico中。
- 2.在树莓派山打开Thonny IDE (点击树莓logo -> Programming -> Thonny Python IDE ),你可以在Help->About Thonny查看版本信息
以确保你的版本是有Pico支持包的,同样你可以点击Tools -> Options... -> Interpreter选择MicroPython(Raspberry Pi Pico 和ttyACM0端口
如图所示:
如果你当前的Thonny版本没有pico支持包,输入以下指令来更新Thonny IDE
sudo apt upgrade thonny
3.点击File->Open...->python/Dust Sensor.py,运行脚本即可
实验现象
串口打印灰尘浓度数据:
空气污染指数分级标准如下表所示:
PM2.5 浓度均值(μg/m3) |
空气质量 AQI |
空气质量级别 | 空气质量指数类别 |
0-35 | 0-50 | 一级 | 优 |
35-75 | 51-100 | 二级 | 良 |
75-115 | 101-150 | 三级 | 轻度污染 |
115-150 | 151-200 | 四级 | 中度污染 |
150-250 | 201-300 | 五级 | 重度污染 |
250-500 | ≥300 | 六级 | 严重污染 |
STM32使用教程
下面章节以三款不同类型的开发板中的一款为例,描述具体操作步骤及实验现象。
硬件连接
连接开发板使用
下面章节以四款不同类型的开发板为例,描述具体操作步骤及实验现象。
Open103R(主控芯片STM32F103R)
1、编译下载Demo程序。 2、通过串口模块,把开发板USART2接口连接至电脑,串口调试助手设置如下:
波特率 | 115200 |
数据位 | 8 |
停止位 | 1 |
校验位 | None |
流控制 | None |
3、传感器模块连接如下:
模块 | 开发板 |
VCC | 3.3V或5V |
GND | GND |
AOUT | GPIOA.6 |
ILED | GPIOA.7 |
Open407Z-C(主控芯片STM32F407Z)
1、编译下载Demo程序。 2、通过串口模块,把开发板USART2接口连接至电脑,串口调试助手设置如下:
波特率 | 115200 |
数据位 | 8 |
停止位 | 1 |
校验位 | None |
流控制 | None |
3、传感器模块连接如下:
模块 | 开发板 |
VCC | 3.3V或5V |
GND | GND |
AOUT | GPIOA.6 |
ILED | GPIOA.7 |
NUCLEO-F103RB(主控芯片STM32F103R)
本开发板Demo程序分为Mbed及ST Library两个版本。操作步骤及实验现象相同。
1、编译下载Demo程序。
2、将开发板通过USB接口连接至电脑,串口调试助手设置如下:
波特率 | 115200 |
数据位 | 8 |
停止位 | 1 |
校验位 | None |
流控制 | None |
3、传感器模块连接如下:
模块 | 开发板 |
VCC | 3.3V或5V |
GND | GND |
AOUT | A6 |
ILED | A4 |
提供的连接方式是对应的STM32F103RBT6的引脚为例,如果有需要使用其他STM32,请按实际引脚连接!
火焰传感器、霍尔传感器、红外接近传感器、液位传感器、土壤传感器、MQ5气体传感器、声音传感器、紫外线传感器这些模块的引出脚一致,这里以MQ5气体传感器模块跟STM32F103RBT6为例(根据表格进行连接,图仅为参考):
软件说明
例程是基于HAL库进行开发的。
请在资料里面下载程序,找到STM32程序文件目录,打开Dust-Sensor-code\STM32\STM32F103RB\MDK-ARM
目录下的Dust Sensor.uvprojx,即可看到程序。
实验现象
串口打印灰尘浓度数据:
空气污染指数分级标准如下表所示:
PM2.5 浓度均值(μg/m3) |
空气质量 AQI |
空气质量级别 | 空气质量指数类别 |
0-35 | 0-50 | 一级 | 优 |
35-75 | 51-100 | 二级 | 良 |
75-115 | 101-150 | 三级 | 轻度污染 |
115-150 | 151-200 | 四级 | 中度污染 |
150-250 | 201-300 | 五级 | 重度污染 |
250-500 | ≥300 | 六级 | 严重污染 |
Arduino使用教程
本例程已经在Arduino uno上测试通过,直接按下表连接Arduino uno即可
硬件连接
您可以对照以下表格连线。
Dust | Arduino | 功能 |
VCC | 5V | 电源输入 |
GND | GND | 电源地 |
AOUT | A0 | 模拟量输出 |
ILED | D7 | 传感器内部LED驱动 |
火焰传感器、霍尔传感器、红外接近传感器、液位传感器、土壤传感器、MQ5气体传感器、声音传感器、紫外线传感器这些模块的引出脚一致(根据表格进行连接,图仅为参考):
安装编译软件(Windows教程)
运行程序
在我们提供的资料里面下载程序,并解压,再进入Dust-Sensor-code/Arduino/DustSensor目录下
双击打开DustSensor.ino文件。
选择你的开发板,跟对应的端口。
进行编译下载,如下图:
实验现象
串口打印灰尘浓度数据:
空气污染指数分级标准如下表所示:
PM2.5 浓度均值(μg/m3) |
空气质量 AQI |
空气质量级别 | 空气质量指数类别 |
0-35 | 0-50 | 一级 | 优 |
35-75 | 51-100 | 二级 | 良 |
75-115 | 101-150 | 三级 | 轻度污染 |
115-150 | 151-200 | 四级 | 中度污染 |
150-250 | 201-300 | 五级 | 重度污染 |
250-500 | ≥300 | 六级 | 严重污染 |
资料
文档
视频
程序
软件
数据手册
- GP2Y1010AU0F ---(旧版灰尘传感器)
- GP2Y1014AU0F ---(2016年8月份后购买的都是新版本的传感器,兼容旧版的灰尘传感器)
相关链接