Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Arduino.h>
- #include <Wire.h>
- #include <SPI.h>
- #include <Adafruit_GFX.h>
- #include <Adafruit_SSD1306.h>
- #include <ArduinoJson.h>
- #include <ESP8266WiFi.h>
- #include <ESP8266WiFiMulti.h>
- #include <ESP8266HTTPClient.h>
- #include <WiFiClientSecureBearSSL.h>
- #define OLED_RESET LED_BUILTIN //4
- Adafruit_SSD1306 display(OLED_RESET);
- ESP8266WiFiMulti WiFiMulti;
- // WiFi Parameters
- const char *server = "https://corona.lmao.ninja/countries/poland";
- HTTPClient http;
- void setup() {
- Serial.begin(9600);
- Wire.begin(2,0);
- for (uint8_t t = 4; t > 0; t--) {
- Serial.printf("[SETUP] WAIT %d...\n", t);
- Serial.flush();
- delay(1000);
- }
- WiFi.mode(WIFI_STA);
- WiFiMulti.addAP("ssid", "password");
- display.begin();
- StaticJsonDocument<140> payload;
- }
- void loop() {
- Serial.println("Connecting to the HTTP server....");
- std::unique_ptr<BearSSL::WiFiClientSecure>client(new BearSSL::WiFiClientSecure);
- client->setInsecure();
- Serial.println("Building URL...");
- if (http.begin(*client, "https://corona.lmao.ninja/countries/poland")) {
- Serial.println("Connected");
- http.addHeader("Accept", "application/json");
- int code = http.GET();
- Serial.printf("HTTP Code [%d]", code);
- if (code > 0) {
- if (code == HTTP_CODE_OK || code == HTTP_CODE_MOVED_PERMANENTLY) {
- Serial.println("GET OK");
- String payload = http.getString();
- // Serial.println(payload);
- // Allocate JsonBuffer
- // Use arduinojson.org/assistant to compute the capacity.
- const size_t capacity = JSON_OBJECT_SIZE(9) + 140;
- DynamicJsonDocument doc(capacity);
- // Parse JSON object
- DeserializationError error = deserializeJson(doc, payload);
- if (error) {
- Serial.print(F("deserializeJson() failed: "));
- Serial.println(error.c_str());
- return;
- }
- // Decode JSON/Extract values
- Serial.println(F("Response:"));
- Serial.println(doc["country"].as<char*>());
- Serial.println(doc["cases"].as<int>());
- Serial.println(doc["todayCases"].as<int>());
- Serial.println(doc["deaths"].as<int>());
- display.clearDisplay();
- display.display();
- display.setCursor(0, 0);
- display.print("Zarazonych: " + String(doc["cases"].as<int>()));
- display.setCursor(0, 1);
- display.print("z czego dzis: " + String(doc["todayCases"].as<int>()));
- display.setCursor(0, 2);
- display.print("Umarlo: " + String(doc["deaths"].as<int>()));
- display.setCursor(0, 3);
- display.print("z czego dzis: " + String(doc["todayDeaths"].as<int>()));
- }
- }
- else {
- Serial.printf("[HTTP] GET... failed, error: %s", http.errorToString(code).c_str());
- }
- }
- Serial.println("Wait 100s before next round...");
- delay(100000);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement