ArduinoでLED大気汚染メーター回路を作る方法

問題を排除するために楽器を試してください





このプロジェクトでは、MQ-135センサーとarduinoを使用して大気汚染メーターを構築します。空気中の汚染レベルは、一連の12個のLEDで示されます。 LEDの数が多いほど、空気中の汚染物質の含有量が多くなり、その逆も同様です。



概要概要

このプロジェクトは、病院など、大気質が重要な役割を果たす場所で非常に役立つことがわかります。あるいは、これはあなた自身の家のための別の趣味のプロジェクトでもありえます。

これは、このプロジェクトで大きな精度を期待することはできませんが、あなたの環境での汚染レベルに関しては間違いなくかなり良い考えを与えることができます。



大気汚染は、二酸化炭素、一酸化炭素、ブタン、メタン、および一部の無臭ガスである可能性があります。センサーはガスを区別できませんが、外出先で空気からすべてのガスサンプルを取り出します。

あなたが大都市に住んでいて、あなたのアパートが混雑した道路の近くに置かれているなら、このプロジェクトは空気の雰囲気についての大まかな洞察を与えるのに役立つかもしれません。

ほとんどの人は居住地の大気質対策を無視しており、インドだけでも、屋内と屋外の汚染を含め、毎年159万人が死亡していると推定されています。

人口の大多数は、スマートフォン以上の費用がかからない市場や電子商取引サイトですぐに利用できる空気清浄機に気づいていません。

さて、警告は別として、回路に飛び込みましょう。

デザイン:

LEDが長方形で、上記のレイアウト設計が使用されている場合、大気汚染メーターはより興味深いものになります。ただし、想像力を駆使して、このプロジェクトをより面白くすることができます。

LED大気汚染計回路の作り方

上の回路図は、センサーをarduinoに接続する方法を示しています。センサーのヒーターコイルには外部電源を搭載しています。センサーの側面は交換できます。

arduinoのピンA0は、空気中の汚染物質の変化によるセンサーの電圧変動を感知します。

センサーは(汚染に応じて)可変抵抗器として機能し、10Kは固定抵抗器として機能します。これは分圧器として機能します。 arduinoには10ビットADCがあり、アナログ機能である大気汚染レベルに応じてLEDが個別に発光するのに役立ちます。

Arduinoを搭載したLED大気汚染メーター回路

アナログ電圧レベルがプログラムで事前に決定された特定のしきい値レベルを超えると、LEDが点灯します。

連続するLEDは、より高いしきい値レベルで事前に決定されています。

LEDテストから始まり、各LEDは少し遅れて順番にオンになり、ユーザーは、接続されていないLEDや順番に並べ替えられていないLEDなどのLED接続のエラーを判別できます。プログラムは5分間停止し、すべてのLEDが同時に点灯します。

これにより、センサーがウォームアップするのに十分な時間が与えられ、シリアルモニターでarduinoによって実行されたアクションの一部を確認できます。センサーが最適な温度に達すると、arduinoはいくつかの読み取り値をシリアルモニターに送信します。読み取り値に基づいて、LEDがオンとオフになります。シリアルモニターに出力される値が高いほど、より多くのLEDが点灯します。

このプロジェクトではシリアルモニターは必須ではありませんが、テスト目的の便利なツールになります。

プロトタイプ画像:

Arduinoでテスト済みのプロトタイプLED大気汚染メーター回路

テスト方法:

•arduinoと外部電源をオンにします。 LEDテストが開始され、1回だけ実行されます。
•プログラムは、センサーが加熱されるまで5分間待機します。
•測定値がシリアルモニターに表示されたら、シガーライターを持ってきて、炎を上げずにガスを漏らします。
•すぐに、読み取り値がピークになり、より多くのLEDが点灯し始めます。
•センサーのフローガスを停止すると、徐々にLEDが消灯します。これで、LED大気汚染メーターが部屋に使用できるようになりました。

プログラムコード:

//--------------Program developed by R.Girish---------------//
int input=A0
int a=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
void setup()
{
Serial.begin(9600)
Serial.println('Sensor is getting ready, please wait for 5 min.')
pinMode(a,OUTPUT)
pinMode(b,OUTPUT)
pinMode(c,OUTPUT)
pinMode(d,OUTPUT)
pinMode(e,OUTPUT)
pinMode(f,OUTPUT)
pinMode(g,OUTPUT)
pinMode(h,OUTPUT)
pinMode(i,OUTPUT)
pinMode(j,OUTPUT)
pinMode(k,OUTPUT)
pinMode(l,OUTPUT)
pinMode(a,HIGH)
delay(T)
digitalWrite(a,HIGH)
delay(T)
digitalWrite(b,HIGH)
delay(T)
digitalWrite(c,HIGH)
delay(T)
digitalWrite(d,HIGH)
delay(T)
digitalWrite(e,HIGH)
delay(T)
digitalWrite(f,HIGH)
delay(T)
digitalWrite(g,HIGH)
delay(T)
digitalWrite(h,HIGH)
delay(T)
digitalWrite(i,HIGH)
delay(T)
digitalWrite(j,HIGH)
delay(T)
digitalWrite(k,HIGH)
delay(T)
digitalWrite(l,HIGH)
delay(T)
delay(Z)
}
void loop()
{
Serial.println(analogRead(input))
if(analogRead(input)>=85) digitalWrite(a,1)
if(analogRead(input)>=170) digitalWrite(b,1)
if(analogRead(input)>=255) digitalWrite(c,1)
if(analogRead(input)>=340) digitalWrite(d,1)
if(analogRead(input)>=425) digitalWrite(e,1)
if(analogRead(input)>=510) digitalWrite(f,1)
if(analogRead(input)>=595) digitalWrite(g,1)
if(analogRead(input)>=680) digitalWrite(h,1)
if(analogRead(input)>=765) digitalWrite(i,1)
if(analogRead(input)>=850) digitalWrite(j,1)
if(analogRead(input)>=935) digitalWrite(k,1)
if(analogRead(input)>=1000) digitalWrite(l,1)
delay(1000)
if(analogRead(input)<=85) digitalWrite(a,0)
if(analogRead(input)<=170) digitalWrite(b,0)
if(analogRead(input)<=255) digitalWrite(c,0)
if(analogRead(input)<=340) digitalWrite(d,0)
if(analogRead(input)<=425) digitalWrite(e,0)
if(analogRead(input)<=510) digitalWrite(f,0)
if(analogRead(input)<=595) digitalWrite(g,0)
if(analogRead(input)<=680) digitalWrite(h,0)
if(analogRead(input)<=765) digitalWrite(i,0)
if(analogRead(input)<=850) digitalWrite(j,0)
if(analogRead(input)<=935) digitalWrite(k,0)
if(analogRead(input)<=1000) digitalWrite(l,0)
}
//--------------Program developed by R.Girish---------------//




前:MQ-135を使用したLPGリークSMSアラート–携帯電話で警告メッセージを取得 次へ:LM317可変スイッチモード電源(SMPS)