Tabla de contenido:

Postino: ¿El cartero entregó algo ?: 6 pasos (con imágenes)
Postino: ¿El cartero entregó algo ?: 6 pasos (con imágenes)

Video: Postino: ¿El cartero entregó algo ?: 6 pasos (con imágenes)

Video: Postino: ¿El cartero entregó algo ?: 6 pasos (con imágenes)
Video: PELÍCULA EN ESPAÑOL! Increíble película 2022! | 𝐀 𝐏𝐔𝐍𝐓𝐀 𝐃𝐄 𝐀𝐌𝐎𝐑 | Película Completa en Español 2024, Noviembre
Anonim
Postino: ¿El cartero entregó algo?
Postino: ¿El cartero entregó algo?

Ni una idea mía: un día un amigo me pidió una forma de comprobar de forma remota si había algún correo en su buzón. El buzón no está en el camino hacia su puerta, así que, como es un niño vago, se preguntó si un dispositivo tecnológico debería poder advertirle de cualquier carta en el buzón. Eché un vistazo al mercado y no pude encontrar ningún dispositivo listo para usar que se adaptara a sus necesidades, así que me planteé un desafío: ¿por qué no diseñarlo y construirlo?

Las limitaciones fueron:

  • funciona con batería con una vida útil razonable entre cambios de batería;
  • Comunicación WiFi;
  • verifique solo una vez al día si hubo correo o no;

La pregunta principal era: ¿qué tipo de sensor podría adaptarse a mis necesidades? Un sensor de proximidad no podía funcionar, ya que la verificación tenía que realizarse solo una vez al día y no en tiempo real; tampoco un sensor de peso, ya que esto habría añadido problemas de complejidad y sensibilidad (una hoja de papel podría resultar muy ligera). Mi elección aterrizó en un sensor de tiempo de vuelo (un micro láser). Una vez calibrado para el tamaño del buzón, ¡cualquier cosa que estuviera en el medio habría activado el sensor! Teniendo en cuenta las 3 limitaciones, decidí usar un ESP8266 (ejecutando el software y vinculándolo a WiFi), un sensor de tiempo de vuelo VL6180 para la medición y un reloj de tiempo real DS3231 para activar todos los circuitos una vez al día: así fue como ¡Postino nació!

Paso 1: Piezas y componentes

  • ESP8266-01 (o ESP-12E NodeMCU)
  • Sensor de tiempo de vuelo VL6108
  • Reloj en tiempo real DS3231
  • MosFET de canal N IRLZ44
  • Transistor BC547
  • Resistencias
  • Batería CR123

Paso 2: el sensor

El sensor
El sensor

El corazón del sistema es el sensor VL6180. Se trata de una tecnología innovadora que permite medir la distancia absoluta independientemente de la reflectancia del objetivo. En lugar de estimar la distancia midiendo la cantidad de luz reflejada desde el objeto (que está significativamente influenciada por el color y la superficie), el VL6180X mide con precisión el tiempo que la luz tarda en viajar al objeto más cercano y reflejarse en el sensor (Tiempo -luz apagada). Combinando un emisor de infrarrojos, un sensor de rango y un sensor de luz ambiental en un paquete reflowable listo para usar tres en uno, el VL6180X es fácil de integrar y ahorra al fabricante del producto final optimizaciones de diseño ópticas y mecánicas largas y costosas.

El módulo está diseñado para un funcionamiento de baja potencia. Usé la placa de ruptura Pololu que tiene reguladores de voltaje a bordo que le permiten trabajar en un rango de voltaje de entrada de 2.7 V a 5.5 V.

El sensor permite 3 factores de escala válidos que establecen el rango máximo de medición de 20 a 60 cm, con diferentes sensibilidades. Al configurar un factor de escala de rango, el rango máximo potencial del sensor se puede aumentar a costa de una resolución más baja. Establecer el factor de escala en 2 proporciona un rango de hasta 40 cm con una resolución de 2 mm, mientras que un factor de escala de 3 proporciona un rango de hasta 60 cm con una resolución de 3 mm. Tienes que probar las 3 escalas con las dimensiones de tu buzón. Como el mío era de 25 cm (H), utilicé el factor de escala = 1.

