- Komponenter, der kræves
- API-link til at hente Corona Live Data
- Kredsløbsdiagram
- Programmering ESP32 til Covid19 Tracker
- Test af den automatiske håndrensning med Covid19 Tracker
Corona Virus (Covid19) skaber kaos i verden. Næsten alle lande lider under Corona-viruset. WHO har allerede meddelt, at det er en pandemisk sygdom, og mange byer er i en lockdown-situation, folk kan ikke træde ud af deres hjem, og tusinder har mistet deres liv. Mange websteder leverer liveopdateringer af coronavirus-tilfælde som Microsofts Tracker, Esri's Covid19 Tracker osv.
I dette projekt vil vi opbygge en Auto Hand Sanitizer Dispenser med en LCD, der også viser antallet af Coronavirus-sager live. Dette projekt vil bruge ESP32, ultralydssensor, 16x2 LCD-modul, vandpumpe og håndrensning. Vi bruger Esris API Explorer til at hente live-data fra Covid19-inficerede mennesker. En ultralydssensor bruges til at kontrollere tilstedeværelsen af hænder under desinfektionsmaskinens udløb. Den beregner kontinuerligt afstanden mellem desinfektionsudløbet og sig selv og beder ESP om at tænde pumpen, når afstanden er mindre end 15 cm for at skubbe desinfektionsmiddel ud.
ESP32 bruges som hovedcontroller, det er et Wi-Fi-modul, der nemt kan oprette forbindelse til internettet. Vi har tidligere brugt det til at opbygge mange IoT-baserede projekter ved hjælp af ESP32.
Komponenter, der kræves
- ESP32 Dev-modul
- Ultralydssensor
- 16 * 2 LCD-skærm
- Relæmodul
- Mini DC nedsænkelig pumpe
- Hånddesinfektion
API-link til at hente Corona Live Data
Her skal vi hente dataene fra internettet og derefter sende dem til ESP32 for at vise dem på 16x2 LCD. Til det påkræves en HTTP-anmodning om at læse JSON-filen fra internettet. Her bruger vi API'en leveret af Coronavirus Disease GIS Hub. Du kan nemt kompilere den korrekte URL til forespørgsel for at få de samlede bekræftede og gendannede sager for Indien og kan også ændre land / region, hvis du vil bruge dette til et andet land.
Klik nu på "Prøv nu" eller indsæt forespørgsels-URL'en i en ny browser, output af forespørgslen vil se sådan ud:
{"objectIdFieldName": "OBJECTID", "uniqueIdField": {"name": "OBJECTID", "isSystemMaintained": true}, "globalIdFieldName": "", "geometryType": "esriGeometryPoint", "spatialReference": {" wkid ": 4326," latestWkid ": 4326}," fields ":," features ":}
Efter at have fået JSON-dataene skal du nu generere koden for at læse JSON-dataene og sætte dem i overensstemmelse med vores behov. For det skal du gå til ArduinoJson Assistant og indsætte JSON-dataene i afsnittet Input.
Rul nu ned til parseprogrammet, og kopier det kodesektion, der er nyttigt for dig. Jeg kopierede nedenstående variabler, da jeg kun havde brug for de bekræftede og gendannede sager i Indien.
Kredsløbsdiagram
Det komplette kredsløbsdiagram for denne Covid19 Tracker & automatisk håndrensemaskine dispenser maskine er angivet nedenfor
Vandpumpen er forbundet til ESP32 via et relæmodul. Relæet Vcc og GND-stifter er forbundet til Vin- og GND-stifterne på ESP32, mens relæets indgangsstifter er forbundet til D19-stiften på ESP32. Ultralydssensorens trig- og ekko-stifter er tilsluttet D5 og D18 Pins i Arduino.
Komplette forbindelser er angivet i nedenstående tabel.
LCD | ESP32 |
VSS | GND |
VDD | 5V |
VO | Potentiometer |
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 |
Hardwaren til denne Motion Sensor Hand Sanitizer Dispenser vil se sådan ud
Programmering ESP32 til Covid19 Tracker
Komplet kode til Auto Hand Sanitizer og CORONA19 Tracker findes i slutningen af siden. Her forklares vigtige dele af programmet.
Start koden ved at inkludere alle de nødvendige biblioteksfiler. HTTPClient-bibliotek bruges til at hente data fra HTTP-serveren. ArduinoJson-biblioteket bruges til at udtrykke dataarriserne. Her bruges ArduinoJson-biblioteket til at filtrere de bekræftede sager og gendannet fra det dataarray, som vi får fra serveren. LiquidCrystal-biblioteket bruges til LCD-displaymodulet.
#omfatte
For at få data fra serveren skal NodeMCU ESP32 oprette forbindelse til internettet. For det skal du indtaste dit Wi-Fi SSID og din adgangskode i nedenstående linjer.
const char * ssid = "Galaxy-M20"; const char * pass = "ac312124";
Derefter defineres stifterne, hvor du har tilsluttet LCD-modulet, ultralydssensoren og relæmodulet.
konst 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;
Nu går vi ind i API-linket, der er genereret tidligere. Ved hjælp af dette link får vi de samlede bekræftede sager og gendannede sager i Indien. Du kan ændre landets navn i URL'en efter dig.
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, Gendannet ";
Nu inde i tomrumsopsætningen () definerer du Trig and Echo pin på Ultralydssensoren som input-pins og Relay-pin som en output.
pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); pinMode (pumpe, OUTPUT);
For at lære mere om, hvordan ultralydssensor fungerer, skal du kontrollere dens grænseflade med Arduino, hvor vi har forklaret funktionen af dens TRIG- og ECHO-pin sammen med, hvordan den bruges til at beregne afstanden mellem ethvert objekt. Kontroller også andre ultralydsbaserede projekter.
Derefter skal du kontrollere, om ESP er tilsluttet Wi-Fi, hvis ikke venter den på, at ESP opretter forbindelse ved at udskrive “…..” på den serielle skærm.
WiFi.begin (ssid, pass); mens (WiFi.status ()! = WL_CONNECTED) {forsinkelse (500); Serial.print ("."); // udskriv… indtil ikke tilsluttet} Serial.println ("WiFi tilsluttet");
Inde i tomrummet ultra () -funktionen beregner vi kontinuerligt afstanden ved hjælp af en ultralydssensor, og hvis afstanden er mindre end eller lig med 15 cm, tænder den pumpen i 2 sekunder for at skubbe desinficeringsmidlet ud gennem røret. Når nogen lægger hænderne under udløbsrøret, vil afstanden mindskes, og det vil få pumpen til at tænde.
ugyldig ultra () {digitalWrite (trigPin, LOW); forsinkelseMikrosekunder (2); digitalWrite (trigPin, HIGH); forsinkelseMikrosekunder (10); digitalWrite (trigPin, LOW); varighed = pulseIn (echoPin, HIGH); afstand = varighed * 0,0340 / 2; Serial.println ("Distance"); Serial.println (afstand); hvis (afstand <= 15) {Serial.print ("Åbningspumpe"); digitalWrite (pumpe, HIGH); forsinkelse (2000); digitalWrite (pumpe, LAV); ESP. Genstart (); }}
Kontroller nu, om JSON-filen er modtaget af ESP32 ved at læse den og udskrive JSON-data på den serielle skærm ved hjælp af følgende linjer inde i void loop () -funktionen.
int httpCode = https.GET (); hvis (httpCode> 0) {// Kontroller den returnerende kode String nyttelast = https.getString ();
Brug derefter fraseringsprogrammet genereret fra ArduinoJson Assistant. Dette formuleringsprogram giver os de samlede bekræftede og inddrevne tilfælde i Indien.
JsonArray felter = doc; JsonObject features_0_attributes = doc; lange features_0_attributes_Last_Update = features_0_attributter; int features_0_attributes_Confirmed = features_0_attributter; // int features_0_attributes_Deaths = features_0_attributter; int features_0_attributes_Recovered = features_0_attributter;
Test af den automatiske håndrensning med Covid19 Tracker
Så endelig er vores batteridrevne håndrensningsdispenser klar til test. Tilslut bare hardwaren som beskrevet i kredsløbsdiagrammet, og upload programmet til ESP32, i starten skal du se meddelelsen “Covid19 Tracker” & “Hand Sanitizer” på LCD-skærmen, og efter få sekunder vil det vise bekræftede tilfælde og gendannede tilfælde i LCD-skærm som vist nedenfor.
I lighed med dette kan du få disse data til ethvert land ved at foretage nogle ændringer i API-linket. En komplet arbejdsvideo og kode findes i slutningen af siden.