/////////Library//////////
#include "DHTesp.h"
#include <WiFi.h>
/////////////////////////
////////variabel yg menyatakan sebagai client////////
WiFiClient client;
/////////////////////////////////////////////////////
////////Deklarasi PIN DHT22////////
const int DHT_PIN = 15;
///////////////////////////////////
////////Deklarasi PIN ULTRASONIC////////
const int trig = 2;
const int echo = 4;
///////////////////////////////////
////////Deklarasi PIN Aktuator////////
const int ledM = 14;
const int ledK = 27;
const int ledH = 26;
const int ledP = 12;
const int ledB = 13;
/////////////////////////////////////
////////Variabel DHT22//////////////
DHTesp dhtSensor;
////////////////////////////////////
void setup() {
////////Baudrate////////
Serial.begin(115200);
///////////////////////
WiFi.disconnect();
////////Fungsi koneksi internet (Access Poin) ////////
WiFi.begin("Wokwi-GUEST", ""); ////("SSID", "Password")////
//////////////////////////////////////////////////////
////////Status Wifi///////////////////////////////////
while (WiFi.status() != WL_CONNECTED){
delay(300);
Serial.print(".");
}
/////////////////////////////////////////////////////
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
////////Menampilkan IP Adress yg didapatkan ESP32////////
Serial.println(WiFi.localIP());
/////////////////////////////////////////////////////////
////////Inisialisasi INPUT dan OUTPUT////////
pinMode(echo, INPUT);
pinMode(trig, OUTPUT);
pinMode(ledM, OUTPUT);
pinMode(ledK, OUTPUT);
pinMode(ledH, OUTPUT);
pinMode(ledP, OUTPUT);
pinMode(ledB, OUTPUT);
////////////////////////////////////////////
////////Inisialisasi dan setup DHT22////////
dhtSensor.setup(DHT_PIN, DHTesp::DHT22); ////(PIN DHT22, Setup Library untuk DHT22)
////////////////////////////////////////////
}
////////Rumus Nilai JARAK////////
float ultrasonik(){
digitalWrite(trig, LOW); ////Trigger off pancaran ultrasonik////////
delayMicroseconds(2);
digitalWrite(trig, HIGH); ////Trigger on pancaran ultrasonik////////
delayMicroseconds(10);
digitalWrite(trig, LOW);////Trigger off pancaran ultrasonik////////
////////Hasil pembacaan ////////////////////
int durasiPantulan = pulseIn(echo, HIGH);
return durasiPantulan * 0.034 / 2;
///////////////////////////////////////////
}
void loop() {
/////////Membaca nilai suhu dan kelembaban/////////////////
TempAndHumidity data = dhtSensor.getTempAndHumidity(); ////TempAndHumidity(default library) data (variabel baru) =dhtSensor.getTempAndHumidity() mengambil data dari
///////////////////////////////////////////////////////////
Serial.println("Temp: " + String(data.temperature, 2) + "°C");
Serial.println("Humidity: " + String(data.humidity, 1) + "%");
Serial.print("Jarak= ");
Serial.println(ultrasonik());
Serial.println("---");
float jarakPer = ultrasonik();
if(jarakPer>150){
digitalWrite(ledH, HIGH);
digitalWrite(ledK, LOW);
digitalWrite(ledM, LOW);
// digitalWrite(ledP, LOW);
// digitalWrite(ledB, LOW);
}
else if(jarakPer<=150 && jarakPer>100){
digitalWrite(ledK, HIGH);
digitalWrite(ledH, LOW);
digitalWrite(ledM, LOW);
// digitalWrite(ledP, LOW);
// digitalWrite(ledB, LOW);
}
else if(jarakPer<=100){
digitalWrite(ledM, HIGH);
digitalWrite(ledK, LOW);
digitalWrite(ledH, LOW);
// digitalWrite(ledP, LOW);
// digitalWrite(ledB, LOW);
}
if(data.temperature<25){
digitalWrite(ledP, HIGH);
digitalWrite(ledB, LOW);
// digitalWrite(ledM, LOW);
// digitalWrite(ledK, LOW);
// digitalWrite(ledH, LOW);
}
else if (data.temperature>29){
digitalWrite(ledP, LOW);
digitalWrite(ledB, HIGH);
// digitalWrite(ledM, LOW);
// digitalWrite(ledK, LOW);
// digitalWrite(ledH, LOW);
}
delay(1000);
}