- Componenti richiesti
- Collegamento API per ottenere i dati Corona Live
- Schema elettrico
- Programmazione ESP32 per Covid19 Tracker
- Test del disinfettante automatico per le mani con il tracker Covid19
Corona Virus (Covid19) sta seminando il caos nel mondo. Quasi tutti i paesi soffrono del Corona Virus. L'OMS ha già annunciato una malattia pandemica e molte città sono in una situazione di blocco, le persone non possono uscire dalle loro case e migliaia hanno perso la vita. Molti siti Web forniscono aggiornamenti in tempo reale dei casi di coronavirus come Tracker di Microsoft, Covid19 Tracker di Esri, ecc.
In questo progetto, costruiremo un distributore automatico di disinfettante per le mani con un LCD che mostra anche il conteggio in tempo reale dei casi di Coronavirus. Questo progetto utilizzerà ESP32, sensore a ultrasuoni, modulo LCD 16x2, pompa dell'acqua e disinfettante per le mani. Utilizziamo API Explorer di Esri per ottenere i dati in tempo reale delle persone infette da Covid19. Un sensore a ultrasuoni viene utilizzato per verificare la presenza delle mani sotto l'uscita della macchina igienizzante. Calcolerà continuamente la distanza tra l'uscita del disinfettante e se stesso e indicherà all'ESP di accendere la pompa ogni volta che la distanza è inferiore a 15 cm per spingere fuori il disinfettante.
ESP32 viene utilizzato come controller principale, è un modulo Wi-Fi che può connettersi facilmente a Internet. In precedenza lo abbiamo utilizzato per costruire molti progetti basati su IoT utilizzando ESP32.
Componenti richiesti
- Modulo di sviluppo ESP32
- Sensore ultrasonico
- Display LCD 16 * 2
- Modulo relè
- Mini pompa sommersa DC
- Igienizzante mani
Collegamento API per ottenere i dati Corona Live
Qui abbiamo bisogno di ottenere i dati da Internet e quindi inviarli a ESP32 per visualizzarli su LCD 16x2. Per questo, viene invocata una richiesta get HTTP per leggere il file JSON da Internet. Qui stiamo usando l'API fornita da Coronavirus Disease GIS Hub. Puoi facilmente compilare l'URL di query corretto per ottenere il totale dei casi confermati e recuperati per l'India e puoi anche cambiare il paese / regione se desideri utilizzarlo per un paese diverso.
Ora fai clic su "Prova ora" o incolla l'URL della query in un nuovo browser, l'output di quella query sarà simile a questo:
{"objectIdFieldName": "OBJECTID", "uniqueIdField": {"name": "OBJECTID", "isSystemMaintained": true}, "globalIdFieldName": "", "geometryType": "esriGeometryPoint", "spatialReference": {" wkid ": 4326," latestWkid ": 4326}," fields ":," features ":}
Dopo aver ottenuto i dati JSON, ora genera il codice per leggere i dati JSON e formularli in base alle nostre esigenze. Per questo, vai all'Assistente ArduinoJson e incolla i dati JSON nella sezione Input.
Ora scorri verso il basso fino al programma di analisi e copia la sezione del codice che ti è utile. Ho copiato le seguenti variabili poiché avevo bisogno solo dei casi confermati e recuperati in India.
Schema elettrico
Lo schema circuitale completo per questa macchina Covid19 Tracker & dispenser disinfettante automatico è il seguente
La pompa dell'acqua è collegata all'ESP32 tramite un modulo relè. I pin Vcc e GND del relè sono collegati ai pin Vin e GND di ESP32 mentre il pin di ingresso del relè è collegato al pin D19 di ESP32. I pin Trig ed Echo del sensore a ultrasuoni sono collegati ai pin D5 e D18 di Arduino.
I collegamenti completi sono riportati nella tabella sottostante.
LCD | ESP32 |
VSS | GND |
VDD | 5V |
VO | Potenziometro |
RS | D22 |
RW | GND |
E | D4 |
D4 | D15 |
D5 | D13 |
D6 | D26 |
D7 | D21 |
UN | 5V |
K | GND |
Sensore ultrasonico | ESP32 |
Vcc | Vin |
GND | GND |
Trig | D5 |
ECO | D18 |
L'hardware per questo dispenser di disinfettante per le mani con sensore di movimento sarà simile a questo
Programmazione ESP32 per Covid19 Tracker
Il codice completo per Auto Hand Sanitizer e CORONA19 Tracker può essere trovato alla fine della pagina. Qui vengono spiegate parti importanti del programma.
Avvia il codice includendo tutti i file di libreria richiesti. La libreria HTTPClient viene utilizzata per ottenere i dati dal server HTTP. La libreria ArduinoJson viene utilizzata per formulare gli array di dati. Qui la libreria ArduinoJson viene utilizzata per filtrare i casi confermati e ripristinati dall'array di dati che stiamo ottenendo dal server. La libreria LiquidCrystal viene utilizzata per il modulo display LCD.
#includere
Per ottenere i dati dal server, NodeMCU ESP32 deve connettersi a Internet. Per questo, inserisci il tuo SSID Wi-Fi e la password nelle righe seguenti.
const char * ssid = "Galaxy-M20"; const char * pass = "ac312124";
Dopodiché definisci i pin dove hai collegato il modulo LCD, il sensore a ultrasuoni e il modulo 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; const int pompa = 19;
Ora inseriamo il collegamento API generato in precedenza. Utilizzando questo collegamento, otterremo i casi confermati totali e i casi recuperati in India. Puoi cambiare il nome del paese nell'URL secondo te.
constchar * url = "https://services1.arcgis.com/0MSEUqKaxRlEPj5g/arcgis/rest/services/ncov_cases/FeatureServer/1/query?f=json&where=(Country_Region=%27India%27)&returnGeometry=false&outtryFields,, Recuperato ";
Ora all'interno della configurazione void () , definire i pin Trig ed Echo del sensore a ultrasuoni come pin di input e pin Relay come output.
pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); pinMode (pompa, USCITA);
Per saperne di più su come funziona il sensore a ultrasuoni, controlla la sua interfaccia con Arduino dove abbiamo spiegato la funzione dei suoi pin TRIG ed ECHO insieme a come viene utilizzato per calcolare la distanza tra qualsiasi oggetto. Inoltre, controlla altri progetti basati su ultrasuoni.
Dopodiché, controlla se l'ESP è connesso al Wi-Fi, in caso contrario aspetterà la connessione dell'ESP stampando “…..” sul monitor seriale.
WiFi.begin (ssid, pass); while (WiFi.status ()! = WL_CONNECTED) {ritardo (500); Serial.print ("."); // stampa… fino a quando non connesso} Serial.println ("WiFi connesso");
All'interno della funzione void ultra () calcoleremo continuamente la distanza utilizzando un sensore a ultrasuoni e se la distanza è inferiore o uguale a 15 cm, si accenderà la pompa per 2 secondi per spingere il disinfettante all'esterno attraverso il tubo. Ovviamente quando qualcuno mette le mani sotto il tubo di scarico, la distanza diminuirà e la pompa si accenderà.
void ultra () {digitalWrite (trigPin, LOW); delayMicroseconds (2); digitalWrite (trigPin, HIGH); delayMicroseconds (10); digitalWrite (trigPin, LOW); durata = pulseIn (echoPin, HIGH); distanza = durata * 0,0340 / 2; Serial.println ("Distanza"); Serial.println (distanza); if (distanza <= 15) {Serial.print ("Opening Pump"); digitalWrite (pompa, ALTO); ritardo (2000); digitalWrite (pompa, BASSO); ESP.restart (); }}
Ora all'interno della funzione void loop () , controlla se il file JSON ricevuto dall'ESP32 leggendolo e stampando i dati JSON sul monitor seriale utilizzando le seguenti righe
int httpCode = https.GET (); if (httpCode> 0) {// Controlla il codice di ritorno String payload = https.getString ();
Successivamente, utilizza il programma di fraseggio generato da ArduinoJson Assistant. Questo programma di fraseggio ci darà il totale dei casi confermati e recuperati in India.
Campi 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;
Test del disinfettante automatico per le mani con il tracker Covid19
Così finalmente il nostro dispenser di disinfettante per le mani a batteria è pronto per il test. Basta collegare l'hardware come da schema elettrico e caricare il programma in ESP32, all'avvio dovresti vedere il messaggio "Covid19 Tracker" e "Hand Sanitizer" sul display LCD e poi dopo pochi secondi visualizzerà casi confermati e casi recuperati nel Schermo LCD come mostrato di seguito.
Allo stesso modo, puoi ottenere questi dati per qualsiasi paese apportando alcune modifiche al collegamento API. Alla fine della pagina vengono forniti un video completo e un codice funzionante.