一、硬件原理
夏普光学灰尘传感器(GP2Y1014AU0F)在检测非常细的颗粒,如香烟烟雾,是特别有效的,并且是常用的空气净化器系统。
该装置中,一个红外发光二极管和光电晶体管,对角布置成允许其检测到在空气中的灰尘反射光。该传感器的输出是一个模拟电压正比于所测得的粉尘浓度,敏感性为0.5V/0.1mg/m3。
二·、硬件接线
第一次根据商家以及其他资料提供的原理图接线,进行测试时,发现数据一直为0,在软件上改了好久,均失败。最后尝试去掉限流电阻与稳压电容,数据正常了,但是有个严重问题,工作一段时间,模块发热严重。
GP2Y1014AU0F | ESP32-S3-DevkitC-1 |
1 | Vcc(5V) |
2 | GND |
3 | 9 |
4 | GND |
5 | 10 |
6 | VCC(5V) |
三、主要程序
from machine import Pin, ADC
from time import sleep_us, sleep
dustPin = ADC(Pin(10))
dustPin.atten(ADC.ATTN_11DB) # 设置为 3.3V 范围
ledPower = Pin(9, Pin.OUT)
delayTime = 280
delayTime2 = 40
offTime = 9680
ledPower.value(0)
def PM25_GetData():
ledPower.value(1)
sleep_us(delayTime)
Voltage = dustPin.read_uv()/1000000
Voltage = round(Voltage, 2)
sleep_us(delayTime2)
print(Voltage)
ledPower.value(0)
sleep_us(offTime)
dustVal = (0.17 * Voltage - 0.1) * 1000
return dustVal
PS:浓度转换公式可参考PM2.5粉尘传感器详解(STM32)_pm2.5传感器-优快云博客
个人能力有限,若有错误,欢迎指正。