// Mengimport library DHTesp untuk sensor DHT22
#include <DHTesp.h>
// Mengimport library Wifi untuk konektivitas ke wifi
#include <WiFi.h>
// Mendefinisikan pin GPIO yang digunakan untuk sensor DHT22
#define pinDht 15
// Membuat objek DHTesp untuk mengakses ke sensor DHT22
DHTesp dhtSensor;
// Mendifinisikan SSID dari knoeksi wifi
#define WIFI_AP "Wokwi-GUEST"
// Mendeifisikan password dari koneksi wifi
#define WIFI_PASS ""
// Membuat objek wificlient untuk koneksi ke wifi
WiFiClient espClient;
// Function untuk koneksi wifi ke device
void connectToWiFi(){
// Menampilkan pesan di serial monitor bahwa device sedang menghubungkan ke wifi
Serial.println("Connecting to wifi...");
// Menginisialisasi variable untuk menghitung jumlah usaha koneksi
int attempts = 0;
// Loop hingga device terhubung ke wifi sampai batas 20 kali usaha
while (WiFi.status() != WL_CONNECTED && attempts < 20){
// Memulai koneksi wifi dengan SSID dan password yang di berikan
WiFi.begin(WIFI_AP, WIFI_PASS);
// Menunggu selama 500ms
delay(500);
// Menampilkan titik di serial monitor yang menunjukkan proses koneksi
Serial.print(".");
// Menambah jumlah usaha
attempts++;
}
// Mengecek apakah device gagal terhubung ke wifi
if (WiFi.status() != WL_CONNECTED){
// Menampilkan pesan gagal terhubung ke wifi
Serial.println("\nFailed to connect to wifi");
}else{
// Menampilkan pesan berhasil terhubung ke wifi
Serial.println("\nConnect to wifi");
}
}
void setup(){
// Memulai komnunikasi serial dengan baud rate 115200
Serial.begin(115200);
// Menginisialisasi sensor DHT22 pada pin yang ditentukan
dhtSensor.setup(pinDht, DHTesp::DHT22);
// Memanggil fungsi untuk menghubungkan ke wifi
connectToWiFi();
}
void loop(){
// Memastikan koneksi wifi tetap terhubung
connectToWiFi();
// Membaca data suhu dan kelembapan dari sensor
TempAndHumidity data = dhtSensor.getTempAndHumidity();
// Menyimpan data suhu di variable temp
float temp = data.temperature;
// Menyimpan data kelembapan di variable hum
float hum = data.humidity;
// Menampilkan tabel suhu di serial monitor
Serial.print("Temperature: ");
// Menampilkan value suhu di serial monitor
Serial.print(temp);
// Menampilkan satuan suhu di serial monitor
Serial.println(" C");
// Menampilkan tabel kelembapan di serial monitor
Serial.print("Humidity: ");
// Menampilkan value kelembapan di serial monitor
Serial.print(hum);
// Menampilkan satuan suhu di serial monitor
Serial.println(" %");
// Menunggu selama 3 detik sebelum mengulangi loop
delay(3000);
}