¿Puedo activar ESP8266 con fotorresistor como en este esquema?

Quiero activar ESP8266 cuando se encienda la luz, enviar información al servidor, entrar en modo de suspensión profunda durante unos segundos y luego enviar la información nuevamente y seguir haciéndolo. Si el servidor deja de recibir la información, significaría que la luz se apaga nuevamente.

Este es mi esquema:ingrese la descripción de la imagen aquí

¿Funcionará?

Estoy preguntando específicamente sobre la parte donde conecto mi fotorresistor al pin RESET.

Pregunta adicional (opcionalmente para responder): si me gustaría intercambiar la resistencia con el potenciómetro, ¿cómo debo conectarlo?

¿Qué tipo de fotorresistencia es? Lo que parece que has hecho aquí es solo un divisor de voltaje. Si la resistencia es extremadamente alta cuando está oscuro y baja cuando hay luz, puede funcionar dependiendo de las resistencias. Supongo que la resistencia no es un circuito abierto cuando está oscuro, realmente depende de la resistencia y del voltaje que se aplica al pin de reinicio.
¿Quizás cambiar la resistencia R6 con el potenciómetro resolvería el problema? Podría simplemente ajustar la resistencia experimentalmente.

Respuestas (4)

Yo recomendaría no hacer eso. Los fotorresistores son dispositivos lentos y es posible que esté oscilando alrededor del punto en el que se activa un reinicio, por lo que es posible que esto no funcione tan bien.

En su lugar, recomendaría usar algo que tenga un umbral claro y emita un solo impulso de reinicio en lugar de un máximo constante, para que esto no suceda. En cualquier caso, RESET debe ser impulsado con una señal binaria, y no algo así como "bueno, estaba 0,1 V por debajo del umbral, estoy 0,05 V por encima, así que es mejor reiniciar".

De todos modos, no conozco muy bien el ESP8266, pero ¿estás seguro de que quieres reiniciar el dispositivo? Eso es como encender y apagar su PC con el interruptor de encendido, solo para despertarlo. Tal vez el ESP8266 tiene un pin que se puede usar como interrupción y un modo de suspensión para despertarse, y preferiría eso.

Su idea parece ser que mantenga el ESP8266 en modo de reinicio mientras está oscuro; ni siquiera estoy seguro de que sea eficiente en términos de energía.

Sí, mi idea era mantener el ESP8266 en modo de reinicio mientras estaba oscuro. En general, la idea es obtener información sobre el estado de la luz en el baño (generalmente está perfectamente oscuro o totalmente brillante; se montará a una distancia muy cercana a la luz), así que me preguntaba acerca de diferentes enfoques y esto parecía minimalista y, sin embargo, energéticamente eficiente. AFAIK ESP8266 tiene un modo de alimentación que permite activar ESP mediante la interrupción de un pin, pero este modo necesita aproximadamente 0,5 mA, mientras que el modo de suspensión profunda solo necesita unos pocos µA. ¿Qué tal usar fototransistor en su lugar?
¿Qué puede despertarlo del sueño profundo?
Supongo que solo el pin RESET y la interrupción del RTC interno que envía la señal a RESET a través de GPIO16.
Hm, de alguna manera lo dudo. Si su única forma de salir de un estado de suspensión es un reinicio completo, entonces ese estado de suspensión es completamente inútil; también podría apagar el dispositivo por completo.
Es cierto. No puede usar un evento externo en alguna línea GPIO. En el modo de suspensión profunda, solo RTC está activado (la CPU y el reloj del sistema están desactivados). GPIO16 genera un pulso corto para restablecer ESP. Entonces, cualquier pulso de reinicio despertará ESP. No es completamente inútil debido al temporizador que se puede configurar para despertar ESP.
@Defozo, ¡pero eso es diferente de "solo restablecer y retroalimentar RTC externamente para restablecer"! ¡Genial! Simplemente deje que su ESP se despierte cada x milisegundos, mida la luz y vuelva a dormir. ¡Tadah! ¡Ahorro de energía instantáneo! ¡Probablemente ahorra mucho más que tener que reiniciar el dispositivo cada vez!
yo no estaría de acuerdo Cómo despertar cada x milisegundos puede ahorrar mucho más que despertar ESP solo cuando la luz está encendida. Probablemente podría aplicar esta estrategia a ESP cuando la luz ya está encendida, pero preferiría no despertarlo cuando la luz esté apagada. Lo siento por mi ingles.
Quiero decir, es una buena idea, pero puede ser mejor, ¿no? ¿O tal vez no me dará mucho más tiempo con la batería?
(¡tu inglés es excelente!) Bueno, tendrás que hacer los cálculos tú mismo; Ciertamente evitaría mantener el dispositivo en reinicio con un divisor de voltaje analógico. Realmente no creo que logres mucho mejor que eso. Quiero decir, realmente haz los cálculos: ¿Con qué frecuencia necesitarías despertarte para verificar? Cuando te despiertas y no hay luz, ¿cuánto tiempo estás encendido? ¿Cuál es el consumo de corriente resultante?
Por cierto, los fototransistores dependen mucho de la temperatura. Entonces, en el verano, es posible que se despierte con más frecuencia que en el invierno con su enfoque de reinicio. ¡Con mi enfoque de activación, es posible que pueda compensar la temperatura enviando datos solo cuando la resistencia tiene baja resistencia durante un período más largo!
Sí, probablemente tengas razón. Es mucho menos propenso a errores y es fácil de hacer. Haré un prototipo a tu manera, haré algunas pruebas y luego lo mejoraré paso a paso si no estoy satisfecho con los resultados.

