- Súčasti sú povinné
- Odkaz na API na získanie údajov Corona Live
- Schéma zapojenia
- Programovanie ESP32 pre Covid19 Tracker
- Testovanie automatického dezinfekčného prostriedku na ruky pomocou nástroja Covid19 Tracker
Vírus Corona (Covid19) spôsobuje vo svete chaos. Takmer každá krajina trpí vírusom Corona. WHO už ohlásila pandemickú chorobu a mnoho miest je v uzamknutej situácii, ľudia nemôžu vystúpiť zo svojich domovov a tisíce ľudí prišli o život. Mnoho webových stránok poskytuje živé aktualizácie prípadov koronavírusu, ako je Microsoft Tracker, Esri's Covid19 Tracker atď.
V tomto projekte postavíme automatický dávkovač dezinfekčných prostriedkov na ruky s LCD displejom, ktorý zobrazuje aj živý počet prípadov koronavírusu. Tento projekt bude využívať ESP32, ultrazvukový senzor, modul LCD 16x2, vodné čerpadlo a dezinfekciu rúk. Na získanie živých údajov o infikovaných ľuďoch Covid19 používame prehliadač API od spoločnosti Esri. Ultrazvukový senzor sa používa na kontrolu prítomnosti rúk pod výstupom zo zariadenia na dezinfekciu. Neustále bude počítať vzdialenosť medzi výstupom sanitizéra a ním samým a povie ESP, aby zaplo čerpadlo, kedykoľvek je vzdialenosť menšia ako 15 cm, aby sanitizér vytlačil.
Ako hlavný radič sa používa ESP32, ide o modul Wi-Fi, ktorý sa dá ľahko pripojiť k internetu. Predtým sme ho použili na vytvorenie mnohých projektov založených na IoT pomocou protokolu ESP32.
Súčasti sú povinné
- Modul ESP32 Dev
- Ultrazvukový senzor
- 16 * 2 LCD displej
- Reléový modul
- Mini DC ponorné čerpadlo
- Prípravok na dezinfekciu rúk
Odkaz na API na získanie údajov Corona Live
Tu musíme získať dáta z internetu a potom ich odoslať na ESP32, aby sme ich zobrazili na 16x2 LCD. Za týmto účelom sa vyvolá požiadavka HTTP get na načítanie súboru JSON z internetu. Tu používame API poskytované Coronavirus Disease GIS Hub. Môžete ľahko zostaviť správnu adresu URL dopytu, aby ste získali celkový počet potvrdených a vymožených prípadov pre Indiu. Môžete tiež zmeniť krajinu alebo región, ak ich chcete použiť pre inú krajinu.
Teraz kliknite na „Vyskúšať“ alebo vložte adresu URL dotazu do nového prehliadača, výstup z tohto dotazu bude vyzerať takto:
{"objectIdFieldName": "OBJECTID", "uniqueIdField": {"name": "OBJECTID", "isSystemMaintained": true}, "globalIdFieldName": "", "geometryType": "esriGeometryPoint", "spatialReference": {" wkid ": 4326," latestWkid ": 4326}," fields ":," features ":}
Po získaní údajov JSON teraz vygenerujte kód na načítanie údajov JSON a formulujte ich podľa našich potrieb. Prejdite na to do nástroja ArduinoJson Assistant a vložte údaje JSON do sekcie Vstup.
Teraz prejdite nadol na program analýzy a skopírujte časť kódu, ktorá je pre vás užitočná. Skopíroval som nižšie uvedené premenné, pretože som potreboval iba potvrdené a obnovené prípady v Indii.
Schéma zapojenia
Kompletná schéma zapojenia pre tento stroj Covid19 Tracker a automatický dávkovač dezinfekcie rúk je uvedený nižšie
Vodné čerpadlo je pripojené k ESP32 cez reléový modul. Kolíky Vcc a GND relé sú pripojené k pinom Vin a GND ESP32, zatiaľ čo vstupný kolík relé je pripojený k kolíku D19 ESP32. Kolíky Trig a Echo ultrazvukového snímača sú spojené s kolíkmi D5 a D18 Arduina.
Kompletné pripojenia sú uvedené v nasledujúcej tabuľke.
LCD | ESP32 |
VSS | GND |
VDD | 5V |
VO | Potenciometer |
RS | D22 |
RW | GND |
E | D4 |
D4 | D15 |
D5 | D13 |
D6 | D26 |
D7 | D21 |
A | 5V |
K | GND |
Ultrazvukový senzor | ESP32 |
Vcc | Vin |
GND | GND |
Trig | D5 |
ECHO | D18 |
Hardvér pre tento dávkovač dezinfekcie rúk a dezinfekčných prostriedkov bude vyzerať takto
Programovanie ESP32 pre Covid19 Tracker
Kompletný kód pre Auto Hand Sanitizer a CORONA19 Tracker nájdete na konci stránky. Tu sú vysvetlené dôležité časti programu.
Spustite kód zahrnutím všetkých požadovaných súborov knižnice. Knižnica HTTPClient sa používa na získanie údajov zo servera HTTP. Knižnica ArduinoJson sa používa na vyjadrenie údajových polí. Tu sa používa knižnica ArduinoJson na filtrovanie potvrdených prípadov a obnovených z dátového poľa, ktoré získavame zo servera. Pre modul LCD displeja sa používa knižnica LiquidCrystal.
#include
Na získanie údajov zo servera musí byť NodeMCU ESP32 pripojený k internetu. Za týmto účelom zadajte svoje Wi-Fi SSID a heslo do nasledujúcich riadkov.
const char * ssid = "Galaxy-M20"; const char * pass = "ac312124";
Potom definujte kolíky, ku ktorým ste pripojili modul LCD, ultrazvukový senzor a modul relé.
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; konšt. čerpadlo = 19;
Teraz zadáme odkaz na API, ktorý je vygenerovaný skôr. Pomocou tohto odkazu dostaneme celkový počet potvrdených a zotavených prípadov v Indii. Názov krajiny môžete zmeniť v adrese URL podľa seba.
constchar * url = "https://services1.arcgis.com/0MSEUqKaxRlEPj5g/arcgis/rest/services/ncov_cases/FeatureServer/1/query?f=json&where=(Country_Region=%27India%27)&returnGeometry=false&out_ield_outs, Obnovené ";
Teraz vo vnútri neplatného nastavenia () definujte kolík Trig a Echo ultrazvukového snímača ako vstupné kolíky a kolík relé ako výstup.
pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); pinMode (čerpadlo, VÝSTUP);
Ak sa chcete dozvedieť viac o tom, ako funguje ultrazvukový snímač, skontrolujte jeho prepojenie s rozhraním Arduino, kde sme vysvetlili funkciu jeho kolíka TRIG a ECHO spolu s tým, ako sa používa na výpočet vzdialenosti medzi ľubovoľnými objektmi. Skontrolujte tiež ďalšie projekty založené na ultrazvuku.
Potom skontrolujte, či je ESP pripojený k Wi-Fi, ak nie, počká na pripojenie ESP vytlačením „…..“ na sériový monitor.
WiFi.begin (ssid, pass); while (WiFi.status ()! = WL_CONNECTED) {oneskorenie (500); Serial.print ("."); // tlač… kým nie je pripojený} Serial.println ("WiFi pripojený");
Vo vnútri funkcie void ultra () budeme nepretržite počítať vzdialenosť pomocou ultrazvukového snímača a ak je vzdialenosť menšia alebo rovná 15 cm, potom na 2 sekundy zapne čerpadlo, aby sanitizér vytlačil potrubím von. Je zrejmé, že keď niekto dá ruky pod výstupné potrubie, vzdialenosť sa zníži a spustí sa spustenie čerpadla.
void ultra () {digitalWrite (trigPin, LOW); delayMicroseconds (2); digitalWrite (trigPin, HIGH); delayMicroseconds (10); digitalWrite (trigPin, LOW); duration = pulseIn (echoPin, HIGH); vzdialenosť = trvanie * 0,0340 / 2; Serial.println ("vzdialenosť"); Serial.println (vzdialenosť); if (vzdialenosť <= 15) {Serial.print ("Otváracie čerpadlo"); digitalWrite (pumpa, VYSOKÁ); meškanie (2000); digitalWrite (pumpa, NÍZKA); ESP.restart (); }}
Teraz vo vnútri funkcie void loop () skontrolujte, či súbor JSON prijal ESP32, a to tak, že si ho prečítate a vytlačíte údaje JSON na sériovom monitore pomocou nasledujúcich riadkov
int httpCode = https.GET (); if (httpCode> 0) {// Skontrolujte návratový kód String payload = https.getString ();
Potom použite frázovací program vygenerovaný z aplikácie ArduinoJson Assistant. Tento program vytvárania fráz poskytuje celkové potvrdené a získané prípady v Indii.
Polia JsonArray = doc; JsonObject features_0_attributes = doc; long features_0_attributes_Last_Update = features_0_attributes; int features_0_attributes_Confirmed = features_0_attributes; // int features_0_attributes_Deaths = features_0_attributes; int features_0_attributes_Recovered = features_0_attributes;
Testovanie automatického dezinfekčného prostriedku na ruky pomocou nástroja Covid19 Tracker
Takže konečne je náš batériový automat na dezinfekciu rúk pripravený na testovanie. Jednoducho pripojte hardvér podľa schémy zapojenia a nahrajte program do ESP32. Na začiatku by ste mali na LCD vidieť správu „Covid19 Tracker“ a „Hand Sanitizer“ a potom po niekoľkých sekundách zobrazí potvrdené a obnovené prípady v Obrazovka LCD, ako je znázornené nižšie.
Podobné údaje môžete získať pre ktorúkoľvek krajinu vykonaním určitých zmien v prepojení API. Kompletné pracovné video a kód je uvedený na konci tejto stránky.