#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128 // OLED width, in pixels
#define SCREEN_HEIGHT 64 // OLED height, in pixels
// create an OLED display object connected to I2C
Adafruit_SSD1306 oled(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
int Butane = 12;
int LPG = 13;
int Kerosene = 14;
int WaterPump = 2;
int ExhaustFan = 4;
void setup() {
Serial.begin(9600);
pinMode(LPG,INPUT);
pinMode(Butane,INPUT);
pinMode(Kerosene,INPUT);
pinMode(WaterPump,OUTPUT);
pinMode(ExhaustFan,OUTPUT);
// initialize OLED display with I2C address 0x3C
if (!oled.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("failed to start SSD1306 OLED"));
while (1);
}
delay(2000); // wait two seconds for initializing
oled.setTextSize(2); // set text size
oled.setTextColor(WHITE); // set text color
}
void loop() {
oled.display(); //starts oled display
delay(1000); //Time delay
oled.clearDisplay(); //Clears oled display
//Reads Sensor Values
int LPGSensor = analogRead(LPG);
int ButaneSensor = analogRead(Butane);
int KeroseneSensor = analogRead(Kerosene);
oled.setCursor(0,0);
oled.print(LPGSensor);
oled.setCursor(0,20);
oled.print(ButaneSensor);
oled.setCursor(0,40);
oled.print(KeroseneSensor);
oled.display();
//Displays Sensor Readings
if (LPGSensor<300){oled.setCursor(0,0); oled.print("No LPG Leak");}
else if (LPGSensor>300 && LPGSensor<600){oled.setCursor(0,0); oled.print("LPG Leak");}
else{oled.setCursor(0,0); oled.print("Critical LPG Leak");}
if (ButaneSensor<300){oled.setCursor(0,0); oled.print("No Butane Leak");}
else if (ButaneSensor>300 && ButaneSensor<600){oled.setCursor(0,0); oled.print("Butane Leak");}
else{oled.setCursor(0,0); oled.print("Critical Butane Leak");}
if (KeroseneSensor<300){oled.setCursor(0,0); oled.print("No Kerosene Leak");}
else if (KeroseneSensor>300 && KeroseneSensor<600){oled.setCursor(0,0); oled.print("Kerosene Leak");}
else{oled.setCursor(0,0); oled.print("Critical Kerosene Leak");}
if ((LPGSensor>300 && LPGSensor<600) || (ButaneSensor>300 && ButaneSensor<600) || (KeroseneSensor>300 && KeroseneSensor<600))
{digitalWrite(ExhaustFan,HIGH);}
else{digitalWrite(ExhaustFan,LOW);}
if (LPGSensor>600 || ButaneSensor>600 || KeroseneSensor>600)
{digitalWrite(ExhaustFan, HIGH); digitalWrite(WaterPump,HIGH);}
else{digitalWrite(ExhaustFan, LOW); digitalWrite(WaterPump,LOW);}
}