Simple Air Quality Sensor

by aFemz in Circuits > Arduino

292 Views, 0 Favorites, 0 Comments

Simple Air Quality Sensor

Screenshot 2023-09-29 103916.png

Proyek Arduino Sensor Gas adalah proyek yang menggunakan sensor MQ-35 gas untuk memantau kualitas udara. Sensor ini mendeteksi berbagai gas seperti karbon monoksida (CO), amonia (NH3), metana (CH4), dan banyak lainnya. Data yang diperoleh dari sensor gas ini kemudian ditampilkan pada layar OLED mini 0,96 inci. Fungsi utama proyek ini adalah memberikan informasi tentang tingkat polusi udara atau konsentrasi gas tertentu dalam lingkungan yang diukur, sehingga pengguna dapat mengambil tindakan yang sesuai jika diperlukan. Proyek ini dapat membantu meningkatkan kesadaran tentang kualitas udara di sekitar kita.

Supplies

Screenshot 2023-09-29 110248.png

sensor MQ-35 gas untuk memantau kualitas udara. Sensor ini mendeteksi berbagai gas seperti karbon monoksida (CO), amonia (NH3), metana (CH4), dan banyak lainnya. Data yang diperoleh dari sensor gas ini kemudian ditampilkan pada layar OLED mini 0,96 inci.

WhatsApp Image 2023-10-13 at 18.11.48_543ebfe0.jpg

Sebelum masuk ke koding, kalian perlu membuat pcb dengan untuk merangkai sensor dan LCD kalian. ikuti rangkaian sesuai gambar dibawah ini.

Lalu, colok wemos esp32 dengan kabel data

Kedua, upload kode berikut ke wemos esp32 tersebut :

#include <Adafruit_SSD1306.h>

#include <Adafruit_GFX.h>

#include <Wire.h>

#include <SPI.h>


#define SCREEN_WIDTH 128 // OLED display width, in pixels

#define SCREEN_HEIGHT 64 // OLED display height, in pixels



// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)

#define OLED_RESET   -1 // Reset pin # (or -1 if sharing Arduino reset pin)

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

int sensorValue;

int digitalValue;

int conductivityValue;



void setup() {

  Serial.begin(115200);

 // put your setup code here, to run once:

 if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { 

  Serial.println(F("SSD1306 allocation failed"));

  for(;;); // Don't proceed, loop forever

 }


 display.clearDisplay();


 display.setTextSize(2);

 display.setTextColor(WHITE);

 display.setCursor(0, 0);

 display.println("Welcome");


 display.setTextSize(2);

 display.setTextColor(WHITE);

 display.setCursor(0, 17);

 display.println("This is");

 display.println("a Splash");

 display.println("Screen");


 display.display();


 delay(5000);


}


void loop() {

 sensorValue = analogRead(A0);

 digitalValue = digitalRead(D3); 

 conductivityValue = round(float(sensorValue) / 1023 * 100);



 display.clearDisplay();


 display.setTextSize(2);

 display.setTextColor(WHITE);

 display.setCursor(0, 0);

 display.println("Net Test");

  

 Serial.print("AirQua=");

 Serial.print(sensorValue,  DEC);


 Serial.println(" PPM");

 display.setTextSize(1);

 display.setTextColor(WHITE);

 display.setCursor(0, 17);

 display.print("Conductivity Sensor value : ");

 display.println(sensorValue, DEC);


 if ((sensorValue >= 0) && (sensorValue <= 50))

 {

  display.println("AQI Good");

  Serial.println("AQI Good");

 }

 else if ((sensorValue >= 51) && (sensorValue <= 100))

 {

  display.println("AQI Moderate");

 }


 else if ((sensorValue >= 101) && (sensorValue <= 200))

 {

  display.println("AQI Unhealthy");

   

 }

 else if ((sensorValue >= 201) && (sensorValue <= 300))

 {

  display.println("AQI V. Unhealthy");

  Serial.println("AQI V. Unhealthy");

 }

 else if (sensorValue >= 301)

 {

  display.println("AQI Hazardous");

  Serial.println("AQI Hazardous");

 }


 display.display();

 delay(1000);

 // put your main code here, to run repeatedly:


}

Setup selesai !, sekarang kalian dapat menggunakan alatnya !