#include <WiFi.h>
#include <HTTPClient.h>
#include <DHT.h>
#define DHTPIN 4 // Pin sensor DHT dihubungkan ke GPIO4
#define DHTTYPE DHT22 // Tipe sensor DHT (DHT22)
const char* ssid = "Wokwi-GUEST"; // Nama WiFi
const char* password = ""; // Password WiFi (kosong di Wokwi)
// Ganti dengan URL dari Ngrok yang mengarah ke REST API Anda
const char* serverName = "https://472a-114-10-146-57.ngrok-free.app/api/sensor-dht22";
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
Serial.println("Connecting to WiFi...");
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(".");
}
Serial.println("\nConnected to WiFi");
dht.begin();
}
void loop() {
if (WiFi.status() == WL_CONNECTED) {
HTTPClient http;
float temperature = dht.readTemperature(); // Membaca suhu dari sensor
float humidity = dht.readHumidity(); // Membaca kelembaban dari sensor
if (isnan(temperature) || isnan(humidity)) {
Serial.println("Failed to read from DHT sensor!");
} else {
// Mengirim data ke REST API
String postData = "suhuUdara=" + String(temperature) + "&kelembabanUdara=" + String(humidity);
http.begin(serverName); // Mengatur endpoint REST API
http.addHeader("Content-Type", "application/x-www-form-urlencoded");
int httpResponseCode = http.POST(postData); // Kirim data POST
if (httpResponseCode > 0) {
String response = http.getString();
Serial.println("Data sent successfully!");
Serial.println("HTTP Response code: " + String(httpResponseCode));
Serial.println("Server response: " + response);
} else {
Serial.print("Error sending data: ");
Serial.println(httpResponseCode);
}
http.end();
}
} else {
Serial.println("WiFi disconnected. Reconnecting...");
WiFi.begin(ssid, password);
}
delay(60000); // Tunggu 1 menit sebelum mengirim data lagi
}