En teoría: sí, con el R6 derecho. En la práctica, necesitará una solución ligeramente diferente.

Para restablecer el EPS8266, REST debe colocarse por debajo de Vcc/4 (generalmente ~ 0.8V). Tiene un pull-up débil interno y la mayoría de los módulos prefabricados (D1, NodeMCU, etc.) agregan otro pull-up externo para evitar reinicios falsos.

Es probable que su fotorresistencia tenga más de 1 MΩ en la oscuridad y en el rango de 10 a 100 kΩ en la luz (¡mida!). Entre Vcc y REST, actúa como otro pull-up variable. Para reiniciar el dispositivo, debe elegir R6 lo suficientemente bajo como para superar todos estos pull-ups, mientras que al mismo tiempo lo mantiene lo suficientemente alto como para evitar reinicios falsos. En la práctica, esto no funcionará.

Lo que podría hacer en su lugar es usar un disparador Schmitt (por ejemplo, 74AC14), un comparador de voltaje (con colector abierto, por ejemplo, LM393) u OpAmp para monitorear el divisor de voltaje y usar su salida para llevar REST a GND cuando está oscuro.

Como alternativa, le sugiero que use el pin CH_PD (ENABLE). En lugar del pull-up permanente de 10k (R1), use el mismo divisor de voltaje y seleccione R6 para que sea alrededor de 3-4 veces la resistencia 'ligera' de su fototransistor. Esto debería funcionar sin piezas adicionales. El único inconveniente es que no puede usar la memoria RTC ya que técnicamente su dispositivo está apagado, no durmiendo.

PD: Para aquellos que no estén familiarizados con el ESP8266, la 'activación' es en realidad un reinicio (generalmente activado por el RTC que baja la línea de reinicio) y el dispositivo debe reiniciarse después de la activación.

Como mencionó Marcus, no se recomienda usar un valor analógico para esto. Si puede, le sugiero cambiar a un fotodiodo y luego usarlo para activar el circuito de disparo único en esta respuesta a una pregunta anterior de ESP8266

Si aún desea usar el fotorresistor y un potenciómetro para tener un umbral ajustable, probablemente querrá usar un comparador. Algo similar a esto con el pin 7 conectado al circuito one-shot.

ingrese la descripción de la imagen aquí

Puede mantener el ESP en reinicio constantemente cuando está oscuro, pero verifique que no se extraiga corriente adicional en ese estado inusual.

Una opción es despertarse con la luz como escribió, enviar datos, configurar un despertar automático aproximadamente un minuto en el futuro, ir a dormir profundamente. Si la luz permanece encendida, te despiertas un minuto más tarde y envías datos nuevamente. Si la luz se apaga, no te despertarás y eso está bien para ti.

Esto no es lo mejor.

Conecte el fototransistor tanto a un attiny como a ESP, configure el Attiny para que se despierte con el CAMBIO de nivel del pin donde conecta el gatillo, espere 1 segundo (en caso de que el dedo se resbale y la luz se encienda/apague rápidamente por error) , haga que Attiny encienda el ESP usando un P-MOSFET, haga que el ESP lea la salida Schmitt y envíe datos.

Te despiertas solo cuando es necesario, solo cuesta una vez. Cabe en la parte trasera del ESP-12. También puede evitar el MOSFET y simplemente usar el attiny para encender el ESP desde su estado de apagado.

http://ww1.microchip.com/downloads/en/DeviceDoc/doc8126.pdf 7.1, modos de suspensión: puede activarlo desde el apagado con cambios de pin. 19.4 Consumo de energía en apagado: 0.2 uA. Años de uso si utilizas un Li-Ion con regulador lineal MCP170x a 3V.

Para información: en el sueño profundo se retiene algo de memoria del ESP, creo que alrededor de 60-100 bytes. En el modo de apagado, no.