- Components necessaris
- Enllaç API per obtenir les dades de Corona Live
- Esquema de connexions
- Programació ESP32 per a Covid19 Tracker
- Prova del desinfectant automàtic de mans amb Covid19 Tracker
El virus Corona (Covid19) està causant estralls al món. Gairebé tots els països pateixen el virus Corona. L’OMS ja ha anunciat que es tracta d’una malaltia pandèmica i moltes ciutats es troben en situació de bloqueig, la gent no pot sortir de casa i milers han perdut la vida. Molts llocs web ofereixen actualitzacions en temps real dels casos de coronavirus com Microsoft Tracker, Esri's Covid19 Tracker, etc.
En aquest projecte, crearem un dispensador automàtic de desinfectant de mans amb pantalla LCD que també mostra el recompte en temps real de casos de coronavirus. Aquest projecte utilitzarà ESP32, sensor d'ultrasons, mòdul LCD de 16x2, bomba d'aigua i desinfectant de mans. Estem utilitzant l’API Explorer d’Esri per obtenir les dades en viu de persones infectades per Covid19. S'utilitza un sensor d'ultrasons per comprovar la presència de mans a sota de la sortida de la màquina desinfectant. Calcularà contínuament la distància entre la sortida del desinfectant i ella mateixa i li dirà a l’ESP que engegui la bomba sempre que la distància sigui inferior a 15 cm per empènyer el desinfectant cap a fora.
ESP32 s'utilitza com a controlador principal, és un mòdul Wi-Fi que es pot connectar fàcilment a Internet. Abans l’utilitzàvem per construir molts projectes basats en IoT mitjançant ESP32.
Components necessaris
- Mòdul de desenvolupament ESP32
- Sensor d'ultrasons
- Pantalla LCD de 16 * 2
- Mòdul de relés
- Bomba submergible Mini DC
- Desinfectant de mans

Enllaç API per obtenir les dades de Corona Live
Aquí hem d’obtenir les dades d’Internet i, després, enviar-les a ESP32 per mostrar-les a la pantalla LCD de 16x2. Per a això, s'invoca una sol·licitud d'obtenció HTTP per llegir el fitxer JSON des d'Internet. Aquí estem utilitzant l'API proporcionada per Coronavirus Disease GIS Hub. Podeu compilar fàcilment l’URL de consulta correcte per obtenir el total de casos confirmats i recuperats a l’Índia i també podeu canviar el país / regió si voleu utilitzar-lo per a un altre país.


Ara feu clic a "Prova ara" o enganxeu l'URL de la consulta en un navegador nou, la sortida d'aquesta consulta serà així:
{"objectIdFieldName": "OBJECTID", "uniqueIdField": {"name": "OBJECTID", "isSystemMaintained": true}, "globalIdFieldName": "", "geometryType": "esriGeometryPoint", "spatialReference": {" wkid ": 4326," latestWkid ": 4326}," fields ":," features ":}
Després d’obtenir les dades JSON, ara genereu el codi per llegir-les i expressar-les segons les nostres necessitats. Per a això, aneu a l’Assistent ArduinoJson i enganxeu les dades JSON a la secció Entrada.

Ara desplaceu-vos cap avall fins al programa d'anàlisi i copieu la secció de codi que us sigui útil. He copiat les variables següents perquè només necessitava els casos confirmats i recuperats a l'Índia.


Esquema de connexions
El diagrama de circuit complet per a aquesta màquina Covid19 Rastrejador i dispensador de desinfectant de mans automàtica es dóna a continuació

La bomba d’aigua està connectada a l’ESP32 mitjançant un mòdul de relé. Els pins Vcc i GND del relé estan connectats als pins Vin i GND d’ESP32 mentre que el pin d’entrada del relé està connectat al pin D19 de l’ESP32. Els pins Trig i Echo del sensor d'ultrasons estan connectats als pins D5 i D18 d'Arduino.
Les connexions completes es donen a la taula següent.
| LCD | ESP32 |
| VSS | GND |
| VDD | 5V |
| VO | Potenciòmetre |
| RS | D22 |
| RW | GND |
| E | D4 |
| D4 | D15 |
| D5 | D13 |
| D6 | D26 |
| D7 | D21 |
| A | 5V |
| K | GND |
| Sensor d'ultrasons | ESP32 |
| Vcc | Vin |
| GND | GND |
| Trig | D5 |
| ECHO | D18 |
El maquinari d’aquest dispensador de desinfectant de mans amb sensor de moviment serà així

