#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <WiFi.h>
#include <HTTPClient.h>
#include <ArduinoJson.h>
// Replace with your network credentials
const char* ssid = "wokwi_GUEST";
const char* password = "YOUR_PASSWORD";
// LCD configuration
LiquidCrystal_I2C lcd(0x27, 16, 2);
// API URL
const char* apiURL = "https://reqres.in/api/users?page=2";
void setup() {
// Initialize Serial Monitor
Serial.begin(115200);
// Initialize LCD
lcd.init();
lcd.backlight();
// Connect to Wi-Fi
WiFi.begin(ssid, password);
Serial.print("Connecting to WiFi");
lcd.print("Connecting WiFi");
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(".");
}
Serial.println("Connected to WiFi");
lcd.clear();
lcd.print("WiFi Connected");
delay(2000);
}
void loop() {
if (WiFi.status() == WL_CONNECTED) {
HTTPClient http;
http.begin(apiURL);
int httpResponseCode = http.GET();
if (httpResponseCode > 0) {
String payload = http.getString();
Serial.println(payload);
// Parse JSON
DynamicJsonDocument doc(2048);
deserializeJson(doc, payload);
JsonArray users = doc["data"];
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Emails:");
for (int i = 0; i < users.size(); i++) {
String email = users[i]["email"];
Serial.println(email);
lcd.setCursor(0, 1);
lcd.print(email);
delay(2000); // Display each email for 2 seconds
}
} else {
Serial.print("Error code: ");
Serial.println(httpResponseCode);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("HTTP Error");
lcd.setCursor(0, 1);
lcd.print(httpResponseCode);
}
http.end();
} else {
Serial.println("WiFi Disconnected");
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("WiFi Disconnected");
}
delay(10000); // Repeat every 10 seconds
}