#include <WiFi.h>
#include <HTTPClient.h>
#include <ArduinoJson.h>
#include <LiquidCrystal_I2C.h>
#include "secrets.h"
LiquidCrystal_I2C lcd(0x27, 16, 2);
const String url1 = "https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd";
const String url2 = "https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=eur";
byte customChar[] = {
B00111,
B01000,
B11000,
B01110,
B11110,
B01000,
B01000,
B00111
};
void setup() {
Serial.begin(115200);
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Connecting WiFi...");
WiFi.begin(SSID, WIFI_PASSWORD);
lcd.createChar(0, customChar);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nWiFi Connected");
lcd.clear();
lcd.print("Connected to");
lcd.setCursor(0, 1);
lcd.print(SSID);
delay(2000);
}
void loop() {
if (WiFi.status() == WL_CONNECTED) {
HTTPClient http;
int usd = 0;
int eur = 0;
http.begin(url1);
int httpCode = http.GET();
if (httpCode == 200) {
String payload = http.getString();
Serial.println("USD JSON: " + payload);
DynamicJsonDocument doc(256);
DeserializationError error = deserializeJson(doc, payload);
if (!error) {
usd = doc["bitcoin"]["usd"];
}
}
http.end();
delay(1000);
http.begin(url2);
httpCode = http.GET();
if (httpCode == 200) {
String payload = http.getString();
Serial.println("EUR JSON: " + payload);
DynamicJsonDocument doc(256);
DeserializationError error = deserializeJson(doc, payload);
if (!error) {
eur = doc["bitcoin"]["eur"];
}
}
http.end();
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("BTC USD$:");
lcd.setCursor(9, 0);
lcd.print(usd);
lcd.setCursor(0, 1);
lcd.print("BTC EUR :");
lcd.setCursor(7,1);
lcd.write(0);
lcd.setCursor(9, 1);
lcd.print(eur);
delay(15000);
}
}