#include <WiFi.h>
#include <HTTPClient.h>
#include <Arduino_JSON.h>
const char* ssid = "Wokwi-GUEST";
const char* password = "";
const char* apiURL = "https://api.bmkg.go.id/publik/prakiraan-cuaca?adm4=35.78.09.1004";
String kondisiCuaca = "";
String suhuUdara = "";
String kelembapan = "";
String kecepatanAngin = "";
String waktuLokal = "";
void setup() {
Serial.begin(115200);
delay(1000);
WiFi.begin(ssid, password);
Serial.print("Menghubungkan ke WiFi");
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(".");
}
Serial.println("\nTerhubung ke WiFi!");
}
void loop() {
if (WiFi.status() == WL_CONNECTED) {
HTTPClient http;
http.begin(apiURL);
int httpResponseCode = http.GET();
if (httpResponseCode == 200) {
String payload = http.getString();
JSONVar response = JSON.parse(payload);
if (JSON.typeof(response) == "undefined") {
Serial.println("Gagal parsing JSON");
} else {
JSONVar cuaca = response["data"][0]["cuaca"][0][0];
suhuUdara = String((int)cuaca["t"]) + " °C";
kelembapan = String((int)cuaca["hu"]) + " %";
kecepatanAngin = String((double)cuaca["ws"], 1) + " km/jam";
kondisiCuaca = (const char*)cuaca["weather_desc"];
waktuLokal = (const char*)cuaca["local_datetime"];
Serial.println("=== Informasi Cuaca ===");
Serial.println("Waktu Lokal : " + waktuLokal);
Serial.println("Suhu Udara : " + suhuUdara);
Serial.println("Kelembapan : " + kelembapan);
Serial.println("Kecepatan Angin: " + kecepatanAngin);
Serial.println("Kondisi Cuaca : " + kondisiCuaca);
Serial.println("========================");
}
} else {
Serial.println("Gagal mengambil data. Kode: " + String(httpResponseCode));
}
http.end();
} else {
Serial.println("WiFi tidak terhubung");
}
delay(60000); // ambil data setiap 60 detik
}