Programació ESP32 per a Covid19 Tracker
Al final de la pàgina es pot trobar el codi complet per a Auto Hand Sanitizer i CORONA19 Tracker. Aquí s'expliquen parts importants del programa.
Inicieu el codi incloent tots els fitxers de biblioteca necessaris. La biblioteca HTTPClient s’utilitza per obtenir les dades del servidor HTTP. La biblioteca ArduinoJson s’utilitza per sintetitzar les matrius de dades. Aquí la biblioteca ArduinoJson s’utilitza per filtrar els casos confirmats i recuperats de la matriu de dades que obtenim del servidor. La biblioteca LiquidCrystal s’utilitza per al mòdul de pantalla LCD.
#incloure
Per obtenir les dades del servidor, NodeMCU ESP32 ha de connectar-se a Internet. Per a això, introduïu el vostre SSID i contrasenya Wi-Fi a les línies següents.
const char * ssid = "Galaxy-M20"; const char * pass = "ac312124";
Després, definiu els pins on heu connectat el mòdul LCD, el sensor d'ultrasons i el mòdul de 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 pump = 19;
Ara introduïm l'enllaç API que es genera anteriorment. Mitjançant aquest enllaç, obtindrem el total de casos confirmats i casos recuperats a l’Índia. Podeu canviar el nom del país a l'URL d'acord amb vosaltres.
constchar * url = "https://services1.arcgis.com/0MSEUqKaxRlEPj5g/arcgis/rest/services/ncov_cases/FeatureServer/1/query?f=json&where=(Country_Region=%27India%27)&returnGeometry=false&outFields, Recuperat ";
Ara dins de la configuració del buit () , definiu el pin Trig i Echo del sensor d'ultrasons com a pins d'entrada i el pin de relé com a sortida.
pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); pinMode (bomba, OUTPUT);
Per obtenir més informació sobre el funcionament del sensor d'ultrasons, comproveu la seva interfície amb Arduino, on hem explicat la funció del seu pin TRIG i ECHO juntament amb com s'utilitza per calcular la distància entre qualsevol objecte. A més, consulteu altres projectes basats en ultrasons.
Després d'això, comproveu si l'ESP està connectat amb la Wi-Fi, si no, esperarà que l'ESP es connecti imprimint "….." al monitor sèrie.
WiFi.begin (ssid, pass); while (WiFi.status ()! = WL_CONNECTED) {demora (500); Serial.print ("."); // imprimir… fins que no estigui connectat} Serial.println ("WiFi connectat");
Dins de la funció void ultra () calcularem contínuament la distància mitjançant un sensor d’ultrasons i, si la distància és inferior o igual a 15 cm, engegarà la bomba durant 2 segons per empènyer el desinfectant a l’exterior per la canonada. De manera inconscient quan algú posa les mans per sota del tub de sortida, la distància disminuirà i activarà la bomba.
void ultra () {digitalWrite (trigPin, LOW); delayMicroseconds (2); digitalWrite (trigPin, HIGH); delayMicroseconds (10); digitalWrite (trigPin, LOW); durada = pulseIn (echoPin, HIGH); distància = durada * 0,0340 / 2; Serial.println ("Distància"); Serial.println (distància); if (distància <= 15) {Serial.print ("Bomba d'obertura"); digitalWrite (pump, HIGH); endarreriment (2000); digitalWrite (bomba, BAIX); ESP.restart (); }}
Ara dins de la funció void loop () , comproveu si el fitxer JSON que ha rebut l’ESP32 llegint-lo i imprimint dades JSON al monitor sèrie mitjançant les línies següents
int httpCode = https.GET (); if (httpCode> 0) {// Comproveu si hi ha el codi de retorn String payload = https.getString ();
Després, utilitzeu el programa de fraseig generat des de l’ ArduinoJson Assistant. Aquest programa de fraseig ens proporcionarà el total de casos confirmats i recuperats a l'Índia.
Camps 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 = característiques_0_attributes; int features_0_attributes_Recovered = features_0_attributes;
Prova del desinfectant automàtic de mans amb Covid19 Tracker
Finalment, el nostre dispensador de desinfectant de mans amb bateria està a punt per provar-se. Simplement connecteu el maquinari segons el diagrama del circuit i carregueu el programa a ESP32; al principi hauríeu de veure el missatge "Covid19 Tracker" i "Hand Sanitizer" a la pantalla LCD i, al cap de pocs segons, mostrarà els casos confirmats i els casos recuperats a la Pantalla LCD com es mostra a continuació.

De manera similar, podeu obtenir aquestes dades per a qualsevol país fent alguns canvis a l'enllaç API. Al final de la pàgina es dóna un vídeo i un codi de treball complet.
