- Nepieciešamās sastāvdaļas
- API saite Corona Live Data iegūšanai
- Ķēdes shēma
- ESP32 programmēšana programmai Covid19 Tracker
- Automātiskā roku dezinfekcijas līdzekļa testēšana ar Covid19 Tracker
Koronas vīruss (Covid19) rada postījumus pasaulē. Gandrīz katra valsts cieš no Koronas vīrusa. PVO jau ir paziņojusi par pandēmijas slimību, un daudzās pilsētās ir slēgšanas situācija, cilvēki nevar iziet no mājām, un tūkstošiem cilvēku ir zaudējuši dzīvību. Daudzās vietnēs tiek nodrošināti koronavīrusa gadījumu tiešraides atjauninājumi, piemēram, Microsoft Tracker, Esri Covid19 Tracker utt.
Šajā projektā mēs izveidosim automātisko roku dezinfekcijas aparātu ar LCD, kas parāda arī koronavīrusa gadījumu tiešo skaitīšanu. Šajā projektā tiks izmantots ESP32, ultraskaņas sensors, 16x2 LCD modulis, ūdens sūknis un roku sanitizer. Mēs izmantojam Esri API Explorer, lai iegūtu tiešos Covid19 inficēto cilvēku datus. Ultraskaņas sensoru izmanto, lai pārbaudītu roku klātbūtni zem sanitārijas mašīnas izejas. Tas nepārtraukti aprēķinās attālumu starp attīrīšanas līdzekļa izeju un sevi un liks ESP ieslēgt sūkni ikreiz, kad attālums ir mazāks par 15 cm, lai izspiestu attīrītāju.
ESP32 tiek izmantots kā galvenais kontrolieris, tas ir Wi-Fi modulis, kas var viegli izveidot savienojumu ar internetu. Iepriekš to izmantojām, lai izveidotu daudzus IoT balstītus projektus, izmantojot ESP32.
Nepieciešamās sastāvdaļas
- ESP32 Dev modulis
- Ultraskaņas sensors
- 16 * 2 LCD displejs
- Releja modulis
- Mini DC zemūdens sūknis
- Roku dezinfekcijas līdzeklis
API saite Corona Live Data iegūšanai
Šeit mums jāiegūst dati no interneta un pēc tam jānosūta uz ESP32, lai tos parādītu 16x2 LCD ekrānā. Šim nolūkam tiek izsaukts HTTP saņemšanas pieprasījums, lai lasītu JSON failu no interneta. Šeit mēs izmantojam koronavīrusa slimības GIS centra nodrošināto API. Jūs varat viegli apkopot pareizo vaicājuma URL, lai iegūtu kopējos apstiprinātos un atkoptos Indijas gadījumus, kā arī mainīt valsti / reģionu, ja vēlaties to izmantot citai valstij.
Tagad noklikšķiniet uz “Izmēģināt tūlīt” vai ielīmējiet vaicājuma URL jaunā pārlūkprogrammā, šī vaicājuma izvade izskatīsies šādi:
{"objectIdFieldName": "OBJECTID", "uniqueIdField": {"name": "OBJECTID", "isSystemMaintained": true}, "globalIdFieldName": "", "geometryType": "esriGeometryPoint", "spatialReference": {" wkid ": 4326," latestWkid ": 4326}," fields ":," features ":}
Pēc JSON datu iegūšanas tagad ģenerējiet kodu, lai lasītu JSON datus, un formulējiet tos atbilstoši mūsu vajadzībām. Lai to izdarītu, dodieties uz ArduinoJson palīgu un Ievades sadaļā ielīmējiet JSON datus.
Tagad ritiniet uz leju līdz parsēšanas programmai un nokopējiet jums noderīgo sadaļu. Es nokopēju zemāk minētos mainīgos, jo man vajadzēja tikai apstiprinātus un atgūtus gadījumus Indijā.
Ķēdes shēma
Pilna šīs Covid19 Tracker un automātiskās rokas dezinfekcijas automāta shēmas shēma ir sniegta zemāk
Ūdens sūknis ir savienots ar ESP32, izmantojot releja moduli. Releja Vcc un GND tapas ir savienotas ar ESP32 Vin un GND tapām, savukārt releja ievades tapa ir savienota ar ESP32 D19 kontaktu. Ultraskaņas sensora Trig un Echo tapas ir savienotas ar Arduino D5 un D18 tapām.
Pilnīgi savienojumi ir norādīti zemāk esošajā tabulā.
LCD | ESP32 |
VSS | GND |
VDD | 5V |
VO | Potenciometrs |
RS | D22 |
RW | GND |
E | D4 |
D4 | D15 |
D5 | D13 |
D6 | D26 |
D7 | D21 |
A | 5V |
K | GND |
Ultraskaņas sensors | ESP32 |
Vcc | Vins |
GND | GND |
Trig | D5 |
ECHO | D18 |
Šī kustības sensora rokas dezinfekcijas aparāta aparatūra izskatīsies šādi
ESP32 programmēšana programmai Covid19 Tracker
Pilnīgs automātiskās roku tīrīšanas un CORONA19 izsekotāja kods ir atrodams lapas beigās. Šeit ir izskaidrotas svarīgas programmas daļas.
Sāciet kodu, iekļaujot visus nepieciešamos bibliotēkas failus. HTTPClient bibliotēka tiek izmantota, lai iegūtu datus no HTTP servera. ArduinoJson bibliotēka tiek izmantota, lai formulētu datu masīvus. ArduinoJson bibliotēka tiek izmantota, lai filtrētu Apstiprinātos gadījumus un Atgūtos no datu masīva, ko mēs iegūstam no servera. LiquidCrystal bibliotēka tiek izmantota LCD displeja modulim.
# iekļaut
Lai iegūtu datus no servera, NodeMCU ESP32 ir jāizveido savienojums ar internetu. Lai to izdarītu, zemāk esošajās rindiņās ievadiet savu Wi-Fi SSID un paroli.
const char * ssid = "Galaxy-M20"; const char * pass = "ac312124";
Pēc tam definējiet tapas, kur esat pievienojis LCD moduli, ultraskaņas sensoru un releja moduli.
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 sūknis = 19;
Tagad mēs ievadām API saiti, kas tiek ģenerēta agrāk. Izmantojot šo saiti, mēs iegūsim kopējo apstiprināto gadījumu skaitu un atjaunotos gadījumus Indijā. Jūs varat mainīt valsts nosaukumu vietrādī URL atbilstoši jums.
constchar * url = "https://services1.arcgis.com/0MSEUqKaxRlEPj5g/arcgis/rest/services/ncov_cases/FeatureServer/1/query?f=json&where=(Country_Region=%27India%27)&returnGeometry=s, Atguvies ";
Tagad tukšās iestatīšanas iekšpusē () ultraskaņas sensora Trig un Echo tapu definējiet kā ievades tapas un Releja tapu kā izvadi.
pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); pinMode (sūknis, OUTPUT);
Lai uzzinātu vairāk par ultraskaņas sensora darbību, pārbaudiet tā saskarni ar Arduino, kur mēs esam izskaidrojuši tā TRIG un ECHO tapas funkciju, kā arī to, kā to izmanto, lai aprēķinātu attālumu starp jebkuru objektu. Pārbaudiet arī citus ultraskaņas projektus.
Pēc tam pārbaudiet, vai ESP ir savienots ar Wi-Fi, ja nē, tas gaidīs ESP savienojumu, sērijveida monitorā drukājot “…..”.
WiFi.begin (ssid, pass); while (WiFi.status ()! = WL_CONNECTED) {aizkave (500); Sērijas.druka ("."); // drukāt… līdz nav izveidots savienojums} Serial.println ("WiFi savienots");
Funkcijas void ultra () iekšpusē mēs nepārtraukti aprēķināsim attālumu, izmantojot ultraskaņas sensoru, un, ja attālums ir mazāks vai vienāds ar 15 cm, tad tas 2 sekundes ieslēgs sūkni, lai cauruļvadā izspiestu attīrīšanas līdzekli ārpusē. Nevērīgi, kad kāds noliek rokas zem izplūdes caurules, attālums samazināsies, un tas aktivizēs sūkņa ieslēgšanos.
void ultra () {digitalWrite (trigPin, LOW); kavēšanāsMikrosekundes (2); digitalWrite (trigPin, HIGH); kavēšanāsMikrosekundes (10); digitalWrite (trigPin, LOW); ilgums = pulseIn (echoPin, HIGH); attālums = ilgums * 0,0340 / 2; Serial.println ("Attālums"); Serial.println (attālums); if (attālums <= 15) {Serial.print ("Sūkņa atvēršana"); digitalWrite (sūknis, AUGSTS); kavēšanās (2000); digitalWrite (pump, LOW); ESP. Restart (); }}
Tagad funkcijas void loop () iekšpusē pārbaudiet, vai JSON fails ir saņemts ESP32, lasot to un izdrukājot JSON datus seriālajā monitorā, izmantojot šādas rindas
int httpCode = https.GET (); if (httpCode> 0) {// Pārbaudiet, vai nav atgriezta koda String payload = https.getString ();
Pēc tam izmantojiet frāžu programmu, kas ģenerēta no ArduinoJson Assistant. Šī frāžu programma sniegs mums kopējo apstiprināto un atgūto gadījumu skaitu Indijā.
JsonArray lauki = doc; JsonObject Features_0_attributes = doc; ilgi 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;
Automātiskā roku dezinfekcijas līdzekļa testēšana ar Covid19 Tracker
Tātad beidzot mūsu ar baterijām darbināmais roku dezinfekcijas aparāts ir gatavs pārbaudei. Vienkārši pievienojiet aparatūru atbilstoši shēmai un augšupielādējiet programmu ESP32. Sākumā LCD ekrānā vajadzētu redzēt ziņojumu “Covid19 Tracker” un “Hand Sanitizer”, un pēc dažām sekundēm tas parādīs apstiprinātos gadījumus un atgūtos gadījumus LCD ekrāns, kā parādīts zemāk.
Līdzīgi šim, jūs varat iegūt šos datus par jebkuru valsti, veicot dažas izmaiņas API saitē. Pilnīga darba video un kods tiek dota beigās lapā.