- Būtini komponentai
- API nuoroda norint gauti „Corona Live Data“
- Grandinės schema
- ESP32 programavimas „Covid19 Tracker“
- Automatinio rankų dezinfekavimo priemonės testavimas naudojant „Covid19 Tracker“
Koronos virusas (Covid19) daro siaubą pasaulyje. Beveik kiekviena šalis kenčia nuo Corona viruso. PSO jau paskelbė, kad tai yra pandeminė liga, o daugelyje miestų yra užrakinta padėtis, žmonės negali išeiti iš savo namų, o tūkstančiai žmonių neteko gyvybės. Daugelis svetainių teikia tiesioginius koronaviruso atvejų atnaujinimus, pvz., „Microsoft Tracker“, „Esri“ „Covid19 Tracker“ ir kt.
Šiame projekte sukursime automatinį rankų dezinfekavimo prietaisą su skystųjų kristalų ekranu, kuris taip pat parodo tiesioginį koronaviruso atvejų skaičių. Šiame projekte bus naudojamas ESP32, ultragarso jutiklis, 16x2 LCD modulis, vandens siurblys ir rankų dezinfekavimo priemonė. Mes naudojame „Esri“ API Explorer, kad gautume tiesioginius Covid19 užkrėstų žmonių duomenis. Ultragarsinis jutiklis naudojamas patikrinti, ar rankos yra žemiau dezinfekavimo mašinos išleidimo angos. Jis nuolat skaičiuos atstumą tarp dezinfekavimo priemonės išleidimo angos ir pats ir paliks ESP įjungti siurblį, kai atstumas yra mažesnis nei 15 cm, kad išstumtų dezinfekavimo priemonę.
ESP32 naudojamas kaip pagrindinis valdiklis, tai yra „Wi-Fi“ modulis, kuris gali lengvai prisijungti prie interneto. Anksčiau jį naudojome kurdami daugelį daiktais pagrįstų interneto projektų, naudodami ESP32.
Būtini komponentai
- ESP32 „Dev“ modulis
- Ultragarsinis jutiklis
- 16 * 2 LCD ekranas
- Relės modulis
- Mini DC panardinamasis siurblys
- Rankų dezinfekcinės priemonės
API nuoroda norint gauti „Corona Live Data“
Čia turime gauti duomenis iš interneto ir nusiųsti juos į ESP32, kad jie būtų rodomi 16x2 LCD ekrane. Tam norint gauti JSON failą iš interneto, iškviečiama HTTP gavimo užklausa. Čia mes naudojame koronaviruso ligos GIS centro teikiamą API. Galite lengvai sukompiliuoti teisingą užklausos URL, kad gautumėte visus patvirtintus ir atkurtus Indijos atvejus, taip pat galite pakeisti šalį / regioną, jei norite tai naudoti kitoje šalyje.
Dabar spustelėkite „Išbandyti dabar“ arba įklijuokite užklausos URL į naują naršyklę. Šios užklausos išvestis atrodys taip:
{"objectIdFieldName": "OBJECTID", "uniqueIdField": {"name": "OBJECTID", "isSystemMaintained": true}, "globalIdFieldName": "", "geometryType": "esriGeometryPoint", "spatialReference": {" wkid ": 4326," latestWkid ": 4326}," laukai ":," funkcijos ":}
Gavę JSON duomenis, dabar sugeneruokite kodą, kad galėtumėte perskaityti JSON duomenis, ir suformuluokite juos pagal mūsų poreikius. Norėdami tai padaryti, eikite į „ArduinoJson“ padėjėją ir įklijuokite JSON duomenis įvesties skyriuje.
Dabar slinkite žemyn iki analizavimo programos ir nukopijuokite jums naudingą kodo skyrių. Nukopijavau žemiau pateiktus kintamuosius, nes Indijoje man reikėjo tik patvirtintų ir atkurtų atvejų.
Grandinės schema
Visa šios „ Covid19 Tracker“ ir automatinio rankų dezinfekatoriaus dozatoriaus grandinės schema pateikta žemiau
Vandens siurblys yra prijungtas prie ESP32 per relės modulį. Relės „Vcc“ ir „GND“ kaiščiai yra prijungti prie „ESP32“ „Vin“ ir „GND“ kaiščių, o relės įvesties kaištis prijungtas prie „ESP32“ D19 kaiščio. Ultragarsinio jutiklio „Trig“ ir „Echo“ kaiščiai yra prijungti prie „Arduino“ D5 ir D18 kaiščių.
Visi ryšiai pateikti žemiau esančioje lentelėje.
LCD ekranas | ESP32 |
VSS | BND |
VDD | 5V |
VO | Potenciometras |
RS | D22 |
RW | BND |
E | D4 |
D4 | D15 |
D5 | D13 |
D6 | D26 |
D7 | D21 |
A | 5V |
K. | BND |
Ultragarsinis jutiklis | ESP32 |
Vcc | Vin |
BND | BND |
Trig | D5 |
ECHO | D18 |
Šio judesio jutiklio rankinio dezinfekavimo aparato aparatūra atrodys taip
ESP32 programavimas „Covid19 Tracker“
Visą „ Auto Hand Sanitizer“ ir „CORONA19 Tracker“ kodą rasite puslapio pabaigoje. Čia paaiškinamos svarbios programos dalys.
Paleiskite kodą įtraukdami visus reikalingus bibliotekos failus. „HTTPClient“ biblioteka naudojama duomenims gauti iš HTTP serverio. „ArduinoJson“ biblioteka naudojama duomenų masyvams suformuluoti. Čia „ArduinoJson“ biblioteka naudojama filtruoti patvirtintus atvejus ir atkurti iš duomenų masyvo, kurį gauname iš serverio. „LiquidCrystal“ biblioteka naudojama LCD ekrano moduliui.
# įtraukti
Norėdami gauti duomenis iš serverio, „NodeMCU ESP32“ turi prisijungti prie interneto. Tam žemiau esančiose eilutėse įveskite savo „Wi-Fi“ SSID ir slaptažodį.
const char * ssid = "Galaxy-M20"; const char * pass = "ac312124";
Po to nustatykite kaiščius, prie kurių prijungėte LCD modulį, ultragarso jutiklį ir relės modulį.
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 siurblys = 19;
Dabar įvedame anksčiau sugeneruotą API nuorodą. Naudodamiesi šia nuoroda gausime bendrą patvirtintų atvejų ir atkurtų atvejų Indijoje skaičių. Šalies pavadinimą URL galite pakeisti pagal save.
constchar * url = "https://services1.arcgis.com/0MSEUqKaxRlEPj5g/arcgis/rest/services/ncov_cases/FeatureServer/1/query?f=json&where=(Country_Region=%27India%27)&returnGeometry=false, Atsigavo “;
Dabar tuščios sąrankos viduje () ultragarso jutiklio „Trig“ ir „Echo“ kaiščius apibrėžkite kaip įvesties kaiščius, o „Relay“ kaištį - kaip išvestį.
pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); pinMode (siurblys, OUTPUT);
Norėdami sužinoti daugiau apie ultragarso jutiklio veikimą, patikrinkite jo sąsają su „Arduino“, kur mes paaiškinome jo „TRIG“ ir „ECHO“ kaiščio funkciją bei tai, kaip jis naudojamas apskaičiuojant atstumą tarp bet kurio objekto. Taip pat patikrinkite kitus ultragarsu pagrįstus projektus.
Po to patikrinkite, ar ESP yra prijungtas prie „Wi-Fi“, jei ne, jis palauks, kol ESP prisijungs, spausdindamas serijos monitoriuje „…..“.
„WiFi.begin“ (ssid, pass); while (WiFi.status ()! = WL_CONNECTED) {delsa (500); Serijinis spaudinys ("."); // spausdinti… kol neprisijungta} Serial.println („WiFi prijungtas“);
Funkcijos „ void ultra ()“ viduje mes nuolat skaičiuosime atstumą naudodami ultragarso jutiklį ir, jei atstumas yra mažesnis arba lygus 15 cm, jis 2 sekundes įjungs siurblį, kad dezinfekavimo priemonė stumtų lauke pro vamzdį. Nepamiršta, kai kas nors pakiš rankas žemiau išleidimo vamzdžio, atstumas sumažės ir tai paskatins siurblį įsijungti.
void ultra () {digitalWrite (trigPin, LOW); vėlavimasMikrosekundės (2); „digitalWrite“ (trigPin, HIGH); vėlavimasMikrosekundės (10); „digitalWrite“ (trigPin, LOW); trukmė = pulseIn (echoPin, HIGH); atstumas = trukmė * 0,0340 / 2; Serial.println ("Atstumas"); Serial.println (atstumas); if (atstumas <= 15) {Serial.print ("Atidaromas siurblys"); „digitalWrite“ (siurblys, AUKŠTAS); vėlavimas (2000); digitalWrite (siurblys, LOW); ESP. Paleiskite iš naujo (); }}
Dabar funkcijos „ void loop ()“ viduje patikrinkite, ar JSON failą gavo ESP32, perskaitydami jį ir spausdindami JSON duomenis serijiniame monitoriuje naudodami šias eilutes
int httpCode = https.GET (); if (httpCode> 0) {// Patikrinkite, ar nėra grąžinimo kodo String payload = https.getString ();
Po to naudokite frazavimo programą, sukurtą iš „ ArduinoJson Assistant“. Ši frazių programa suteiks mums visus patvirtintus ir atgautus atvejus Indijoje.
JsonArray laukai = doc; „JsonObject“ funkcijos_0_atributai = doc; ilgi požymiai_0_atributai_Paskutinis_atnaujinimas = features_0_atributai; int features_0_attributes_Confirmed = features_0_attributes; // int features_0_attributes_Deaths = features_0_attributes; int features_0_attributes_Recovered = features_0_attributes;
Automatinio rankų dezinfekavimo priemonės testavimas naudojant „Covid19 Tracker“
Taigi pagaliau mūsų baterijomis valdomas rankų dezinfekavimo aparatas yra paruoštas išbandyti. Tiesiog prijunkite aparatinę įrangą pagal grandinės schemą ir įkelkite programą į ESP32. Pradžioje LCD ekrane turėtumėte pamatyti pranešimą „Covid19 Tracker“ ir „Rankų dezinfekavimo priemonė“, o po kelių sekundžių jis parodys patvirtintus atvejus ir atkurtus atvejus. LCD ekranas, kaip parodyta žemiau.
Panašiai kaip ir jūs, galite gauti bet kurios šalies duomenis atlikę keletą pakeitimų API nuorodoje. Pilnas darbo vaizdo ir kodas yra duotas puslapio pabaigoje.