#include <WiFi.h>
#include <HTTPClient.h>
#include <LiquidCrystal_I2C.h>
#include <ArduinoJson.h>
HTTPClient http;
LiquidCrystal_I2C lcd = LiquidCrystal_I2C(0x27, 20, 4);
void setup() {
lcd.init();
lcd.backlight();
Serial.begin(9600);
Serial.print("Connecting to WiFi");
WiFi.begin("Wokwi-GUEST", "", 6);
while (WiFi.status() != WL_CONNECTED) {
delay(100);
Serial.print(".");
}
Serial.println(" Connected!");
}
void loop() {
if ((WiFi.status() == WL_CONNECTED)) {
HTTPClient http;
http.begin("https://wifeed.vn/api/du-lieu-vimo/hang-hoa/gia-xang-dau-trong-nuoc?page=1&limit=100&apikey=demo");
int httpCode = http.GET();
if (httpCode > 0) {
String payload = http.getString();
// Serial.println(httpCode);
// Serial.println(payload);
StaticJsonDocument<512> doc; // Kích thước của JSON document
DeserializationError error = deserializeJson(doc, payload);
float price = doc["data"][0]["vung_1_xang_ron_95_v"];
lcd.clear();
lcd.print("Gia-xang: ");
lcd.print(price);
}
else {
Serial.println("Error on HTTP request");
}
http.end();
}
if ((WiFi.status() == WL_CONNECTED)) {
HTTPClient http;
http.begin("http://api.btmc.vn/api/BTMCAPI/getpricebtmc?key=3kd8ub1llcg9t45hnoh8hmn7t5kc2v");
int httpCode = http.GET();
if (httpCode > 0) {
String payload = http.getString();
// Serial.println(httpCode);
// Serial.println(payload);
StaticJsonDocument<512> doc; // Kích thước của JSON document
DeserializationError error = deserializeJson(doc, payload);
float price = doc["DataList"]["Data"][0]["@pb_1"];
lcd.setCursor(0,1);
lcd.print("Gia-vang: ");
lcd.print(price);
}
else {
Serial.println("Error on HTTP request");
}
http.end();
}
// Lấy thông tin địa chỉ IP, quốc gia và thành phố
if ((WiFi.status() == WL_CONNECTED)) {
HTTPClient http;
http.begin("https://ipinfo.io/json");
int httpCode = http.GET();
if (httpCode > 0) {
String payload = http.getString();
Serial.println(httpCode);
Serial.println(payload);
StaticJsonDocument<512> doc; // Kích thước của JSON document
DeserializationError error = deserializeJson(doc, payload);
String ip = "IP: " + String(doc["ip"]);
String ten = "DC: " + String(doc["city"]) + String(" - ") + String("country");
lcd.setCursor(0, 2);
lcd.print(ip);
lcd.setCursor(0, 3);
lcd.print(ten);
}
else {
Serial.println("Error on HTTP request");
}
http.end();
}
delay(10000);
}