空气质量"/>
如何通过颗粒物传感器SDS011监测空气质量
我们周围的空气是由气体和其他几种我们肉眼看不见的元素组成的。其中就存在很多悬浮在空气中的固体或液体物质的微观颗粒,它们非常小,尺寸都在微米的范围内,所以你不能看到它们,但这些微粒可以被人们吸入,这就可能会导致许多健康问题。在全球范围内,导致过早死亡的第六大风险因素就是暴露于高浓度的颗粒物中,引发心脏病、中风、肺癌、慢性肺部疾病和其他呼吸道感染。
空气中的颗粒物
颗粒物本身根据其大小被分为两类:
- 直径在2.5到10微米之间的被称为粗颗粒,用PM10表示;
- 直径小于或等于2.5微米的颗粒称为超细颗粒,用PM2.5表示。
如将这些颗粒的直径与我们的头发直径进行比较,头发的直径大约是50-70微米。
SDS011颗粒物传感器
了解以上的基础信息后,我们就可以尝试通过SDS011颗粒物传感器来监测空气中颗粒的浓度。SDS011本身配置有一个小风扇,用于模块进气口的空气循环,当风扇打开时,空气会从进气口吸入,吸入的空气经过传感器后排出,这样就实现空气采样和检测。因为配置风扇的原因,所以传感器在工作时会发出轻微的风扇噪音。
SDS011参数
- 测量种类:PM2.5、PM10
- 测量范围:
- PM2.5: 0.0-999.9微克/立方米
- PM10: 0.0-1999.9微克/立方米
- 额定电压:5V
- 额定电流:70mA±10mA
- 温度范围:
- 储存环境:-20~+60℃
- 工作环境:-10~+50℃
- 湿度范围:
- 储存环境:MAX 90%
- 工作环境:MAX 70%
- 工作压力:86KPa~110KPa
- 响应时间:1s
- 刷新频率:1Hz
- 最小粒径:0.3μm
- 相对误差:±15% and ±10μg/m3 maximum -25 degrees, 50%RH
- 产品尺寸:71x70x23mm
供电要求
- 电源电压:4.7~5V
- 电源:大于1W(电流大于200mA)
- 电源电压纹波小于20mV
SDS011传感器的工作原理:
传感器内部集成了激光器和检测二极管,由于模块完全封闭,激光器和检测二极管就不会受到环境光线的影响。工作时通过风扇从进气口吸进空气,空气流过激光器和二极管,然后从排出,此时检测二极管就可以通过利用散射原理判断激光器照射到二极管上的光量变化,来检测空气中存在的微粒浓度。这个信号经过传感器内部的放大处理后,最终进行输出。
Arduino读取颗粒物传感器SDS011的值
Arduino要实现简单快速读取SDS011的输出值,需要加载SDS011相应的库文件。
加载库文件可以通过Arduino IDE的Library Manager实现,搜索sds011后安装即可。
颗粒物传感器SDS011 Arduino示例代码
#include "SdsDustSensor.h"int rxPin = 0;int txPin = 1;SdsDustSensor sds(rxPin, txPin);void setup() {Serial.begin(9600);sds.begin();Serial.println(sds.queryFirmwareVersion().toString()); // prints firmware versionSerial.println(sds.setActiveReportingMode().toString()); // ensures sensor is in 'active' reporting modeSerial.println(sds.setContinuousWorkingPeriod().toString()); // ensures sensor has continuous working period - default but not recommended}void loop() {PmResult pm = sds.readPm();if (pm.isOk()) {Serial.print("PM2.5 = ");Serial.print(pm.pm25);Serial.print(", PM10 = ");Serial.println(pm.pm10);// if you want to just print the measured values, you can use toString() method as wellSerial.println(pm.toString());} else {// notice that loop delay is set to 0.5s and some reads are not availableSerial.print("Could not read values from sensor, reason: ");Serial.println(pm.statusToString());}delay(500);}
最终通过串口监视器可以得到输出:
通过得到的输出值,就可以简单判断当前环境的空气质量了。
需要注意的是,当我恩需要重新上传代码时,最好断开传感器与Arduino的连接,否则,很可能在Arduino IDE中得到一个错误提示。
更多推荐
如何通过颗粒物传感器SDS011监测空气质量
发布评论