随时关注空气质量:工程师自制Arduino空气检测器
空气中的颗粒污染物,除了工厂、汽车的排放,日常生活也会产生不少。想知道大范围的空气质量可以关注环保部、美使馆发布的PM2.5指数,想知道身边小范围的空气质量就只能望天?还是用Arduino DIY一个家庭空气质量采集器,让数据说话吧!
本文编译自 Air Quality Monitoring,原作者为Chris Nafis。DIYer Yeelink姜工对原文进行了翻译,并基于原文中的原理,制作出了自己的空气质量检测器。
因为过敏和哮喘,我特别关心室内和室外的空气质量。我使用Quadrafire木炭火炉——一个应该是比较干净的柴炉做饭,打算看看它对我家中的室内空气质量(灰尘)和室外空气质量(烟)的影响。纽约州在多个地方监控空气质量;认证的过敏和哮喘顾问在纽约州的Albany发布空气污染指数,美国肺协会写过一篇非常棒的论文叫做《美国的空气》(State of the AIR)谈论颗粒污染。我有几个气象站在收集数据(放在weather underground上面)。
1.1 材料
6针的 mini TE接口 $2
夏普光学粉尘传感器 GP2Y1010AUoF $12
Arduino Uno Ethernet $65
9VDC电压 $7
Davis 屏蔽罩(红外屏蔽罩) $67.5
40毫米风扇 $13
1.2 检测
290刀的 Dolys "DC1100 Pro Air Quality"是一个真正的激光颗粒检测器,带两种不同的测量范围。小的通道(0.5》微米)应该可以看到细菌和霉菌。
高一点的通道(2.5》微米)可以看到灰尘和花粉。LCD显示器持续的显示小通道和大通道的长条图和读数,本设备能保存长达30天的空气质量数据。
我购买了一个带有PC接口的产品,并把它连接到了Arduino ethernet板上,这样我就能自动的发送数据到Pachube了。如果空气质量有问题,我的手机就能收到通过Twitter发布的报警信息。
这个产品非常的灵敏。它可以非常容易的检测到走过地毯时掀起的灰尘,或者是炒菜时候的烟。下面的图中你能看到非常有趣的事情。
首先在晚上的时候大家都休息了,读数会非常的低。你也能看到在中午的时候我女儿炒菜,数据会特别高,并且要花很长的时间才会逐渐降低。
1.3 实现流程
Arduino Ethernet板连接夏普传感器的图纸可以参阅 夏普GP2Y1010AU0F($6.9185)的datasheet
1.4 采样流程
点亮连接到pin2 的LED,过0.28毫秒,对连接到A0的模块Vo进行采样
过0.04毫秒,关闭LED,并且等待9.680毫秒。
这个10毫秒的采样周期会不停的进行重复,代码可以参考 arduino Source Code
Sharp pin 1 (V-LED) =》 5V (通过一个150欧的电阻连接)
Sharp pin 2 (LED-GND) =》 Arduino GND pin
Sharp pin 3 (LED) =》 Arduino pin 2
Sharp pin 4 (S-GND) =》 Arduino GND pin
Sharp pin 5 (Vo) =》 Arduino A0 pin
Sharp pin 6 (Vcc) =》 5V
我使用了一个小型的40毫米风扇保证空气能够被送到夏普传感器中,可能并没有必要,因为我将一个传感器安装到了防护罩内,所以希望确认能看到有粉尘飞入。
1.5 测试和校准
使用烤盘进行测试。
如果您阅读 夏普GP2Y1010AU0F的datasheet ,就会发现图中提供的颗粒浓度(毫克/平方米)与电压相对值的比较图。但是这个图片仅仅从0.5V才有对应数据,而我的大部分试验中,电压值都是相对比较低的。所以我手工输入该图中没有涵盖的数据,并得出了一个线性方程组来近似模拟出大致的(毫克/平米) 对电压输出的关系图。
我非常想了解这个便宜的夏普传感器的灵敏度,并建立起输出电压与颗粒数量的对应关系,下面我搞了一个实验(底下的图片中就是我让锅的烟吹过传感器的效果)。烟雾迅速使得传感器饱和,就做了一个稍长时间的实验。在我女儿做完午餐后,我决定做一个"pan cake" (松饼) 实验。你有没有注意到当在一个老式的铸铁锅用黄油做松饼的时候,满屋子都是烟?我同时将夏普传感器与专业的Dylos DC1100的读数同步上传到Pachube上,这样我就可以进行对两个传感器的对比和校准了。
从上面看出两个图有惊人的相似之处。使用一个简单的补偿和倍增因数将两组数据叠加到一起看看效果:
(V-0.0356)*120000($6.1277)
有趣的是,Dylos公司有个列表来评估您的空气质量与住宅环境的关系。
由于我们做的"烤松饼"实验事实上超过了常见标准达50倍。所以夏普传感器对非常小的颗粒读数的准确性和灵敏度可能还需要一些验证。
空气质量图:小颗粒读数(大于0.5微米)
3000 + = 很差很差
1050-3000 = 差
300-1050 = 还行
150-300($941.0000) =
- 基于Arduino的会打招呼的超萌机器人(11-23)
- 工业环境中的树莓派(Raspberry Pi)和Arduino(09-12)
- 多图详细教你怎样做一部Arduino小车(06-24)
- Wi-Fi遥控小车DIY教程:看高手如何改进(10-04)
- Arduino串口高级用法,你都掌握了吗?(06-16)
- 便捷好用的开发板不只有Arduino(03-27)