在这个项目中,我们将使用MQ-135传感器和arduino来制作一个空气污染测量仪。空气中的污染程度是由一系列的12个LED显示的。如果led发光的数量越多,空气中的污染含量就越高,反之亦然。
概述
这个项目可以证明在空气质量发挥重要作用的地方非常有用,比如医院。或者,这也可以是你自己家的另一个爱好项目。
虽然我们不能期望这个项目有很大程度的准确性,但它绝对可以给出一个合理的关于你周围环境的污染水平的好主意。
空气中的污染可以是二氧化碳、一氧化碳、丁烷、甲烷和一些无味的气体。该传感器不能区分气体,但它可以立即从空气中提取所有的气体样本。
如果你住在大城市,而你的公寓位于繁忙的道路附近,这个项目可能会派上用场,让你对空气环境有一个粗略的了解。
大多数人忽视了他们住所的空气质量指标,据估计,印度每年造成159万人死亡,包括室内和室外污染。
大多数人都不知道空气净化器,空气净化器在市场和电子商务网站上随处可见,价格并不比智能手机高。
好了,现在先不提警告,让我们深入研究电路。
设计:
如果led是矩形的,并且采用以上的布局设计,空气污染计会更有趣。然而,你可以发挥你的想象力,让这个项目对你来说更有趣。
上面的原理图说明了如何将传感器连接到arduino上。该传感器的加热线圈采用外部电源供电。传感器的侧面可以互换。
arduino的引脚A0感知传感器中由于空气中污染含量的变化而产生的电压变化。
传感器作为可变电阻(响应污染)和10K是固定电阻,这作为一个分压器。arduino有10位ADC,可以帮助LED根据空气污染水平离散发光,这是一种模拟功能。
当模拟电压水平超过程序中预先设定的阈值水平时,就会打开led灯。
连续的led被预先确定为更高的阈值水平。
它从LED测试开始,每个LED按顺序打开,有一定的延迟,用户可以判断LED连接错误,例如未连接的LED和未按顺序排序的LED。程序停止5分钟,所有的led灯同时发光。
这将给传感器足够的时间预热;我们可以看到arduino在串行监视器中执行的一些动作。当传感器达到最佳温度时,arduino将读数发送到串行监视器。根据这些读数,led灯会开关。串行显示器上显示的值越高,打开的led数量就越多。
串行监视器在这个项目中不是强制性的,但对于测试目的来说是一个方便的工具。
原型形象:
如何测试:
•打开arduino和外部电源。开始LED测试,只运行一次。
•程序等待5分钟传感器加热。
•当读数显示在串行显示器上时,带一个打火机,在不燃烧的情况下泄漏气体。
•很快,读数达到峰值,更多的led开始发光。
•一旦停止传感器上的气体流动,led灯逐渐关闭。现在你的LED空气污染测量仪准备好为你的房间服务了。
程序代码:
//-------------- 项目由R.Girish ---------------//
输入int = A0;
int = 2;
int b = 3;
int c = 4;
int d = 5;
int e = 6;
int f = 7;
int g = 8;
int h = 9;
int i = 10;
int j = 11;
int k = 12;
int l = 13;
int T = 750;
无符号长X = 1000L;
unsigned long Y = X * 60;
无符号长Z = Y * 5;
无效的设置()
{
Serial.begin (9600);
系列。println(“Sensor is getting ready, please wait for 5 min.”);
pinMode(输出);
pinMode (b、输出);
pinMode (c、输出);
pinMode (d、输出);
pinMode (e,输出);
pinMode (f,输出);
pinMode (g,输出);
pinMode (h,输出);
pinMode(我、输出);
pinMode (j、输出);
pinMode (k,输出);
pinMode (l,输出);
pinMode(高);
延迟(T);
digitalWrite(高);
延迟(T);
digitalWrite (b、高);
延迟(T);
digitalWrite (c、高);
延迟(T);
digitalWrite (d、高);
延迟(T);
digitalWrite (e、高);
延迟(T);
digitalWrite (f,高);
延迟(T);
digitalWrite (g,高);
延迟(T);
digitalWrite (h,高);
延迟(T);
digitalWrite(我、高);
延迟(T);
digitalWrite (j、高);
延迟(T);
digitalWrite (k,高);
延迟(T);
digitalWrite (l,高);
延迟(T);
延迟(Z);
}
无效循环()
{
以analogRead(输入));
如果(analogRead(输入)> = 85)digitalWrite (, 1);
如果(analogRead(输入)> = 170)digitalWrite (b, 1);
如果(analogRead(输入)> = 255)digitalWrite (c, 1);
如果(analogRead(输入)> = 340)digitalWrite (d, 1);
如果(analogRead(输入)> = 425)digitalWrite (e, 1);
如果(analogRead(输入)> = 510)digitalWrite (f, 1);
如果(analogRead(输入)> = 595)digitalWrite (g, 1);
如果(analogRead(输入)> = 680)digitalWrite (h, 1);
如果(analogRead(输入)> = 765)digitalWrite(我,1);
如果(analogRead(输入)> = 850)digitalWrite (j, 1);
如果(analogRead(输入)> = 935)digitalWrite (k, 1);
如果(analogRead(输入)> = 1000)digitalWrite (l, 1);
延迟(1000);
如果(analogRead(输入)< = 85)digitalWrite (a, 0);
如果(analogRead(输入)< = 170)digitalWrite (b, 0);
如果(analogRead(输入)< = 255)digitalWrite (c, 0);
如果(analogRead(输入)< = 340)digitalWrite (d, 0);
如果(analogRead(输入)< = 425)digitalWrite (e, 0);
如果(analogRead(输入)< = 510)digitalWrite (f (0);
如果(analogRead(输入)< = 595)digitalWrite (g, 0);
如果(analogRead(输入)< = 680)digitalWrite (h, 0);
如果(analogRead(输入)< = 765)digitalWrite (i, 0);
如果(analogRead(输入)< = 850)digitalWrite (j, 0);
如果(analogRead(输入)< = 935)digitalWrite (k, 0);
如果(analogRead(输入)< = 1000)digitalWrite (l, 0);
}
//-------------- 项目由R.Girish ---------------//
谢谢
输入你的评论,这是一个很棒的小项目,谢谢你,先生......
你好,我能拿到电路图吗?