Circuito para encender el microcontrolador cuando cambia el estado del interruptor de láminas (para monitorear el estado de bloqueo de la puerta)

Me gustaría construir un circuito que proporcione energía a un microcontrolador (ESP8266 en este caso) cuando un interruptor de lengüeta se cambia de cerrado a abierto Y cuando se cambia de abierto a cerrado.

Esto se utilizará en un circuito que monitoreará el estado de una cerradura de seguridad. Estoy planeando colocar un imán en el extremo del perno y colocar un interruptor de láminas dentro de la caja de la cerradura con un cable esmaltado que se extiende hasta el ESP8266 que se montará discretamente en la pared cercana. El circuito funcionará con baterías, ya que el suministro de energía a la ubicación de la cerradura no es práctico (ni tendrá un WAF lo suficientemente alto como para obtener la aprobación).

Cuando la cerradura está cerrada, abrirá el interruptor de lengüeta y cuando esté abierto cerrará el interruptor de lengüeta (o al revés, no me preocupa si el interruptor de lengüeta es NO o NC).

Cuando alguien bloquea la cerradura, me gustaría que el circuito proporcione energía al ESP8266 para que pueda conectarse a wifi y enviar un mensaje al servidor de automatización que registra que la cerradura se cerró y luego se apaga (idealmente a un estado de consumo de corriente cero ).

Luego, cuando alguien desbloquee el candado, me gustaría que sucediera lo mismo, aunque el mensaje será diferente, pero lo manejaré en código, obviamente.

He investigado los circuitos de alimentación de enganche suave, pero solo parecen funcionar cuando se presionan los interruptores momentáneos. Aquí hay un ejemplo de EEVBlog:

https://www.youtube.com/watch?v=Foc9R0dC2iI

Aquí hay otros dos ejemplos de circuitos unilaterales similares:

https://randomnerdtutorials.com/latching-power-switch-circuit-auto-power-off-circuit-esp32-esp8266-arduino/

https://www.instructables.com/id/LEIDS-Low-Energy-IOT-Door-Sensor/

Esta es una pregunta similar, pero parece depender de que haya energía constante disponible en la ubicación de la cerradura, por lo que no es buena para mi aplicación:

¿Cómo crear un detector de puerta cerrada?

Esto también parece estar haciendo una pregunta similar, pero no puedo entender la respuesta (y no hay un diagrama final que muestre cómo la puerta XOR está conectada al interruptor y al microcontrolador):

Necesito un interruptor que no solo detecte abrir/cerrar, sino que también envíe un pulso para activar un ESP8266 cada vez que cambie el estado (rebote)

También pensé en tener el ESP8266 en un ciclo de vigilia-sueño profundo cada 5 minutos más o menos y solo informar el estado del interruptor de láminas, pero esto significaría que las baterías solo duran unos meses y me gustaría que duren mucho más largo (>1 año). El otro problema con ese enfoque es que es posible que tenga que esperar hasta 5 minutos para saber si la cerradura está abierta o cerrada; a menudo, me alejo de la casa y dentro de 1 o 2 minutos quiero verificar si cerré la cerradura en el salida, por lo que sería muy útil poder comprobarlo al instante.

También me pregunto si se podría hacer usando dos interruptores de láminas, uno NO y otro NC para activar de alguna manera el sistema...

Cualquier ayuda sería muy apreciada, ¡incluso si es para decir que estoy pidiendo lo imposible!

Respuestas (3)

No hay forma de probar el estado de un interruptor de láminas sin intentar pasar corriente a través de él. Si no desea que la corriente pase continuamente a través de un interruptor cerrado, debe tener algún proceso que verifique periódicamente el estado del interruptor al aplicarle energía.

También pensé en tener el ESP8266 en un ciclo de vigilia y sueño profundo cada 5 minutos más o menos y simplemente informar el estado del interruptor de láminas...

Estás en el camino correcto. Si el propio ESP8266 consume demasiada energía al hacer esto, considere usar una MCU "auxiliar" de potencia mucho más baja para realizar esta prueba, que luego puede aplicar energía al ESP8266 solo cuando es necesario enviar un mensaje.

