#include <DHT.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
DHT dht1(5, DHT22);
const int triggerPin_1 = 13;
const int echoPin_1 = 12;
unsigned int duration_1;
unsigned int distance_1;
DHT dht2(4, DHT22);
const int triggerPin_2 = 11;
const int echoPin_2 = 10;
unsigned int duration_2;
unsigned int distance_2;
DHT dht3(3, DHT22);
const int triggerPin_3 = 9;
const int echoPin_3 = 8;
unsigned int duration_3;
unsigned int distance_3;
DHT dht4(2, DHT22);
const int triggerPin_4 = 6;
const int echoPin_4 = 7;
unsigned int duration_4;
unsigned int distance_4;
void setup() {
pinMode(triggerPin_1, OUTPUT);
pinMode(echoPin_1, INPUT);
pinMode(triggerPin_2, OUTPUT);
pinMode(echoPin_2, INPUT);
pinMode(triggerPin_3, OUTPUT);
pinMode(echoPin_3, INPUT);
pinMode(triggerPin_4, OUTPUT);
pinMode(echoPin_4, INPUT);
dht1.begin();
dht2.begin();
dht3.begin();
dht4.begin();
lcd.begin(16,2);
lcd.init();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("penataan parkir");
lcd.setCursor(0,1);
lcd.print("(:ABR holiday:)");
delay(5000);
lcd.clear();
}
void loop() {
readSensor_1();
readSensor_2();
readSensor_3();
readSensor_4();
}
void readSensor_1() {
float suhu1 = dht1.readTemperature();
digitalWrite(triggerPin_1, LOW);
delayMicroseconds(2);
digitalWrite(triggerPin_1, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin_1, LOW);
duration_1 = pulseIn(echoPin_1, HIGH);
distance_1 = (duration_1 / 2) / 29.1;
if(distance_1<=100){
lcd.setCursor(0,0);
lcd.print("parkir1:kosong");
}else{
lcd.setCursor(0,0);
lcd.print("parkir1:penuh");
}
lcd.setCursor(0,1);
lcd.print("suhu:");
lcd.println(suhu1);
delay(5000);
lcd.clear();
}
void readSensor_2() {
float suhu2 = dht2.readTemperature();
digitalWrite(triggerPin_2, LOW);
delayMicroseconds(2);
digitalWrite(triggerPin_2, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin_2, LOW);
duration_2 = pulseIn(echoPin_2, HIGH);
distance_2 = (duration_2 / 2) / 29.1;
if(distance_2<=100){
lcd.setCursor(0,0);
lcd.print("parkir2:kosong");
}else{
lcd.setCursor(0,0);
lcd.print("parkir2:penuh");
}
lcd.setCursor(0,1);
lcd.print("suhu:");
lcd.println(suhu2);
delay(5000);
lcd.clear();
}
void readSensor_3() {
float suhu3 = dht3.readTemperature();
digitalWrite(triggerPin_3, LOW);
delayMicroseconds(2);
digitalWrite(triggerPin_3, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin_3, LOW);
duration_3 = pulseIn(echoPin_3, HIGH);
distance_3 = (duration_3 / 2) / 29.1;
if(distance_3<=100){
lcd.setCursor(0,0);
lcd.print("parkir3:kosong");
}else{
lcd.setCursor(0,0);
lcd.print("parkir3:penuh");
}
lcd.setCursor(0,1);
lcd.print("suhu:");
lcd.println(suhu3);
delay(5000);
lcd.clear();
}
void readSensor_4() {
float suhu4 = dht4.readTemperature();
digitalWrite(triggerPin_4, LOW);
delayMicroseconds(2);
digitalWrite(triggerPin_4, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin_4, LOW);
duration_4 = pulseIn(echoPin_4, HIGH);
distance_4 = (duration_4 / 2) / 29.1;
if(distance_4<=100){
lcd.setCursor(0,0);
lcd.print("parkir4:kosong");
}else{
lcd.setCursor(0,0);
lcd.print("parkir4:penuh");
}
lcd.setCursor(0,1);
lcd.print("suhu:");
lcd.println(suhu4);
delay(5000);
lcd.clear();
}