Timbre inalámbrico ESP8266 Parte 3 : Receptor

Hasta ahora, en las versiones anteriores del receptor del timbre, el avisador consistía en un aro de leds de 3mm y un buzzer activo. Un amigo me regaló un par de matrices led 8×8 monochromo de ánodo común, por lo que decidí ir un paso más allá y jugar con alguna animación mostrada por la matriz.

Deeder_M.jpgdl1250

Al principio, el driver de la matriz lo hice con un desplazador de registro 595. No me convenció mucho pues, nadie te libra de las 8 resistencias por fila/columna. Por lo que investigando un poco en la red, encontré un integrado maravilloso, el MAX7219. Éste te multiplexa 8 ánodos y 8 cátodos por lo que te sirve para usarlo con displays de 7 segmentos de hasta 8 cifras, matrices led, etc. Además la intensidad máxima por segmento se controla con nada más que una resistencia y la interfaz de comunicación es por SPI.

IMG-20160824-WA0041

Acabé dando con una librería de Adafruit (para variar) que definiendo un array de 8 bytes, se pueden definir las imágenes de 8×8 a mostrar por la matriz, para luego mandárlos fila por fila por SPI a través de la API de la librería.

Las primeras pruebas las he hecho con un Arduino Uno y luego he portado el código a una nodeMCU para las pruebas de conectividad y recepción de mensajes.

He recurrido al protocolo UDP dada su simplicidad. Si habéis visto los códigos del sensor de luz tanto como del detector, habréis visto que los comandos UDP se mandan a una IP fija. Si tenéis el dhcp activado en vuestro router, que va a ser lo más probable, os recomiendo que en la configuración del dhcp reservéis la IP en cuestión para la MAC del dispositivo al que vayan estos comandos. Sé que no es la solución más elegante, pero me ha resultado sencilla.

SKU188843-1

Para este módulo he usado el ESP07, que es otra variante del ESP8266 con los pines accesibles y soldables. Además de tener la antena WiFi integrada, dispone de un conector UFL por si necesitases mayor cobertura. Dada la complejidad del circuito, para éste si que he diseñado y fabricado una placa con componentes en su mayoría SMD.

También he intentado el método de la pintura UV para proteger la placa, pero como se puede observar aun no le he cogido el tranquillo. Pero bueno, la placa ya tiene una segunda versión arreglando los fallos de la que está actualmente montada, la cual dejaré para ver que tal responde.

IMG-20160829-WA0035Este es el esquema del circuito:

Captura

¿Os acordáis de aquel comando UDP que mando en el sensor de luz? Os habréis preguntado para que servirá. Pues bien, para diferenciar 2 tipos distintos de timbre. En mi caso, tengo dos timbres, uno en la verja de fuera y otro en la puerta de casa, habitáculo el cual cubre el PIR del sensor de la luz. Por lo que uso el disparo del PIR para determinar donde están llamando al timbre (así si el vecino viene a quejarse porque le estoy dando amor al ampli y a la guitarra, puedo pasar directamente de él. :P), bromas aparte, considero que es útil diferenciarlos.

Aquí tenéis el código.

He decidido dibujar una campana tañendo para avisar del timbre, pero allá cada uno la manera en la que decide avisar, como si quiere dibujar… otra cosa.

IMG-20160823-WA0017

y aquí el montaje final.

IMG_20170413_154158

IMG-20160830-WA0020

En mi cuenta de instagram tengo videos en los que se ve la animación.

 

Deja un comentario

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