- Componentes requeridos
- Enlace API para obtener Corona Live Data
- Diagrama de circuito
- Programación de ESP32 para Covid19 Tracker
- Prueba del desinfectante de manos automático con Covid19 Tracker
Corona Virus (Covid19) está causando estragos en el mundo. Casi todos los países padecen el virus Corona. La OMS ya ha anunciado que se trata de una enfermedad pandémica y muchas ciudades se encuentran en situación de bloqueo, la gente no puede salir de sus hogares y miles han perdido la vida. Muchos sitios web brindan actualizaciones en vivo de los casos de coronavirus como Microsoft's Tracker, Esri's Covid19 Tracker, etc.
En este proyecto, construiremos un dispensador automático de desinfectante de manos con una pantalla LCD que también muestra el recuento en vivo de casos de coronavirus. Este proyecto utilizará ESP32, sensor ultrasónico, módulo LCD 16x2, bomba de agua y desinfectante de manos. Estamos utilizando el Explorador de API de Esri para obtener los datos en vivo de las personas infectadas con Covid19. Se usa un sensor ultrasónico para verificar la presencia de manos debajo de la salida de la máquina desinfectante. Calculará continuamente la distancia entre la salida del desinfectante y él mismo y le indicará al ESP que encienda la bomba siempre que la distancia sea inferior a 15 cm para sacar el desinfectante.
ESP32 se utiliza como controlador principal, es un módulo Wi-Fi que se puede conectar fácilmente a Internet. Lo usamos anteriormente para construir muchos proyectos basados en IoT usando ESP32.
Componentes requeridos
- Módulo de desarrollo ESP32
- Sensor ultrasónico
- Pantalla LCD 16 * 2
- Módulo de relé
- Mini bomba sumergible DC
- Alcohol en gel
Enlace API para obtener Corona Live Data
Aquí necesitamos obtener los datos de Internet y luego enviarlos a ESP32 para mostrarlos en una pantalla LCD de 16x2. Para eso, se invoca una solicitud HTTP get para leer el archivo JSON de Internet. Aquí estamos usando la API proporcionada por Coronavirus Disease GIS Hub. Puede compilar fácilmente la URL de consulta correcta para obtener el total de casos confirmados y recuperados para la India y también puede cambiar el país / región si desea usar esto para un país diferente.
Ahora haga clic en "Probar ahora" o pegue la URL de la consulta en un nuevo navegador, el resultado de esa consulta se verá así:
{"objectIdFieldName": "OBJECTID", "uniqueIdField": {"nombre": "OBJECTID", "isSystemMaintained": true}, "globalIdFieldName": "", "geometryType": "esriGeometryPoint", "SpacialReference": {" wkid ": 4326," latestWkid ": 4326}," fields ":," features ":}
Después de obtener los datos JSON, ahora genere el código para leer los datos JSON y expresarlo según nuestras necesidades. Para eso, vaya al Asistente de ArduinoJson y pegue los datos JSON en la sección Entrada.
Ahora desplácese hacia abajo hasta el programa de análisis y copie la sección de código que sea útil para usted. Copié las siguientes variables ya que solo necesitaba los casos confirmados y recuperados en India.
Diagrama de circuito
El diagrama de circuito completo para esta máquina dispensadora automática de desinfectante de manos y rastreador Covid19 se muestra a continuación
La bomba de agua está conectada al ESP32 a través de un módulo de relé. Los pines Vcc y GND del relé están conectados a los pines Vin y GND de ESP32 mientras que el pin de entrada del relé está conectado al pin D19 de ESP32. Los pines Trig y Echo del sensor ultrasónico están conectados a los pines D5 y D18 de Arduino.
Las conexiones completas se dan en la siguiente tabla.
LCD | ESP32 |
VSS | GND |
VDD | 5V |
VO | Potenciómetro |
RS | D22 |
RW | GND |
mi | D4 |
D4 | D15 |
D5 | D13 |
D6 | D26 |
D7 | D21 |
UN | 5V |
K | GND |
Sensor ultrasónico | ESP32 |
Vcc | Vin |
GND | GND |
Trigonometría | D5 |
ECO | D18 |
El hardware de este dispensador de desinfectante de manos con sensor de movimiento se verá así
Programación de ESP32 para Covid19 Tracker
El código completo para Auto Hand Sanitizer y CORONA19 Tracker se puede encontrar al final de la página. Aquí se explican partes importantes del programa.
Inicie el código incluyendo todos los archivos de biblioteca necesarios. La biblioteca HTTPClient se utiliza para obtener los datos del servidor HTTP. La biblioteca ArduinoJson se utiliza para expresar las matrices de datos. Aquí la biblioteca ArduinoJson se utiliza para filtrar los casos confirmados y recuperados de la matriz de datos que estamos obteniendo del servidor. La biblioteca LiquidCrystal se utiliza para el módulo de pantalla LCD.
#incluir
Para obtener los datos del servidor, NodeMCU ESP32 debe conectarse a Internet. Para eso, ingrese su SSID y contraseña de Wi-Fi en las líneas siguientes.
const char * ssid = "Galaxy-M20"; const char * pass = "ac312124";
Después de eso, defina los pines donde ha conectado el módulo LCD, el sensor ultrasónico y el módulo 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; bomba int const = 19;
Ahora ingresamos al enlace de la API que se generó anteriormente. Usando este enlace, obtendremos el total de casos confirmados y los casos recuperados en India. Puede cambiar el nombre del país en la URL según usted.
constchar * url = "https://services1.arcgis.com/0MSEUqKaxRlEPj5g/arcgis/rest/services/ncov_cases/FeatureServer/1/query?f=json&where=(Country_Region=%27India%27)&returnGeometry=Falion&outFirmedield,Recuperado";
Ahora, dentro de la configuración de vacío () , defina el pin Trig y Echo del sensor ultrasónico como pines de entrada y el pin de relé como salida.
pinMode (trigPin, SALIDA); pinMode (echoPin, INPUT); pinMode (bomba, SALIDA);
Para obtener más información sobre cómo funciona el sensor ultrasónico, consulte su interfaz con Arduino, donde hemos explicado la función de su pin TRIG y ECHO junto con cómo se usa para calcular la distancia entre cualquier objeto. Además, consulte otros proyectos basados en ultrasonidos.
Después de eso, verifique si el ESP está conectado con el Wi-Fi, si no, esperará a que el ESP se conecte imprimiendo “…..” en el monitor serial.
WiFi.begin (ssid, pase); while (WiFi.status ()! = WL_CONNECTED) {retraso (500); Serial.print ("."); // imprimir… hasta que no esté conectado} Serial.println ("WiFi conectado");
Dentro de la función void ultra () calcularemos continuamente la distancia usando un sensor ultrasónico y si la distancia es menor o igual a 15 cm, entonces encenderá la bomba durante 2 segundos para empujar el desinfectante hacia afuera a través de la tubería. Sin darse cuenta, cuando alguien pone sus manos debajo del tubo de salida, la distancia disminuirá y hará que la bomba se encienda.
void ultra () {digitalWrite (trigPin, LOW); delayMicroseconds (2); digitalWrite (trigPin, HIGH); delayMicroseconds (10); digitalWrite (trigPin, BAJO); duración = pulseIn (echoPin, HIGH); distancia = duración * 0.0340 / 2; Serial.println ("Distancia"); Serial.println (distancia); if (distancia <= 15) {Serial.print ("Bomba de apertura"); digitalWrite (bomba, ALTA); retraso (2000); digitalWrite (bomba, BAJA); ESP.restart (); }}
Ahora, dentro de la función void loop () , verifique si el archivo JSON recibido por el ESP32 leyéndolo e imprimiendo datos JSON en el monitor serial usando las siguientes líneas
int httpCode = https.GET (); if (httpCode> 0) {// Verifique el código de retorno String payload = https.getString ();
Después de eso, use el programa de redacción generado desde ArduinoJson Assistant. Este programa de redacción nos dará el total de casos confirmados y recuperados en India.
Campos 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;
Prueba del desinfectante de manos automático con Covid19 Tracker
Así que finalmente nuestro dispensador de desinfectante de manos a batería está listo para probar. Simplemente conecte el hardware según el diagrama de circuito y cargue el programa en ESP32, al principio debería ver el mensaje "Covid19 Tracker" y "Hand Sanitizer" en la pantalla LCD y luego, después de unos segundos, mostrará los casos confirmados y los casos recuperados en el Pantalla LCD como se muestra a continuación.
De manera similar, puede obtener estos datos para cualquier país realizando algunos cambios en el enlace de la API. Un video completo y un código de trabajo se encuentran al final de la página.