空気質モニター
コンポーネントと消耗品
> |
| × | 1 | |||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
必要なツールとマシン
> |
| |||
|
アプリとオンラインサービス
> |
|
このプロジェクトについて
M 夜はぐっすり眠った後でも、ベッドから目を覚ますととても体が弱くなります。これは、夜間の密室の空気の質が悪いために発生することがあります。
<図>これは、MQ135空気質センサーを使用して部屋の空気質を監視できる低コストの空気質モニターです。また、DHT11を使用して室温と湿度を測定し、OLEDディスプレイにデータを表示します。それは楽しい小さなプロジェクトであり、とても役に立ちます。
配線 <図> <図> <図> <図>
接続:
- ArduinoD2からDHT11へ
- ArduinoA0からMQ135Ao
- ArduinoA5からOledSCL
- ArduinoA4からOledSDAへ
コーディング
コーディングの部分では、コードを実行するためにライブラリをインストールする必要があります
- Adafruit_SSD1306.h
- Adafruit_GFX.h
- DHT.h
コードには2つの主要な関数があります sendSensor()
および air_sensor()
。
air_sensor()
で 関数は、空気品質センサーからアナログ値を読み取ります gasLevel =analogRead(sensor);
対応する gasLevel
の品質を定義します 。また、sendSensor()関数は、 dht
を使用して温度と湿度のデータを測定します。 ライブラリを作成し、それを有機ELに表示します。
air_sensor()
内 gasLevel
を祝うために必要な関数 センサーの値。そのために、mq135センサーに5Vの電力を供給し、使用する前に少なくとも24時間クリーンな環境に置きます。この種のセンサーは汚染されているため、(燃焼)必要です。したがって、燃焼はそれ自体をきれいにするのに役立ち、より正確な結果をもたらします。
次に、センサーを回路に接続し、外に出て、場所に適した値を調整します。
コード
- Arduino空気品質モニター
Arduino空気品質モニター Arduino
#include#include #include #include #include #include # include #define SCREEN_WIDTH 128 // OLEDディスプレイ幅(ピクセル単位)#define SCREEN_HEIGHT 64 // OLEDディスプレイ高さ(ピクセル単位)#define OLED_RESET 4 //ピン番号をリセット(またはArduinoリセットピンを共有している場合は-1)Adafruit_SSD1306 display(SCREEN_WIDTH、SCREEN_HEIGHT、&Wire、OLED_RESET);#defineセンサーA0 #define DHTPIN 2 //デジタルピン2#define DHTTYPE DHT11 // DHT 11int gasLevel =0; //ガスレベルのint変数Stringquality =""; DHT dht(DHTPIN、DHTTYPE); void sendSensor(){float h =dht.readHumidity(); float t =dht.readTemperature(); if(isnan(h)|| isnan(t)){Serial.println( "DHTセンサーからの読み取りに失敗しました!");戻る; } display.setTextColor(WHITE); display.setTextSize(1); display.setFont(); display.setCursor(0、43); display.println( "Temp:"); display.setCursor(80、43); display.println(t); display.setCursor(114、43); display.println( "C"); display.setCursor(0、56); display.println( "RH:"); display.setCursor(80、56); display.println(h); display.setCursor(114、56); display.println( "%");} void air_sensor(){gasLevel =analogRead(sensor); if(gasLevel <181){quality ="GOOD!"; } else if(gasLevel> 181 &&gasLevel <225){quality ="Poor!"; } else if(gasLevel> 225 &&gasLevel <300){quality ="非常に悪い!"; } else if(gasLevel> 300 &&gasLevel <350){quality ="ur dead!"; } else {quality ="有毒"; } display.setTextColor(WHITE); display.setTextSize(1); display.setCursor(1,5); display.setFont(); display.println( "Air Quality:"); display.setTextSize(1); display.setCursor(20,23); display.setFont(&FreeMonoOblique9pt7b); display.println(quality); } void setup(){Serial.begin(9600); pinMode(sensor、INPUT); dht.begin(); if(!display.begin(SSD1306_SWITCHCAPVCC、0x3c)){// 128x64のアドレス0x3D Serial.println(F( "SSD1306の割り当てに失敗しました"));} display.clearDisplay(); display.setTextColor(WHITE); display.setTextSize(2); display.setCursor(50、0); display.println( "Air"); display.setTextSize(1); display.setCursor(23、20); display.println( "Qulaity monitor"); display.display(); delay(1200); display.clearDisplay(); display.setTextSize(2); display.setCursor(20、20); display.println( "BY Abid"); display.display(); delay(1000); display.clearDisplay(); } void loop(){display.clearDisplay(); air_sensor(); sendSensor(); display.display(); }
カスタムパーツとエンクロージャー
これは私がプロジェクトのために設計した3Dエンクロージャーです。ただし、ビルドに3Dプリンターは必要ありません。段ボールなど、さまざまなものを使用して独自のエンクロージャーを作成できます。 回路図
製造プロセス