Micro Technology Maker
Published

Morocco COVID-19 Cases Data Tracker

COVID-19 Live outbreak Data Tracker for Morocco ( NodeMCU IOT, ESP8266)

IntermediateShowcase (no instructions)735
Morocco COVID-19 Cases Data Tracker

Things used in this project

Story

Read more

Custom parts and enclosures

schematic diagram

Schematics

schematic diagram

Code

code

Arduino
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
#include <StringSplitter.h>

LiquidCrystal_I2C lcd(0x27,16,2);  // set the LCD address to 0x27 for a 16 chars and 2 line display

const char *host = "api.thingspeak.com";
const int httpPort = 80;  
const char* url1 = "/apps/thinghttp/send_request?api_key=D59F34WKSC64B0IN"; 
HTTPClient http; 

String cases;
String death;
String recover;

void setup() 
{
  // put your setup code here, to run once:
  lcd.init();                      // initialize the lcd 
  lcd.backlight();
  Serial.begin(9600);
  WiFi.begin("SSID", "wifi password");
  while(WiFi.status() != WL_CONNECTED)
  {
    delay(200);
    Serial.print("..");
  }
  Serial.println();
  Serial.println("NodeMCU is connected!");
  Serial.println(WiFi.localIP());
}

void loop() 
{
  http.begin(host,httpPort,url1); 
  int httpCode = http.GET();
  String data = http.getString();
  Serial.println(httpCode);
  Serial.println("***************        Data Read        ***************");
  Serial.println(data);
  
  StringSplitter *splitter = new StringSplitter(data, '/', 3);  // new StringSplitter(string_to_split, delimiter, limit)
  int itemCount = splitter->getItemCount();
  Serial.println("***************        Data Splited        ***************");
  Serial.println("Item count: " + String(itemCount));

  for(int i = 0; i < itemCount; i++)
  {
    String item = splitter->getItemAtIndex(i);
    Serial.println("Item @ index " + String(i) + ": " + String(item));
    if(i == 0)
    {
      cases = item;
    }
    if(i == 1)
    {
      death = item;
    }
    if(i == 2)
    {
      recover = item;
    }
  }
  cases.remove(0,26);
  cases.remove(cases.length()-2,cases.length());
  death.remove(0,13);
  death.remove(death.length()-1,death.length());
  recover.remove(0,13);
  recover.remove(recover.length()-8, recover.length());
  
  Serial.println("***************        Data Filtered        ***************");
  Serial.println(cases);
  Serial.println(death);
  Serial.println(recover);
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("COVID-19 Morocco");
  lcd.setCursor(0,1);
  lcd.print("Cases: " + (String) cases);
  delay(3000);
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("COVID-19 Morocco");
  lcd.setCursor(0,1);
  lcd.print("Deaths: " + (String) death);
  delay(3000);
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("COVID-19 Morocco");
  lcd.setCursor(0,1);
  lcd.print("Recover: " + (String) recover);
  delay(3000);
}

Credits

Micro Technology Maker

Micro Technology Maker

1 project • 0 followers

Comments