NodeMCU ESP8266 สัปดาห์ที่ 17

 

Morocco COVID-19 Cases Data Tracker

ตัวติดตามข้อมูลการระบาดของ COVID-19 สดสำหรับโมร็อกโก ( NodeMCU IOT, ESP8266)

#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);
}

เว็บ https://www.hackster.io/MICROTechnologyMAKER/morocco-covid-19-cases-data-tracker-25ad2f

ความคิดเห็น