En este proyecto, construiremos un dispensador automático de desinfectante para manos con una pantalla LCD. Se utiliza 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 sí mismo, y le indica al ESP que encienda la bomba siempre que la distancia sea inferior a 15 cm para expulsar el desinfectante.

Componentes requeridos:

  • ESP32 Dev Module
  • Sensor ultrasónico
  • Pantalla LCD 16 * 2
  • Módulo de relé
  • Mini bomba sumergible de CC
  • Alcohol en gel

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 tabla a continuación.

LCDESP32  
VSSGND
VDD5V
VOPotenciómetro
RSD22
RWGND
miD4
D4D15
D5D13
D6D26
D7D21
UNA5V
KGND
Sensor ultrasónicoESP32
VccVin
GNDGND
TrigonometríaD5
ECOD18

El hardware para este dispensador de desinfectante de manos con sensor de movimiento se verá así

Programación de ESP32

Inicie el código incluyendo todos los archivos de biblioteca requeridos. La biblioteca HTTPClient se usa para obtener los datos del servidor HTTP. La biblioteca ArduinoJson se usa para expresar las matrices de datos. Aquí la biblioteca ArduinoJson se usa 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.

#include <HTTPClient.h>
#include <WiFi.h>
#include <ArduinoJson.h>
#include <LiquidCrystal.h>

Para obtener los datos del servidor, NodeMCU ESP32 tiene que conectarse con internet. Para eso, ingrese su SSID y contraseña de Wi-Fi en las siguientes líneas.

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;
const int pump = 19;

Ahora dentro de la configuración de vacío () , defina el pin de activación y eco del sensor ultrasónico como pines de entrada y el pin de relé como salida.

pinMode (trigPin, OUTPUT);
pinMode (echoPin, INPUT);
pinMode (bomba, SALIDA);

Para obtener más información sobre cómo funciona el sensor ultrasónico, verifique 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, verifique otros proyectos basados ​​en ultrasonidos .

Después de eso, verifique si el ESP está conectado con el Wi-Fi; de lo contrario, esperará a que ESP se conecte imprimiendo “… ..” en el monitor en serie.

WiFi.begin (ssid, pass);
  while (WiFi.status ()! = WL_CONNECTED)
  {
    retraso (500);
    Serial.print ("."); // imprimir ... hasta que no esté conectado
  }
  Serial.println ("WiFi conectado");

Dentro de la función de vacío ultra () calcularemos continuamente la distancia utilizando un sensor ultrasónico y, si la distancia es menor o igual a 15 cm, encenderá la bomba durante 2 segundos para empujar el desinfectante hacia afuera a través de la tubería. Obviamente, cuando alguien coloca sus manos debajo del tubo de salida, la distancia disminuirá y hará que la bomba se encienda.

vacío ultra () {
  digitalWrite (trigPin, LOW);
  delayMicroseconds (2);
  digitalWrite (trigPin, HIGH);
  delayMicroseconds (10);
  digitalWrite (trigPin, LOW);
  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 lo lee e imprime datos JSON en el monitor en serie utilizando las siguientes líneas

int httpCode = https.GET ();
  if (httpCode> 0) {// Verifica el código de retorno
 Cadena de carga = https.getString ();
https://circuitdigest.com/

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *