- Komponenter kreves
- API-lenke for å få Corona Live Data
- Kretsdiagram
- Programmering ESP32 for Covid19 Tracker
- Testing av automatisk hånddesinfiseringsmiddel med Covid19 Tracker
Corona Virus (Covid19) herjer kaos i verden. Nesten alle land lider av Corona-viruset. WHO har allerede kunngjort at det er en pandemisykdom, og mange byer er i en lukkesituasjon, folk kan ikke gå ut av hjemmene sine, og tusenvis har mistet livet. Mange nettsteder tilbyr liveoppdateringer av coronavirus-tilfeller som Microsofts Tracker, Esri's Covid19 Tracker, etc.
I dette prosjektet vil vi bygge en Auto Hand Sanitizer Dispenser med en LCD som også viser antall live Coronavirus-tilfeller. Dette prosjektet vil bruke ESP32, ultralydssensor, 16x2 LCD-modul, vannpumpe og håndrensere. Vi bruker Esris API Explorer for å få live data fra Covid19-infiserte mennesker. En ultralydssensor brukes til å kontrollere tilstedeværelsen av hender under rengjøringsmaskinens utløp. Den vil kontinuerlig beregne avstanden mellom sanitizerutløpet og seg selv og fortelle ESP å slå på pumpen når avstanden er mindre enn 15 cm for å skyve desinfiseringsmidlet ut.
ESP32 brukes som hovedkontroller, det er en Wi-Fi-modul som enkelt kan koble til internett. Vi brukte den tidligere til å bygge mange IoT-baserte prosjekter ved hjelp av ESP32.
Komponenter kreves
- ESP32 Dev-modul
- Ultralydssensor
- 16 * 2 LCD-skjerm
- Relémodul
- Mini DC nedsenkbar pumpe
- Hånddesinfeksjonsmiddel
API-lenke for å få Corona Live Data
Her må vi hente dataene fra internett og deretter sende dem til ESP32 for å vise dem på 16x2 LCD. For det blir en HTTP-get-forespørsel påkalt for å lese JSON-filen fra internett. Her bruker vi API-en levert av Coronavirus Disease GIS Hub. Du kan enkelt kompilere den riktige URL-en for å få de totale bekreftede og gjenopprettede sakene for India, og du kan også endre land / region hvis du vil bruke dette til et annet land.
Klikk nå på “Prøv nå” eller lim inn URL-en til spørringen i en ny nettleser, så vil utdataene fra spørringen se slik ut:
{"objectIdFieldName": "OBJECTID", "uniqueIdField": {"name": "OBJECTID", "isSystemMaintained": true}, "globalIdFieldName": "", "geometryType": "esriGeometryPoint", "spatialReference": {" wkid ": 4326," latestWkid ": 4326}," fields ":," features ":}
Etter å ha fått JSON-dataene, generer du nå koden for å lese JSON-dataene og uttrykker den i henhold til våre behov. For det, gå til ArduinoJson Assistant og lim inn JSON-dataene i Inndata-delen.
Rull nå ned til analyseprogrammet og kopier kodeseksjonen som er nyttig for deg. Jeg kopierte variablene nedenfor, da jeg bare trengte bekreftede og gjenopprettede tilfeller i India.
Kretsdiagram
Det komplette kretsskjemaet for denne Covid19 Tracker og automatisk hånddesinfiseringsmaskin er gitt nedenfor
Vannpumpen er koblet til ESP32 gjennom en relémodul. Vcc og GND-pinner på reléet er koblet til Vin og GND-pinner på ESP32 mens inngangspinnen til reléet er koblet til D19-pinnen på ESP32. Trig og Echo pins på Ultralydssensoren er koblet til D5 og D18 Pins av Arduino.
Komplette tilkoblinger er gitt i tabellen nedenfor.
LCD | ESP32 |
VSS | GND |
VDD | 5V |
VO | Potensiometer |
RS | D22 |
RW | GND |
E | D4 |
D4 | D15 |
D5 | D13 |
D6 | D26 |
D7 | D21 |
EN | 5V |
K | GND |
Ultralydssensor | ESP32 |
Vcc | Vin |
GND | GND |
Trig | D5 |
EKKO | D18 |
Maskinvaren til denne bevegelsessensorhånddesinfiseringsdispenseren vil se slik ut
Programmering ESP32 for Covid19 Tracker
Komplett kode for Auto Hand Sanitizer og CORONA19 Tracker finner du på slutten av siden. Her blir viktige deler av programmet forklart.
Start koden ved å inkludere alle nødvendige bibliotekfiler. HTTPClient-biblioteket brukes til å hente dataene fra HTTP-serveren. ArduinoJson-biblioteket brukes til å uttrykke dataarriser. Her brukes ArduinoJson-biblioteket til å filtrere de bekreftede sakene og gjenopprettet fra dataarrayet vi får fra serveren. LiquidCrystal-biblioteket brukes til LCD-skjermmodulen.
#inkludere
For å få dataene fra serveren, må NodeMCU ESP32 koble seg til internett. For det, skriv inn Wi-Fi SSID og passord i linjene nedenfor.
const char * ssid = "Galaxy-M20"; const char * pass = "ac312124";
Deretter definerer du pinnene der du har koblet til LCD-modulen, ultralydsensoren og relémodulen.
const int rs = 22, en = 4, d4 = 15, d5 = 13, d6 = 26, d7 = 21; LiquidCrystal lcd (rs, en, d4, d5, d6, d7); const int trigPin = 5; const int echoPin = 18; const int pumpe = 19;
Nå går vi inn i API-lenken som ble generert tidligere. Ved å bruke denne lenken vil vi få totalt bekreftede tilfeller og gjenopprettede saker i India. Du kan endre landnavnet i URL-en i henhold til deg.
constchar * url = "https://services1.arcgis.com/0MSEUqKaxRlEPj5g/arcgis/rest/services/ncov_cases/FeatureServer/1/query?f=json&where=(Country_Region=%27India%27)&returnGeometry=false&outFields,Gjenvunnet";
Nå inne i tomrumsoppsettet () , definer Trig and Echo pin på Ultralydsensor som inngangspinner og Relépinne som utgang.
pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); pinMode (pumpe, OUTPUT);
For å lære mer om hvordan Ultralydssensor fungerer, sjekk grensesnittet med Arduino hvor vi har forklart funksjonen til TRIG- og ECHO-pinnen sammen med hvordan den brukes til å beregne avstanden mellom hvilket som helst objekt. Sjekk også andre ultralydbaserte prosjekter.
Etter det, sjekk om ESP er koblet til Wi-Fi, hvis ikke, vil den vente på at ESP kobles til ved å skrive ut “…..” på seriell skjerm.
WiFi.begin (ssid, pass); mens (WiFi.status ()! = WL_CONNECTED) {forsinkelse (500); Serial.print ("."); // skriv ut… til ikke tilkoblet} Serial.println ("WiFi tilkoblet");
Inne i tomrummet ultra () -funksjonen vil vi kontinuerlig beregne avstanden ved hjelp av en ultralydssensor, og hvis avstanden er mindre enn eller lik 15 cm, vil den slå på pumpen i 2 sekunder for å skyve desinfiseringsmidlet ut gjennom røret. Når noen legger hendene under utløpsrøret, vil avstanden reduseres, og pumpen slås på.
ugyldig ultra () {digitalWrite (trigPin, LOW); delayMicroseconds (2); digitalWrite (trigPin, HIGH); delayMicroseconds (10); digitalWrite (trigPin, LOW); varighet = pulseIn (echoPin, HIGH); avstand = varighet * 0,0340 / 2; Serial.println ("Avstand"); Serial.println (avstand); hvis (avstand <= 15) {Serial.print ("Åpningspumpe"); digitalWrite (pumpe, HØY); forsinkelse (2000); digitalWrite (pumpe, LAV); ESP. Omstart (); }}
Nå inne i void loop () -funksjonen, sjekk om JSON-filen mottatt av ESP32 ved å lese den og skrive ut JSON-data på den serielle skjermen ved hjelp av følgende linjer
int httpCode = https.GET (); hvis (httpCode> 0) {// Se etter returkoden String nyttelast = https.getString ();
Etter det, bruk formuleringsprogrammet generert fra ArduinoJson Assistant. Dette formuleringsprogrammet vil gi oss de totale bekreftede og gjenopprettede sakene i India.
JsonArray-felt = doc; JsonObject features_0_attributes = doc; lange funksjoner_0_attributter_Last_Update = funksjoner_0_attributter; int features_0_attributes_Confirmed = features_0_attributes; // int features_0_attributes_Deaths = features_0_attributter; int features_0_attributes_Recovered = features_0_attributes;
Testing av automatisk hånddesinfiseringsmiddel med Covid19 Tracker
Så til slutt er vår batteridrevne håndrensemiddel dispenser klar til å teste. Bare koble maskinvaren i henhold til kretsskjemaet og last opp programmet til ESP32. I begynnelsen skal du se "Covid19 Tracker" & "Hand Sanitizer" -meldingen på LCD-skjermen, og etter noen sekunder vil den vise bekreftede tilfeller og gjenopprettede tilfeller i LCD-skjerm som vist nedenfor.
I likhet med dette kan du få disse dataene for ethvert land ved å gjøre noen endringer i API-lenken. En fullstendig arbeidsvideo og kode er gitt på slutten av siden.