consultas@firtec.com.ar
Electrónica y programación para Microcontroladores.
Libros técnicos para electrónica programable.
Revolviendo viejos cacharros electrónicos en desuso encontré un viejo sistema de alarma que que si bien es funcional no tiene la posibilidad de conectar con nada excepto con un par de controles remotos para manejar sus funciones.
Se me ocurrió montarla en un deposito que está a varias calles de mi casa pero claro lo ideal seria poder controlar su estado y saber si se dispara o no. Como la alarma no tiene conectividad pero el deposito tiene conexión a Internet entonces me propuse construir un dispositivo que fuera capaz de actuar sobre los botones del control remoto y para eso desmonte uno de los controles dejando su placa al descubierto. Inicialmente arme todo en un proto-board para verificar su funcionamiento.

Como tenia un par de relay usados con Arduino, use uno para actuar en cada botón ACTIVAR y DESACTIVAR y el estado de la alarma lo veo monitoreando el voltaje de salida que activa una sirena de 12V, si hay voltaje la sirena suena y por lo tanto la alarma se disparo, para censar este voltaje uso un acoplador óptico PC817.
El cerebro de todo el proyecto es una placa Pico W que se conecta a Internet a un broker MQTT gratuito que cree en el sitio HiveMQ.

El código completo en MicroPython es el siguiente:
En el archivo config.py se almacenan las credenciales de acceso a la red WiFi como también el acceso al broker.
El funcionamiento sorprende por la estabilidad del broker, realmente muy bueno tanto que voy agregarle mas funciones como control de luces, botón de pánico Incluso el envío de mensajes por WS o Telegram avisando a alguien mas sobre lo que está sucediendo.
El funcionamiento es muy simple, la placa electrónica cada 5 segundos me envía el estado de alarma que veo en una aplicación que descargue del PlayStore, del montón de app que hay esta cumple con lo que necesito.

Si la alarma se activa en el teléfono suena una alarma para indicar que hay un intruso. Si quiero activar la alarma oprimo el botón correspondiente y el programa envía un comando al broker que a su vez lo envía a la placa electrónica que actúa sobre el relevador correspondiente y le "hace creer" al control remoto que un dedo humano activo el botón lo mismo para desactivar.
Una vez que el sistema esta conectado se pueden sumar tantas funciones como comandos sean enviados.

Esta claro que se podrían eliminar los relay y hacerlo todo mas "electrónico" pero como salio funcionando a la primera así se quedo.
Toda esta maraña de cables lleva ya dos semanas funcionando sin problemas así que el paso siguiente será soldar todo en una placa colocarlo en una caja y montar todo en el lugar definitivo. Es de notar que todo este control y o acción sobre la alarma o el sistema bajo control es totalmente gratuito el único costo realmente muy bajo son los componentes para el montaje y basta que nuestro móvil tenga acceso a Internet tendremos control del sistema desde cualquier parte del mundo.
Luego estaré subiendo el diagrama electrónico.
Las palomas si bien son aves simpáticas pueden dejar de serlo cuando deciden de manera insistente construir su nido en el compresor del sistema de aire acondicionado.
Esto ademas de ser molesto por la cantidad de basura que generan al construir su nido resulta peligroso para las propias palomas y para el equipo de aire acondicionado .
Como la idea es tratar de convencer a las palomas de que se busquen otro lugar sin hacerles daño se me ocurrió construir este pequeño dispositivo usando el sensor ultrasónico HC-SR04 un Arduino Nano y algunos componentes extras como un potenciómetro de 10K, dos display cátodo común y dos transistores BC337.
El objetivo es usar el sensor para detectar palomas en donde no deben estar y activar una señal sonora que las espante cada vez que se acerquen a la zona de cobertura. El sistema cuenta con un potenciómetro que ajusta el rango de alcance donde se debe activar el sistema "espanta palomas", este rango se visualiza en dos dígitos.
El rango se puede cambiar actuando sobre el botón de programación y moviendo el potenciómetro, el nuevo valor se almacena en memoria EEPROM por lo tanto el sistema siempre "recuerda" el valor fijado aunque su alimentación se pierda.
El siguiente es el código completo del trabajo propuesto.

