- Componentes requeridos:
- Sensor ultrasónico HC-SR04:
- Módulo Wi-Fi ESP8266:
- Diagrama de circuito y explicación:
- Explicación del código:
- "; if (distancia <5) {página web + =" La papelera está llena ";} else {página web + =" La papelera está vacía ";} página web + ="
- Prueba y salida del proyecto:
En este DIY, vamos a hacer un sistema de monitoreo de basura / contenedor de basura basado en IOT que nos dirá si la papelera está vacía o llena a través del servidor web y puede conocer el estado de su 'Papelera' o 'Contenedores' de en cualquier parte del mundo a través de Internet. Será muy útil y se puede instalar en los botes de basura en lugares públicos así como en casa.
En este proyecto IOT, se utiliza un sensor ultrasónico para detectar si el bote de basura está lleno de basura o no. Aquí el sensor ultrasónico se instala en la parte superior del bote de basura y medirá la distancia de la basura desde la parte superior del bote de basura y podemos establecer un valor de umbral de acuerdo con el tamaño del bote de basura. Si la distancia será menor que este valor de umbral, significa que la papelera está llena de basura e imprimiremos el mensaje "La cesta está llena" en la página web y si la distancia será mayor que este valor de umbral, entonces imprimiremos el mensaje "La cesta está vacía". Aquí hemos establecido el valor de umbral de 5 cm en el código del programa. Usaremos el módulo Wi-Fi ESP8266para conectar el Arduino al servidor web. Aquí hemos utilizado el servidor web local para demostrar el funcionamiento de este sistema de monitoreo de basura.
Componentes requeridos:
- Arduino Uno (puedes usar cualquier otro)
- Módulo Wi-Fi ESP8266
- Sensor ultrasónico HC-SR04
- Resistencias 1K
- Tablero de circuitos
- Cables de conexión
Sensor ultrasónico HC-SR04:
El sensor ultrasónico se utiliza para medir la distancia con alta precisión y lecturas estables. Puede medir distancias de 2 cm a 400 cm o de 1 pulgada a 13 pies. Emite una onda de ultrasonido a la frecuencia de 40 KHz en el aire y si el objeto se interpone en su camino, rebotará hacia el sensor. Utilizando el tiempo que tarda en golpear el objeto y volver, puede calcular la distancia.
El sensor ultrasónico tiene cuatro pines. Dos son VCC y GND que se conectarán a los 5V y GND del Arduino, mientras que los otros dos pines son los pines Trig y Echo que se conectarán a cualquier pines digitales del Arduino. El pin de activación enviará la señal y el pin de eco se utilizará para recibir la señal. Para generar una señal de ultrasonido, tendrá que hacer que el pin Trig esté alto durante aproximadamente 10us, lo que enviará una ráfaga sónica de 8 ciclos a la velocidad del sonido y, después de golpear el objeto, será recibido por el pin Echo.
Verifique más adelante los proyectos a continuación para comprender correctamente el funcionamiento del sensor ultrasónico y para medir la distancia de cualquier objeto que lo use:
- Medición de distancia basada en Arduino usando un sensor ultrasónico
- Medición de distancia usando HC-SR04 y microcontrolador AVR
Módulo Wi-Fi ESP8266:
ESP8266 es un módulo Wi-Fi que le dará a sus proyectos acceso a Wi-Fi o Internet. Es un dispositivo muy barato pero hará que tus proyectos sean muy potentes. Puede comunicarse con cualquier microcontrolador y hacer que los proyectos sean inalámbricos. Está en la lista de la mayoría de los dispositivos líderes en la plataforma IOT. Funciona con 3,3 V y si le da 5 V, se dañará.
El ESP8266 tiene 8 pines; El VCC y CH-PD se conectarán a 3.3V para habilitar el wifi. Los pines TX y RX serán los encargados de la comunicación del ESP8266 con el Arduino. El pin RX funciona en 3.3V, por lo que tendrá que hacer un divisor de voltaje como lo hicimos en nuestro proyecto.
Diagrama de circuito y explicación:
Primero que nada conectaremos el ESP8266 con el Arduino. ESP8266 funciona con 3.3V y si le da 5V del Arduino, entonces no funcionará correctamente y puede dañarse. Conecte el VCC y el CH_PD al pin 3.3V de Arduino. El pin RX de ESP8266 funciona en 3.3V y no se comunicará con el Arduino cuando lo conectemos directamente al Arduino. Entonces, tendremos que hacer un divisor de voltaje para ello. Tres resistencias de 1k conectadas en serie harán el trabajo por nosotros. Conecte el RX al pin 11 del Arduino a través de las resistencias como se muestra en la figura a continuación y también el TX del Arduino al pin 10 del Arduino.
Ahora es el momento de conectar el sensor ultrasónico HC-SR04 con el Arduino. Las conexiones del sensor ultrasónico con el Arduino son muy sencillas. Conecte el VCC y la tierra del sensor ultrasónico a los 5V y la tierra del Arduino. Luego conecte el pin TRIG y ECHO del sensor ultrasónico al pin 8 y 9 del Arduino respectivamente.
Explicación del código:
Antes de cargar el código, asegúrese de estar conectado al Wi-Fi de su dispositivo ESP8266. Puede consultar el código completo en la sección Código a continuación, el código se ha explicado bien en los comentarios, además, también hemos explicado algunas funciones importantes a continuación.
El Arduino primero leerá el sensor ultrasónico. Enviará una señal ultrasónica a la velocidad del sonido cuando hagamos que el pin TRIG esté alto para 10us. La señal regresará después de golpear el objeto y almacenaremos la duración del tiempo de viaje en la variable denominada duración . Luego calcularemos la distancia del objeto (basura en nuestro caso) aplicando una fórmula y la almacenaremos en la variable llamada distancia .
digitalWrite (trigPin, BAJO); delayMicroseconds (2); digitalWrite (trigPin, HIGH); delayMicroseconds (10); digitalWrite (trigPin, BAJO); duración = pulseIn (echoPin, HIGH); distancia = duración * 0.034 / 2;
Para imprimir la salida en la página web en el navegador web, tendremos que utilizar la programación HTML. Entonces, hemos creado una cadena llamada página web y almacenamos la salida en ella. Para saber si el bote de basura está vacío o no, hemos aplicado una condición allí. Si la distancia será inferior a 5 cm, se mostrará "La cesta está llena" en la página web y si la distancia será superior a 5 cm, se mostrará el mensaje "La cesta está vacía" en la página web.
if (esp8266.available ()) {if (esp8266.find ("+ IPD,")) {retraso (1000); int connectionId = esp8266.read () - 48; String webpage = "
Sistema de monitoreo de basura IOT
"; página web + =""; if (distancia <5) {página web + =" La papelera está llena ";} else {página web + =" La papelera está vacía ";} página web + ="
";El siguiente código enviará y mostrará los datos en la página web. Los datos, que almacenamos en la cadena llamada 'página web', se guardarán en la cadena llamada 'comando' . El ESP8266 leerá el carácter uno por uno del 'comando' y lo imprimirá en la página web.
String sendData (comando de cadena, tiempo de espera de int constante, depuración booleana) {Respuesta de cadena = ""; esp8266.print (comando); tiempo int largo = millis (); while ((tiempo + tiempo de espera)> millis ()) {while (esp8266.available ()) {char c = esp8266.read (); respuesta + = c; }} if (depurar) {Serial.print (respuesta); } respuesta de retorno; }
Prueba y salida del proyecto:
Después de cargar el código, abra Serial Monitor y le mostrará una dirección IP como se muestra a continuación.
Escriba esta dirección IP en su navegador, le mostrará el resultado como se muestra a continuación. Tendrás que volver a actualizar la página si quieres ver de nuevo que la papelera está vacía o no.
Entonces, así es como funciona este sistema de monitoreo de basura, este proyecto se puede mejorar aún más agregando algunas características más, como podemos configurar un mensaje más cuando la papelera está medio llena o podemos activar un correo electrónico / SMS para alertar al usuario cuando la basura La canasta está llena.