#include #include #include #include DFRobot_DHT11 DHT; LiquidCrystal_I2C lcd(0x27, 20,4); // I2C adress #define DHT11_PIN 3 const int IRPin=2; const int ledPin = 16; const int ledPinG = 10; const int ledPinB = 12; const int BuzPin = 1; const int pin = 5; int sensorValue = 0; int prestate = 0; int count=0; int stat=0; float lpg, co, smoke; MQ2 mq2(pin); void setup() { Serial.begin(115200); pinMode(IRPin, INPUT); pinMode(ledPin, OUTPUT); pinMode(ledPinG, OUTPUT); pinMode(ledPinB, OUTPUT); pinMode(BuzPin, OUTPUT); mq2.begin(); lcd.begin(); lcd.backlight(); delay(250); lcd.noBacklight(); delay(250); lcd.backlight(); lcd.setCursor(0,0); lcd.print("Fablab Kamakura"); delay(1000); lcd.setCursor(0,1); lcd.print("Setyawan UGM"); delay(2000); lcd.clear(); // digitalWrite(BuzPin, HIGH); } void loop() { DHT.read(DHT11_PIN); Serial.print("temperature:"); Serial.print(DHT.temperature); // Serial.print(char(176)); Serial.println("\u00b0 C"); Serial.print("humidity :"); Serial.print(DHT.humidity); Serial.println("%"); lcd.setCursor(0,0); lcd.print("T:"); lcd.setCursor(2,0); lcd.print(DHT.temperature); lcd.setCursor(5,0); lcd.print("H:"); lcd.setCursor(7,0); lcd.print(DHT.humidity); float* values= mq2.read(true); lpg = mq2.readLPG(); lcd.setCursor(10,0); lcd.print("LPG:"); lcd.setCursor(14,0); lcd.print(lpg); lcd.setCursor(4,3); lcd.print("READY TO USE"); sensorValue = digitalRead(IRPin); if(sensorValue==0){ lcd.clear(); if (count==stat){ count++; } digitalWrite(ledPin, HIGH); digitalWrite(ledPinG, HIGH); digitalWrite(ledPinB, LOW); lcd.setCursor(0,2); lcd.print("IN USE"); Serial.print("Status :"); Serial.println("Full"); Serial.println(); prestate = 1; } else { digitalWrite(ledPin, LOW); digitalWrite(ledPinB, LOW); digitalWrite(ledPinG, LOW); lcd.setCursor(0,2); lcd.print("EMPTY "); Serial.print("Status :"); Serial.println("Empty"); Serial.println(); stat = count; if (prestate == 1||lpg>2){ for (int i=1; i<=10; i++) { digitalWrite(BuzPin, HIGH); digitalWrite(ledPinB, HIGH); delay(500); digitalWrite(BuzPin, LOW); digitalWrite(ledPinB, LOW); delay(700); lcd.setCursor(2,3); lcd.print("CHANGE THE LITTER"); } lcd.clear(); } prestate = 0; } lcd.setCursor(12,2); lcd.print("Count"); lcd.setCursor(18,2); lcd.print(count); }