También podemos eliminar el CD4511 y manejar todo el display directamente con Arduino, para esto tendríamos que modificar el circuito electrónico y adecuarlo a este nuevo código que es el que actualmente esta funcionando en terreno.
En los meses que el sistema lleva funcionando los resultados han sido impecables y las palomas finalmente decidieron buscar un lugar mas tranquilo donde construir su nido :)
Cuando se programa la placa Raspberry Pi Pico con Micropython el proceso de actualizar el código en memoria Flash
resulta muy cómodo, como el interprete ya esta cargado en memoria solo conectamos el cable USB y se actualiza el nuevo programa tantas veces como sea necesario o actualizaciones tengamos del código.
Sin embargo cuando trabajamos en C/C++ la mecánica para actualizar los programas en Flash es un poco diferente teniendo que desconectar el cable USB, presionar el boton BOOTSEL y en simultaneo conectar nuevamente el cable USB.
El tema de tener que conectar/desconectar el cable USB me parecía molesto y me puse a investigar la forma de eliminar la necesidad de tener que conectar y desconectar el cable USB en cada re-programación de la Flash. En mi caso tengo montada la placa en un proto-board con alimentación de 5 voltios, esta placa es donde ensamblo los prototipos que luego son programados en la placa definitiva esto es importante porque la placa no debe recibir alimentación por el cable USB, solo el cable GND deberá estar conectado entre la computadora y la placa pico.
Para no tener que desconectar el cable USB del computador he construido el siguiente circuito electrónico que toma señal del punto marcado como TP6 en la placa Pico, cuando se oprime el botón BOOTSEL se dispara un temporizador que corta la energía de la placa durante un par de segundos, la computadora entonces "entiende" que se desconecto el cable USB y se volvió a conectar luego de unos segundos y la placa pasa a modo programación.

Es decir que solo con actuar sobre el botón BOOTSEL ya es suficiente y no es necesario remover el cable USB en cada actualización de Flash.
Como se ve en el diagrama de la placa Pico, el botón BOOTSEL cambia el estado del pin CS de la memoria Flash en el mismo momento que el cable USB es removido y vuelto a conectar al computador conectando y desconectado la alimentación de la placa Pico y dejando la memoria lista para recibir el nuevo programa Flash.
Obviamente que para que esto funcione la placa Pico no debe recibir alimentación por el USB desde el computador pero si compartir el GND. En mi caso y como ya lo tenía utilicé un pequeño relay de 5 voltios para desconectar/conectar la alimentación de la placa Pico y para eliminar la alimentación por el cable USB, prolijamente abrí un cable USB y corte el cable que trae los 5 voltios.
El sistema funciona perfecto y ya no tengo que conectar y desconectar el cable USB cada vez que actualizo el código en C++ en la memoria Flash de Pico.
Medición de Temperatura y Humedad con Arduino.
Uno de mis pasatiempos es el cultivo de plantas tropicales, hortalizas y hongos en ambientes controlados y conocer los valores de temperatura y humedad ambientales resultan indispensables para conocer las condiciones en que los cultivos se están desarrollando.
Fue entonces que construí este simple medidor basado en un DHT22 conectado a un Arduino Nano. Para mejorar la visualización utilicé una pantalla gráfica JL12864G como se aprecia en la siguiente imagen.

El desarrollo original no pretendía construir un dispositivo elegante si mas bien funcional y práctico que pudiera mover a cualquier parte del vivero o al espacio de cultivo con bancales o cajones de madera.
El código para Arduino es muy simple, el sensor DHT22 conectado al INT0 de la placa Arduino Nano y la pantalla a los pines 8,9,10,18 y 19.
Página 1 de 2