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.
¿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?
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.
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.
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.
Ron Beyer
Defozo