【雕爷学编程】Arduino动手做(42)---PM2.5粉尘传感器
37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和模块,依照实践(动手试试)出真知的理念,以学习和交流为目的,这里准备逐一做做实验,不管能否成功,都会记录下来---小小的进步或是搞不掂的问题,希望能够抛砖引玉。
【Arduino】168种传感器模块系列实验(资料+代码+图形+仿真)
实验四十二:DSM501A韩国进口PM2.5灰尘粉尘传感器模块
韩国三瀛(SYHITECH)原装进口,专利产品粉尘传感器DSM501可以感知烟草产生的烟气和花粉,房屋粉尘等,加热自动进气装置,可调电阻设置检测灰尘的大小。采用与粒子计算器相同原理为基础,检测出单位体积粒子的绝对个数。
板上主要是一颗KEC(韩国电子)产的KIA324F,类似于LM324的四路运算放大器芯片
关于PM2.5
也称为细颗粒物,又叫细粒、细颗粒。细颗粒物指环境空气中空气动力学当量直径小于等于 2.5 微米的颗粒物。它能较长时间悬浮于空气中,其在空气中含量浓度越高,就代表空气污染越严重。虽然PM2.5只是地球大气成分中含量很少的组分,但它对空气质量和能见度等有重要的影响。与较粗的大气颗粒物相比,PM2.5粒径小,面积大,活性强,易附带有毒、有害物质(例如,重金属、微生物等),且在大气中的停留时间长、输送距离远,因而对人体健康和大气环境质量的影响更大。2013年2月,全国科学技术名词审定委员会将PM2.5的中文名称命名为细颗粒物。细颗粒物的化学成分主要包括有机碳(OC)、元素碳(EC)、硝酸盐、硫酸盐、铵盐、钠盐(Na⁺)等。
PM2.5的危害
PM2.5“超细灰尘”主要来自机动车尾气尘、燃油尘、硫酸盐、餐饮油烟尘、建筑水泥尘、煤烟尘和硝酸盐等,它是雾霾有害细颗粒的重要组成部分。PM2.5虽然不是有毒气体,但PM2.5因直径细小,携带大量的有毒、有害物质,进入人体会影响健康。PM直径越细小对人体危害越大,PM2.5能飘到较远的地方,因此影响范围较大。此外,PM2.5对人体健康的危害要更大,因为直径越小,进入呼吸道的部位越深。10μm直径的颗粒物通常沉积在上呼吸道,2μm以下的可深入到细支气管和肺泡。细颗粒物进入人体到肺泡后,直接影响肺的通气功能,使机体容易处在缺氧状态。而且这种细颗粒物一旦进入肺泡,吸附在肺泡上很难掉落,这种吸附是不可逆的。
目前测量PM2.5的传感器光学方法有红外和激光两种方法,而激光又分为浊度法和粒子计数(激光切割)法。
1. 红外法和浊度法:
红外由于光线强度不够,只能用浊度法测量。所谓浊度法,就是一边是发射光线,另一边接收,空气越浑浊光线损失掉的能量就越大,由此来判定目前的空气浊度。实际上这种方法是不能够准确测量PM2.5的,甚至光线的发射、接收部分一旦被静电吸附的粉尘覆盖,就会直接导致测量不精准。这种方法做出来的传感器只能定性测量(可以测出相对多少),不能定量测量(因为数值会飘)。更何况这种方法也区分不出颗粒物的粒径来,所以凡是用这种传感器的性能都不会好。目前这一类的传感器有夏普(一代二代都一样)、神荣的(小米二代净化器用的就是这款)、三赢等。
2.激光法和粒子计数法:
相关的论文很多,就是激光散射的方法,并不是直接测量浊度,这一类的传感器共同的特点就是离不开风扇(或者用泵吸),因为这种方法空气如果不流动是测量不到空气中的悬浮颗粒物的,而且通过数学模型可以大致推算出经过传感器气体的例子直接大小,空气流量等,经过复杂的数学算法,最终得到比较真实的PM2.5数值,这一类传感器是激光散射,对静电吸附的灰尘免疫,当然如果用灰尘吧传感器堵死了,自然也不可能测到。缺点是激光的寿命较短,如果连续运行的话基本上也就一年多的寿命而已,这还是厂家优化算法之后能够达到的寿命,但在绝大多数场合已经够用了,而且如果不连续运行,激光的寿命还能够更长。
测量模块主要特性
●5VDC供电
●外形尺寸:59*49*20
●产地:韩国SYHITECH
●体积小,重量轻,便于安装.
●5V的输入电路,便于信号处理.
●内藏气流发生器,可以自行吸引外部大气.
●保养简单,可以长期保持传感器的特性.
●光学原理,能够探测1微米以上的粉尘粒子
●探测粒子范围:最大到15000pcs/283ml(1um以上粒子)
●灰尘传感器DSM501可以感知烟草产生的烟气和花粉,房屋粉尘等
●两种输出模式,解决不同灵敏度使用要求,洁净环境Vout输出高电平信号(4V)
DSM501A典型应用: 小家电(控制板),空气净化器,空气清新机,暖通空调,新风系统,环境监控,换气扇等产品等
模块构成部分
1、发光二极管(LED)灯
2、探测器
3、信号放大器电路
4、输出驱动电路1
5、输出驱动电路2
6、暖气(加热空气回流)
模块端口
1# Control 1 控制脚---通过在此脚与GND之间加一个电阻可调整Vout 1的最小粒子检出水平,调整电阻值可调整Vout 1的灵敏度;
2# Vout 2 输出脚2---此脚位为普通输出脚位,灵敏度已预设定,最小粒子检出能力为1 μm;
3# VCC 电源 +5V;
4# Vout 1 输出脚 ---此脚位为可调输出脚位,灵敏度可通过控制脚来调整,默认为Vout 2的2.5倍即最小粒子检出能力为2.5μm;
5# GND 电源 接地。
实验接线
DSM501A Arduino
#3 vcc 5v
#4 vout1 pin8
#5 GND GND
实验仅以#4 Vout1 输出为例,输出的数值为PWM脉宽和30秒一周期检测到的粒子数量。
- /*
- 【Arduino】168种传感器模块系列实验(42)
- 实验四十二:DSM501A韩国三瀛PM2.5灰尘粉尘传感器模块
- */
- int pin = 8;
- unsigned long duration;
- unsigned long starttime;
- unsigned long sampletime_ms = 30000;
- unsigned long lowpulseoccupancy = 0;
- float ratio = 0;
- float concentration = 0;
- void setup() {
- Serial.begin(9600);
- pinMode(8,INPUT);
- starttime = millis();
- }
- void loop() {
- duration = pulseIn(pin, LOW);
- lowpulseoccupancy = lowpulseoccupancy+duration;
- if ((millis()-starttime) > sampletime_ms)
- {
- ratio = lowpulseoccupancy/(sampletime_ms*10.0);
- concentration = 1.1*pow(ratio,3)-3.8*pow(ratio,2)+520*ratio+0.62;
- //Serial.print(lowpulseoccupancy);
- // Serial.print(",");
- Serial.print(ratio);
- Serial.print(",");
- Serial.println(concentration);
- lowpulseoccupancy = 0;
- starttime = millis();
- }
- }
实验说明
1、加热器:模块内置一个加热器,热引起上升气流使外部空气流进模块内部。上电后会预热60秒左右。
2、检测的粒子类型:此模块被设计成可以检测1μm 以上粒子,如香烟、房屋灰尘、霉菌、花粉、孢子等。
3、安装:
①必须垂直安装;DSM501A要垂直放置
②远离人工气流如风扇,如当用于空气清新机时,风扇的前方和后方都不能安装,可任选外壳一侧安装,但外壳上要保留通风口以保证外部气流可以流进来;
③注意安装时要避免粘性粒子如油类进入模块,当这种粒子粘在光学部件上将会产生故障。
④当模块受潮湿将会影响它的正常功能,因此应避免受潮。
4、透镜:透镜需要视环境状况隔一段时间进行清洁,约6 个月一次。清洁时用棉签一头醮清水轻擦,然后用另一头擦干。不可以用酒精等有机溶剂擦拭透镜。
DSM501A模块稳定后,使用电烙铁加热松香而产生的烟雾,进行细微粒检测
检测到烟雾后,串口数值有大幅度的变动,减少了(红点处)
据网上资料
说DSM501这个是测的PM2.5粉尘的个数,也叫尘埃粒子计数器 ,测出来的数据不是浓度值。如果要测浓度值的话,要买粉尘浓度检测仪。尘埃粒子计数器 测的单位是 个/升,粉尘浓度是 mg/立方米,完全不同的两个参数,且不可以转换。
下图为图形模块的编程
DSM501A对烟雾还是挺敏感的
空气质量较好情况下接收的实验数据
【雕爷学编程】Arduino动手做(42)---PM2.5粉尘传感器的更多相关文章
- 「雕爷学编程」Arduino动手做(9)——火焰传感器模块
37款传感器和模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器与模块,依照实践出真知(动手试试)的理念,以学习和交流为目的,这里准备 ...
- 「雕爷学编程」Arduino动手做(10)——敲击传感器模块
37款传感器和模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器与模块,依照实践出真知(动手试试)的理念,以学习和交流为目的,这里准备 ...
- 「雕爷学编程」Arduino动手做(8)——湿度传感器模块
37款传感器和模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器与模块,依照实践出真知(动手试试)的理念,以学习和交流为目的,这里准备 ...
- 【雕爷学编程】Arduino动手做(6)---声音传感器模块
37款传感器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器,依照实践(动手试试)出真知的理念,以学习和交流为目的,这里准备逐一做做实验 ...
- 【雕爷学编程】Arduino动手做(46)---电阻应变片传感器
37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器和模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里 ...
- 「雕爷学编程」Arduino动手做(32)——雨滴传感器模块
37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器和模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里 ...
- 【雕爷学编程】Arduino动手做(53)---土壤湿度传感器
37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器和模块,依照实践(动手试试)出真知的理念,以学习和交流为目的,这里准备 ...
- 「雕爷学编程」Arduino动手做(15)——手指侦测心跳模块
37款传感器和模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器与模块,依照实践出真知(动手试试)的理念,以学习和交流为目的,这里准备 ...
- 【雕爷学编程】Arduino动手做(16)---数字触摸传感器
37款传感器和模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器与模块,依照实践出真知(动手试试)的理念,以学习和交流为目的,这里准备 ...
- 「雕爷学编程」Arduino动手做(14)——倾斜角度模块
37款传感器和模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器与模块,依照实践出真知(动手试试)的理念,以学习和交流为目的,这里准备 ...
随机推荐
- Python - 生成随机验证码的3种实现方式
生成6位随机验证码的3种实现方式如下: 1. 简单粗暴型:所有数字和字母都放入字符串: 2. 利用ascii编码的规律,遍历获取字符串和数字的字符串格式: 3. 引用string库. 方法1代码: i ...
- 【mybatis annotation】数据层框架应用--Mybatis(二) 基于注解实现数据的CRUD
使用MyBatis框架进行持久层开发 MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架. MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索. MyBa ...
- linux下批量删除文件
1. 在linux批量删除多级目录下同一格式的文件,可采用find + exec命令组合: 如在删除old目录下的,所有子目录中,后缀为.l的文件方法为: find old -type f -name ...
- PHP open_basedir配置未包含upload_tmp_dir 导致服务器不能上传文件
在做一个上传图片的功能时候发现后台接收到的$_FILES['file']['error'] = 6,这个错误意思是找不到临时文件,或者是临时文件夹无权限,需要更改php.ini文件的 upload_t ...
- Nmap详细用法
探测主机存活 (1)-sP :进行ping扫描 (2) -sn: ping探测扫描主机, 不进行端口扫描 (3)-sA 发送ACK探测存活 端口扫描 (1) -sS :半开放扫描 (2) sT ...
- Vue集成tinymce富文本编辑器并实现本地化指南(2019.11.21最新)
tinymce是一款综合口碑特别好.功能异常强大的富文本编辑器,在某些网站,甚至享有"宇宙最强富文本编辑器"的称号.那么,在Vue项目中如何集成呢?这并不困难,只需要参照官方教程 ...
- Codeforces Round #460 (Div. 2)-A Supermaket(贪心)
A. Supermarket time limit per test 2 seconds memory limit per test 256 megabytes input standard inpu ...
- unittest(discover 批量执行用例)
import unittest dir = "D:\\work_doc\\pycharm2\\python_Basics" #自动化用例所存放的路径 suit = unittest ...
- tomcat8调优
a. tomcat的运行原理: 1. Tomcat是运行在JVM中的一个进程.它定义为[中间件],顾名思义,是一个在Java项目与JVM之间的中间容器. 2. Web项目的本质,是一大堆的资源文件和方 ...
- libevent(一)定时器Demo
开始研究libevent,使用的版本是2.0.22. 实现一个定时器:每2秒执行一次printf. #include <stdio.h> #include <stdlib.h> ...