///////Library///////
#include "DHTesp.h"
#include "WiFi.h"
/////////////////////
////////variabel yang menyatakan sebagai client////////
WiFiClient client;
//////////////////////////////////////////////////////
///////////deklarasi pin dht 22///////////////
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;
////////////////////////////////////////////
float X=400/397.63;
///////////variabel DHT22//////dari librari dan variabel dhtsensor//
DHTesp dhtSensor;
/////////////////////////////////////////////
void setup()
{
//////////Baudrate///////////
Serial.begin(115200);
///////////////////////////
WiFi.disconnect();
//////////////////////konek internet (access point)/////////////////
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:");
///////////untuk menampilkan IP address dari esp 32/////
Serial.println(WiFi.localIP());
/////////////////////////////
///////inisialisasi dan setup DHT 22////////
dhtSensor.setup(DHT_PIN, DHTesp::DHT22); ////(pin DHT22, setup library dht22)
///////////Inisialisasi INPUT dan OUTPUT////////////
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
pinMode(ledM, OUTPUT);
pinMode(ledK, OUTPUT);
pinMode(ledH, OUTPUT);
pinMode(ledP, OUTPUT);
pinMode(ledB, OUTPUT);
////////////////////////////////////////
}
//////////Rumus nilai jarak////////////////
float ultrasonik(){
digitalWrite(trig, LOW); ////Trigger off pancaran ultrasonik//////
delayMicroseconds(2);
digitalWrite(trig, HIGH); ///// Trigger off pancaran ultrasonik//////
delayMicroseconds(10);
digitalWrite(trig, LOW); ////Trigger off pancaran ultrasonik//////
//////hasil pembacaan ultrasonik////////////////
int durasiPantulan = pulseIn(echo, HIGH);
return durasiPantulan * 0.034 * X / 2;
////////////////////////////////////////////////
}
///////////////////////////////////////
void loop()
{
///////////////membaca nilai suhu dan kelembaban///////////////
TempAndHumidity data = dhtSensor.getTempAndHumidity(); ////TempAndHumidity(defaut Library)data (variable baru) = dhtSensor.getTempAndHumidity() (mengambil data dari sensor DHT22)
////////////////////////////////////////////////////////
Serial.println("Temp: " + String(data.temperature, 2) + "°C");////string(pembacaan suhu, nilai dibelakang koma)
Serial.println("Humidity: " + String(data.humidity, 1) + "%");////string(pembacaan kelembaban, nilai dibelakang koma)
Serial.print("Jarak=");
Serial.println(ultrasonik());
Serial.println("---");
float jarakPer = ultrasonik();
if(jarakPer>150)
{
Serial.println("Hijau (Normal)");
digitalWrite(ledH, HIGH);
digitalWrite(ledK, LOW);
digitalWrite(ledM, LOW);
// digitalWrite(ledP, LOW);
// digitalWrite(ledB, LOW);
}
else if (jarakPer <=150 && jarakPer>100)
{
digitalWrite(ledH, LOW);
digitalWrite(ledK, HIGH);
digitalWrite(ledM, LOW);
// digitalWrite(ledP, LOW);
// digitalWrite(ledB, LOW);
Serial.println("Kuning (Hati-hati)");
}
else if(jarakPer <100)
{
Serial.println("Merah (Bahaya)");
digitalWrite(ledM, HIGH);
}
if(data.temperature<25){
// digitalWrite(ledH, LOW);
// digitalWrite(ledK, LOW);
// digitalWrite(ledM, LOW);
digitalWrite(ledP, HIGH);
digitalWrite(ledB, LOW);
}
else if(data.temperature>29){
// digitalWrite(ledH, LOW);
// digitalWrite(ledK, LOW);
// digitalWrite(ledM, LOW);
digitalWrite(ledP, LOW);
digitalWrite(ledB, HIGH);
}
delay(1000);
}