- Potrebne komponente
- Povezava API za pridobivanje podatkov Corona Live
- Shema vezja
- Programiranje ESP32 za Covid19 Tracker
- Testiranje samodejnega razkužila za roke s programom Covid19 Tracker
Virus Corona (Covid19) na svetu povzroča opustošenje. Skoraj vse države trpijo za virusom Corona. SZO je že napovedal, da je to pandemična bolezen, številna mesta pa so zaprta, ljudje ne morejo stopiti iz svojih domov in na tisoče jih je izgubilo življenje. Številna spletna mesta ponujajo posodobitve primerov koronavirusa v živo, kot so Microsoftov Tracker, Esri's Covid19 Tracker itd.
V tem projektu bomo zgradili samodejni razpršilnik za roke z LCD-zaslonom, ki prikazuje tudi število primerov koronavirusa v živo. Ta projekt bo uporabil ESP32, ultrazvočni senzor, 16x2 LCD modul, vodno črpalko in sredstvo za razkuževanje rok. Esri-jev API Explorer uporabljamo za pridobivanje podatkov v živo o okuženih s Covid19. Ultrazvočni senzor se uporablja za preverjanje prisotnosti rok pod izhodom naprave za razkuževanje. Neprekinjeno bo izračunal razdaljo med izhodom za razkužilo in samim seboj ter naročil ESP, naj vklopi črpalko, kadar je razdalja manjša od 15 cm, da potisne razkužilo ven.
ESP32 se uporablja kot glavni krmilnik, je modul Wi-Fi, ki ga je mogoče enostavno povezati z internetom. Prej smo ga uporabili za gradnjo številnih projektov, ki temeljijo na IoT, z uporabo ESP32.
Potrebne komponente
- Razvojni modul ESP32
- Ultrazvočni senzor
- 16 * 2 LCD zaslon
- Relejni modul
- Mini potopna črpalka DC
- Razkužilo za roke
Povezava API za pridobivanje podatkov Corona Live
Tu moramo podatke pridobiti z interneta in jih nato poslati na ESP32, da se prikažejo na LCD 16x2. Za to se zahteva branje zahteve HTTP za branje datoteke JSON iz interneta. Tu uporabljamo API, ki ga ponuja GIS Hub Coronavirus Disease. Z lahkoto lahko sestavite pravilen URL poizvedbe, da dobite skupno število potrjenih in obnovljenih primerov za Indijo, lahko pa tudi spremenite državo / regijo, če želite to uporabiti za drugo državo.
Zdaj kliknite »Poskusi zdaj« ali prilepite URL poizvedbe v nov brskalnik, rezultat te poizvedbe bo videti tako:
{"objectIdFieldName": "OBJECTID", "uniqueIdField": {"name": "OBJECTID", "isSystemMaintain": true}, "globalIdFieldName": "", "geometryType": "esriGeometryPoint", "spatialReference": {" wkid ": 4326," latestWkid ": 4326}," polja ":," lastnosti ":}
Po pridobitvi podatkov JSON zdaj ustvarite kodo za branje podatkov JSON in jo stavite glede na naše potrebe. Za to pojdite na ArduinoJson Assistant in prilepite podatke JSON v razdelek Vnos.
Zdaj se pomaknite navzdol do programa za razčlenjevanje in kopirajte odsek kode, ki je koristen za vas. Kopiral sem spodnje spremenljivke, ker sem potreboval le potrjene in obnovljene primere v Indiji.
Shema vezja
Popoln diagram vezja za ta stroj za sledenje in samodejno razkuževanje rok Covid19 je podan spodaj
Vodna črpalka je na rele ESP32 povezana z relejskim modulom. Vcc in GND zatiči releja so povezani z Vin in GND zatiči ESP32, medtem ko je vhodni zatič releja povezan z D19 zatičem ESP32. Trig in Echo zatiči ultrazvočnega senzorja so povezani z D5 in D18 zatiči Arduino.
Popolne povezave so podane v spodnji tabeli.
LCD | ESP32 |
VSS | GND |
VDD | 5V |
GLAS | Potenciometer |
RS | D22 |
RW | GND |
E | D4 |
D4 | D15 |
D5 | D13 |
D6 | D26 |
D7 | D21 |
A | 5V |
K | GND |
Ultrazvočni senzor | ESP32 |
Vcc | Vin |
GND | GND |
Trig | D5 |
ECHO | D18 |
Strojna oprema tega razpršilnika za ročno zaznavalo gibanja bo videti tako
Programiranje ESP32 za Covid19 Tracker
Popolno kodo za samodejno razkuževanje rok in sledilnik CORONA19 najdete na koncu strani. Tu so razloženi pomembni deli programa.
Zaženite kodo tako, da vključite vse potrebne knjižnične datoteke. Knjižnica HTTPClient se uporablja za pridobivanje podatkov s strežnika HTTP. Knjižnica ArduinoJson se uporablja za fraziranje podatkovnih nizov. Tu se knjižnica ArduinoJson uporablja za filtriranje potrjenih primerov in obnovitev iz podatkovnega polja, ki ga dobimo s strežnika. Za modul LCD zaslona se uporablja knjižnica LiquidCrystal.
#include
Za pridobitev podatkov s strežnika se mora NodeMCU ESP32 povezati z internetom. Za to v spodnji vrstici vnesite SSID in geslo za Wi-Fi.
const char * ssid = "Galaxy-M20"; const char * pass = "ac312124";
Nato določite nožice, na katere ste priključili LCD modul, ultrazvočni senzor in modul releja.
const int rs = 22, en = 4, d4 = 15, d5 = 13, d6 = 26, d7 = 21; LCD LiquidCrystal (rs, en, d4, d5, d6, d7); const int trigPin = 5; const int echoPin = 18; const int črpalka = 19;
Zdaj vnesemo povezavo API, ki je bila prej ustvarjena. S to povezavo bomo dobili skupno število potrjenih primerov in obnovljenih primerov v Indiji. V državi lahko v URL-ju spremenite ime države.
constchar * url = "https://services1.arcgis.com/0MSEUqKaxRlEPj5g/arcgis/rest/services/ncov_cases/FeatureServer/1/query?f=json&where=(Country_Region=%27India%27)&returnGeometry=falionfreak&outurnoutgeoutry, Obnovljeno ";
Zdaj v nastavitvi za praznino () določite zatič Trig in Echo ultrazvočnega senzorja kot vhodni zatič, relejski zatič pa kot izhod.
pinMode (trigPin, IZHOD); pinMode (echoPin, INPUT); pinMode (črpalka, IZHOD);
Če želite izvedeti več o delovanju ultrazvočnega senzorja, preverite njegovo povezavo z Arduinom, kjer smo razložili delovanje njegovega zatiča TRIG in ECHO ter kako se uporablja za izračun razdalje med katerim koli predmetom. Preverite tudi druge projekte, ki temeljijo na ultrazvoku.
Po tem preverite, ali je ESP povezan z Wi-Fi, če ne, bo počakal, da se ESP poveže, tako da na serijski monitor natisnete “…..”.
WiFi.begin (ssid, pass); medtem ko (WiFi.status ()! = WL_CONNECTED) {zamuda (500); Serial.print ("."); // tiskanje… dokler ni povezan} Serial.println ("WiFi povezan");
Znotraj funkcije void ultra () bomo z ultrazvočnim senzorjem neprestano izračunavali razdaljo in če je razdalja manjša ali enaka 15 cm, bo za dve sekundi vklopila črpalko, da razkužilo potisne ven skozi cev. Očitno, ko nekdo položi roke pod izstopno cev, se razdalja zmanjša in sproži črpalko.
void ultra () {digitalWrite (trigPin, LOW); delayMicroseconds (2); digitalWrite (trigPin, HIGH); delayMicroseconds (10); digitalWrite (trigPin, LOW); trajanje = pulseIn (echoPin, HIGH); razdalja = trajanje * 0,0340 / 2; Serial.println ("Razdalja"); Serial.println (razdalja); if (razdalja <= 15) {Serial.print ("Črpalka za odpiranje"); digitalWrite (črpalka, VISOKO); zamuda (2000); digitalWrite (črpalka, LOW); ESP.restart (); }}
Zdaj znotraj funkcije void loop () preverite, ali je datoteko JSON prejela ESP32, tako da jo preberete in natisnete podatke JSON na serijski monitor z uporabo naslednjih vrstic
int httpCode = https.GET (); if (httpCode> 0) {// Preveri povratno kodo String payload = https.getString ();
Po tem uporabite program za fraziranje, ustvarjen iz ArduinoJson Assistant. Ta program za fraziranje nam bo pokazal skupno število potrjenih in izterjanih primerov v Indiji.
Polja JsonArray = doc; JsonObject features_0_attributes = doc; dolga 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;
Testiranje samodejnega razkužila za roke s programom Covid19 Tracker
Tako je končno naš razpršilnik za razkužila za roke na baterije pripravljen za testiranje. Preprosto priključite strojno opremo v skladu s shemo vezja in naložite program v ESP32, na začetku bi morali na LCD-prikazovalniku videti sporočilo "Covid19 Tracker" in "Hand Sanitizer", nato pa bo čez nekaj sekund prikazalo potrjene primere in obnovljene primere v LCD zaslon, kot je prikazano spodaj.
Podobno temu lahko te podatke dobite za katero koli državo tako, da spremenite povezavo API. Na koncu strani sta celotni delujoči video in koda.