Gracias por tu respuesta Dave. Me hizo pensar que tal vez no necesito verificar el interruptor de lengüeta y solo puedo almacenar el estado anterior en EEPROM y alternar eso cada vez que se enciende. Edité la publicación original para reflejar esto; en última instancia, me gustaría saber si es posible tener un circuito de alimentación de bloqueo como se describe. Además, ¿cuál sería una MCU 'auxiliar' adecuada para lograr esto?
@Thinqer77: hay muchas MCU adecuadas para esta tarea. Básicamente, debe hacer un diseño de bloc de notas, ver si el ESP8266 funcionará y, si no, buscar un procesador que lo haga. Comience con las ofertas que se anuncian como de "baja potencia", y además de prestar atención a la energía inactiva con algún tipo de reloj en marcha, preste atención a la cantidad de energía que necesitará para que se despierte, verifique el interruptor y ir a dormir de nuevo. Por lo general, mido mi éxito en cosas como esta comparando mi corriente promedio con la corriente de autodescarga de las baterías.

Intente usar el siguiente circuito con ESP8266.

esquemático

simular este circuito : esquema creado con CircuitLab

El esp8266 permanece en modo de suspensión profunda todo el tiempo y solo se despierta cuando cambia el estado del interruptor de láminas. En su caso, el esp8266 solo se ejecutará cuando el estado de la puerta cambie de abierta a cerrada o de cerrada a abierta, conservando así la batería al entrar en suspensión profunda por el resto del tiempo.

El factor diferenciador entre los estados del interruptor es el estado de gpio en ese momento. Cada vez que el estado cambia, el pin Habilitar se vuelve a activar y especialmente se reinicia, luego realiza una lectura digital en el gpio para verificar el estado del interruptor de lengüeta y entonces es su deseo cómo manejar esa entrada (por ejemplo, publicarlo en el servicio en la nube), después de esto, especialmente entra en sueño profundo y se despierta solo cuando se reinicia a través del mecanismo mencionado anteriormente.

El único requisito aquí es usar un interruptor de láminas con 3 terminales como el siguiente.

ingrese la descripción de la imagen aquí

Creo que esto podría funcionar, pero la corriente de suspensión profunda de esp8266 es de alrededor de 20 uA y con la resistencia de 100 K, el total será de más de 50 uA, no mucho, pero tal vez demasiado con una batería pequeña.

Agregando mi respuesta ya que he tenido la misma pregunta. He encontrado algunas respuestas, pero no ninguna completa con todas las partes y que han sido probadas.

Este es un prototipo de trabajo que hice. Puede ver más detalles sobre las piezas, modificarlas y pedir las suyas propias si lo desea.

Consume un poco de energía debido al XOR y al R5 cuando el interruptor de láminas está cerrado, pero según mis cálculos, debería funcionar durante más de un año con una batería de 200 mah.

Este es el esquema:
esquemático

Aquí hay un enlace a mi proyecto en jlcpcb: https://easyeda.com/jakibsgaard/low-powered-rising-and-falling-power-on-circuit

También tengo una pregunta abierta donde quiero mejorar el circuito que he hecho. Pero eso no es obligatorio. Esto tiene mucha más información sobre el circuito que hice. Detector de borde mejorado con circuito de enganche para esp8266

Valdría la pena volver a leer la respuesta de Dave para comprender mejor el punto que se está señalando allí, que dejar un interruptor que complete un circuito contra una resistencia de tracción costará energía, probablemente 10 uA. En algunas aplicaciones eso puede estar bien, especialmente si solo ocurre en el estado menos habitual de la puerta. Pero para una potencia realmente baja, necesita algo para cambiar el sentido del interruptor y las resistencias de extracción una vez que se nota un cambio de estado, de modo que no haya drenaje de corriente hasta el breve instante antes de que se pueda adaptar el próximo cambio de estado.
John-Arvid: bienvenido :-) Dijiste cosas como " No estoy muy seguro de qué valores debo tener en las resistencias y los capacitores para obtener el mejor resultado ", por lo que no me queda claro si estás tratando de hacer una pregunta. pregunta o no. Según las reglas de Stack Exchange, no puede hacer preguntas en el cuadro que usó, etiquetado como "Su respuesta". Del mismo modo, no podemos responder preguntas (erróneamente) publicadas como "respuestas". Para hacer una nueva pregunta, vaya aquí (aclare su(s) pregunta(s)). Puede agregar un enlace a esta pregunta para el contexto, si hace una nueva pregunta. Gracias
Edité mi respuesta con una (con suerte) mejor respuesta.