#include <WiFi.h> // Gunakan <ESP8266WiFi.h> jika pakai ESP8266
#include <HTTPClient.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <ArduinoJson.h>
// LCD 20x4
LiquidCrystal_I2C lcd(0x27, 20, 4);
// Ganti dengan SSID dan password WiFi kamu
const char* ssid = "Wokwi-GUEST";
const char* password = "";
// URL API JSON
const char* url = "https://dummyjson.com/users/1";
void setup() {
Serial.begin(115200);
lcd.init();
lcd.backlight();
lcd.setCursor(3, 0);
lcd.print("Menghubungkan...");
WiFi.begin(ssid, password);
// Tunggu hingga terkoneksi
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
lcd.clear();
lcd.setCursor(3, 0);
lcd.print("WiFi Terkoneksi");
delay(1000);
// Ambil data dari URL
if (WiFi.status() == WL_CONNECTED) {
HTTPClient http;
http.begin(url);
int httpResponseCode = http.GET();
if (httpResponseCode > 0) {
String payload = http.getString();
Serial.println(payload);
StaticJsonDocument<512> doc;
DeserializationError error = deserializeJson(doc, payload);
if (!error) {
const char* firstName = doc["firstName"];
const char* lastName = doc["lastName"];
int age = doc["age"];
const char* phone = doc["phone"];
lcd.clear();
lcd.setCursor(2, 0);
lcd.print("=== User Data ===");
lcd.setCursor(0, 1);
lcd.print("Nama: ");
lcd.print(firstName);
lcd.setCursor(0, 2);
lcd.print("Usia: ");
lcd.print(age);
lcd.setCursor(0, 3);
lcd.print("HP : ");
lcd.print(phone);
} else {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("JSON Parsing Err");
}
} else {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("HTTP Error Code:");
lcd.setCursor(0, 1);
lcd.print(httpResponseCode);
}
http.end();
} else {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("WiFi Error");
}
}
void loop() {
// Kosong
}