Introduction: Covid-19 Update Tracker Using ESP8266
This is a project shows the current data of the coronavirus outbreak of various cities of states of India in realtime on OLED display. This Live status tracker helps you monitor realtime covid-19 update of your district. This project is completely based on realtime data collected from API. API provided by covid19india.org.
Supplies
- ESP8266-01
- OLED Display
- USB to TTL converter
- Wires
- Xamp Software
Step 1: Get an API
For India, get an free api from postman. I got state wise api which returns a json array with the data of all the sates of India with the sub key we can access all the cities of all the states of India.
API I got--> https://api.covid19india.org/state_district_wise.j...
This returns json array on webpage. But ESP is not able to decode this, we need much simple json which can be sent to our esp. For that creating a php page to simplify the json array and taking only those cities which we require.
Step 2: Creating PHP Script
Download Xampp software form here https://www.apachefriends.org/download.html
Install xampp and click on start button of Apache module.
Step 3: Creating Php Script
Move to folder : C:\xampp\htdocs
Here create folder with any name, I created as Covid.
Inside that folder create a text file rename its extension to php.
Open that file in any text editor I'm using Notepad++.
Now write this php code.
<?php
$url = "https://api.covid19india.org/state_district_wise.json";
$json = file_get_contents($url);
$json = json_decode($json,true);
$amt_conf= $json['Maharashtra']['districtData']['Amravati']['confirmed'];
$amt_dead= $json['Maharashtra']['districtData']['Amravati']['deceased'];
$amt_recov= $json['Maharashtra']['districtData']['Amravati']['recovered'];
$mum_conf= $json['Maharashtra']['districtData']['Mumbai']['confirmed'];
$mum_dead= $json['Maharashtra']['districtData']['Mumbai']['deceased'];
$mum_recov= $json['Maharashtra']['districtData']['Mumbai']['recovered'];
$ngp_conf= $json['Maharashtra']['districtData']['Nagpur']['confirmed'];
$ngp_dead= $json['Maharashtra']['districtData']['Nagpur']['deceased'];
$ngp_recov= $json['Maharashtra']['districtData']['Nagpur']['recovered'];
$pune_conf= $json['Maharashtra']['districtData']['Pune']['confirmed'];
$pune_dead= $json['Maharashtra']['districtData']['Pune']['deceased'];
$pune_recov= $json['Maharashtra']['districtData']['Pune']['recovered'];
$value = array(
"Mumbai"=>array( "confirmed"=>"$mum_conf", "death"=>"$mum_dead", "recovered"=>"$mum_recov" ),
"Pune"=> array( "confirmed"=>"$pune_conf", "death"=>"$pune_dead", "recovered"=>"$pune_recov" ),
"Nagpur"=> array( "confirmed"=>"$ngp_conf", "death"=>"$ngp_dead", "recovered"=>"$ngp_recov" ),
"Amravati"=> array( "confirmed"=>"$amt_conf", "death"=>"$amt_dead", "recovered"=>"$amt_recov" )
);
$j = json_encode($value);
echo $j
?>
Step 4: Understanding the JSON Script
Step 5: Understanding PHP Script
Change name of state and city according to you.
Step 6: Testing PHP Script
access the page from browser.
http://localhost:8081/Covid/covid.php/
Covid is folder name
localhost:8081 --> Remove :8081 if your xampp is using default port.
Access page from lan connected device by replacing localhost to ip address of pc on which xampp is running.
Step 7: Wiring Together
While Uploading code to esp connect gpio 0 to ground.
Step 8: Uploading Code
Read code carefully change data wherever necessary.
Connect gpio0 to gnd, FTDI to 3.3v logic.
In Arduino IDE: select generic esp8266, select com port and click upload.
Step 9: Results
Yeahh! We are done with our project.
For this project to work you need to turn on xampp server all the time so if you want it to run without pc to remain turn on, you can take hosting service where you place that php page and replace ip address in arduino code to url of your hosting. So now you can fetch record directly without local xampp server.
Try it.... Hope you like it and tell me how it is in comments down below....
Thank you...