在这个项目中,我们将使用MQ-135传感器和arduino构建一个空气污染测量仪。空气中的污染程度由12个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;
unsigned long X = 1000L;
unsigned long Y = X * 60;
unsigned long Z = Y * 5;
无效的设置()
{
Serial.begin (9600);
系列。println(“传感器准备好了,请等待5分钟”);
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 ---------------//
谢谢
请输入您的评论…这是一个非常棒的小项目,谢谢您......先生
你好,能给我电路图吗?