#include <DHT.h>
#include <WiFi.h>
#include <HTTPClient.h>
#define DHTPIN 4 // Pin sensor DHT22
#define DHTTYPE DHT22 // Jenis sensor DHT (DHT22)
const char* ssid = "Wokwi-GUEST"; // Nama WiFi
const char* password = ""; // Kata sandi WiFi
const char* webAppUrl = "https://script.google.com/macros/s/AKfycbzeyTfP4dliNUaAM4SzpWMirqrh2vPlewsqEIG4ZX-6DyywX0DTDPA_BQnnVOELaTfn/exec"; // URL skrip Google Apps Anda
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(115200);
delay(100);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Menghubungkan ke WiFi...");
}
Serial.println("Terhubung ke WiFi");
dht.begin();
}
void loop() {
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
if (isnan(humidity) || isnan(temperature)) {
Serial.println("Gagal membaca dari sensor DHT");
delay(2000);
return;
}
Serial.print("Suhu: ");
Serial.print(temperature);
Serial.print(" °C, Kelembaban: ");
Serial.print(humidity);
Serial.println(" %");
// Mengirim data ke Google Apps Script
sendDataToScript(temperature, humidity);
delay(5000); // Jeda selama 5 detik
}
void sendDataToScript(float temperature, float humidity) {
HTTPClient http;
String serverPath = String(webAppUrl) + "?temperature=" + String(temperature) + "&humidity=" + String(humidity);
Serial.print("Menghubungi server: ");
Serial.println(serverPath);
if (http.begin(serverPath)) {
int httpCode = http.GET();
if (httpCode > 0) {
Serial.print("Kode respons server: ");
Serial.println(httpCode);
if (httpCode == HTTP_CODE_MOVED_PERMANENTLY || httpCode == HTTP_CODE_FOUND) {
// Menangani pengalihan
String newLocation = http.getLocation();
Serial.print("Dialihkan ke: ");
Serial.println(newLocation);
http.end();
if (http.begin(newLocation)) {
httpCode = http.GET();
if (httpCode > 0) {
Serial.print("Kode respons server setelah pengalihan: ");
Serial.println(httpCode);
} else {
Serial.print("Permintaan HTTP GET gagal setelah pengalihan dengan kode kesalahan: ");
Serial.println(httpCode);
}
http.end();
}
}
} else {
Serial.print("Permintaan HTTP GET gagal dengan kode kesalahan: ");
Serial.println(httpCode);
}
http.end();
} else {
Serial.println("Tidak dapat terhubung ke server");
}
}