Paso 3: personalización del reloj en tiempo real

Para el RTC utilicé una placa de conexión DS3231 que incluye una EEPROM (inútil para mi propósito) y una batería del tamaño de una moneda. Cuando decidí alimentar el RTC a través de la batería del dispositivo principal (una CR123 de 3v), quité la batería tipo moneda; para ahorrar energía, también quité la EEPROM (cortando con cuidado sus pines) y el led integrado.

La batería de moneda no me resultó útil porque no necesitaba mantener la fecha / hora / minuto / segundo en tiempo real, pero el RTC solo tenía que contar durante 24 horas y luego activar la alarma para encender el dispositivo.

Paso 4: Otros varios a bordo

Otros varios a bordo
Otros varios a bordo
Otros varios a bordo
Otros varios a bordo

El encendido del dispositivo se logra mediante un transistor y un circuito MosFET, activado por la alarma RTC. Una vez que se restablece la alarma, el circuito corta la energía al dispositivo por otro ciclo de 24 horas. Cuando se alcanza la alarma, el DS3231 cambia un pin de alto a bajo: en condiciones normales, el transistor está saturado y cortocircuita la puerta del MosFET a tierra. Una vez que la alarma lleva la base del transistor a tierra, se abre y permite que el MosFET cierre el circuito y dé energía al resto de los componentes.

Además, agregué un puente de "prueba-1M". El propósito de este conmutador es, si está activado, cambiar el ciclo de una vez al día a una vez por minuto, para ejecutar pruebas de implementación. Para cambiar el intervalo de un día a un minuto, primero debe cerrar el puente “Test-C” durante unos 15 segundos, para evitar el período de activación de la alarma del reloj y encender el dispositivo. Cuando terminen las pruebas, abra los puentes y reinicie el dispositivo (apague y encienda).

Paso 5: esquema

Esquemático
Esquemático

Paso 6: software y lógica

Durante las pruebas utilicé (por razones prácticas) un controlador NodeMCU, por lo que el software se encarga de esto configurando la variable CHIP en “NodeMCU” o “esp8266”.

El boceto implementa la biblioteca WiFiManager para permitir que el dispositivo se conecte a un AP WiFi válido durante la primera ejecución. En tal caso, el dispositivo entra en modo AP, lo que le permite conectarse y elegir la red WiFi adecuada para unirse. Después de eso, la configuración de la red se guarda en la EPROM para los ciclos posteriores.

La variable REST_MSG contiene el mensaje http para enviar cuando el sensor encuentra un objeto en el buzón. En mi caso, envía un mensaje a un servidor REST domótico, pero puedes cambiarlo como prefieras: un mensaje BOT de Telegram, un evento IFTTT WebHook, etc.

El resto del boceto está todo en la función setup (), ya que nunca se alcanza el bucle. Después de las configuraciones necesarias para las distintas bibliotecas, el software establece la hora del reloj en 00:00:01 y la alarma en una vez al día (o una vez por minuto si el puente “test-1M” está activado). Luego realiza la medida, envía la notificación (si se encuentra algún objeto en el buzón) y resetea el pin de alarma, apagando el dispositivo. Al final del ciclo, solo se enciende el RTC, contando durante 24 horas. El jumper Test-1M se conecta al pin RX del ESP8266, utilizado como GPIO-3 mediante el ajuste: setMode (PIN, FUNCTION_3). Debido a esto, no puede usar el monitor serial mientras ejecuta el ESP8266: la línea “#define DEBUG” (que permite todas las impresiones seriales en el boceto) se usa solo cuando se instala un NodeMCU en lugar de un ESP8266.

El ESP8266 maneja la comunicación I2C con el RTC y el sensor a través de sus pines GPIO-0 y GPIO-2, inicializados en la biblioteca Wire.

El código completo se puede descargar desde este enlace.

Concurso de tecnología de asistencia
Concurso de tecnología de asistencia
Concurso de tecnología de asistencia
Concurso de tecnología de asistencia

Finalista en el concurso de tecnología de asistencia

Recomendado: