Alarma PIR con Sleep Mode

          Alarma con sensor de variación de temperatura (PIR), aviso por Telegram y modo Sleep que nos da un consumo de solo 0,3mA.
          Esta alarma no está pensada para un uso diario, sí en caso de ausencia prologada del domicilio (trabajo, viaje..).
          La idea es conjuntarla con UPS en el router, de modo que si el intruso desconecta la alimentación del lugar, ambos dispositivos siguen funcionando mandando el aviso a nuestro móvil
          He usado el esp8266 sobre una placa, pero puede usarse directamente sobre el circuito de tiras ya que solo se necesitan soldar positivo, negativo y reset. Si se quiere programar usar también TX, RX y GPIO0 (a masa solo para programar).
          Sobre el chip hay que unir masa a GPIO15 y a 3,3v el pin CH_PD.

          El motivo del uso del chip solo, es que si usamos un Nodemcu este, debido a los componentes adicionales no tendría un consumo tan bajo en modo Sleep.
          El sensor PIR tiene un consumo también muy bajo. Cuando este detecta una perturbación térmica pone su pin de salida en alto provocando la conducción del transistor 2N3904 que pone a masa el RST y el esp8266 hace un reset. 

          La alimentación es "dual". He usado dos baterías en serie de litio con voltaje cada una entre 3,7v y 4v. El sensor PIR solo funciona bien a partir de 5v y por tanto usa los dos elementos.
          El esp8266 no tolera más de 3,6v. Por tanto tomo la alimentación de una sola batería y rebajo su voltaje con un diodo 1N4007.
          Así el sistema funciona perfectamente.
#include <CTBot.h>    
CTBot myBot;
String ssid = "Jopapa";   
String pass = "xxxxxxxxxxxxxx";
//Poner tu Telegram BOT TOKEN
String token = "787759038:AAF4pi7Lv3m2kSCRQ8FketzYNEVvkgp7DEM";  
long id=631458827;  //chat_id
void setup() {
  Serial.begin(115200);
  myBot.wifiConnect(ssid, pass);
  myBot.setIP("192.168.1.82", "192.168.1.1", "255.255.255.0"); //IP statica
  myBot.setTelegramToken(token);
  Serial.println();
  if (myBot.testConnection())
   Serial.println("\nConexion OK");
  else
   Serial.println("\nConexion fallida");
   TBMessage msg;
   myBot.sendMessage(id, "Alarma Sensor PIR");
   ESP.deepSleep(0);
}

void loop() {
}
          El programa es muy simple y está todo en el Setup() que se ejecutará cada vez que ocurre un Reset.

           Conecta con nuestro router, asigna una IP, conecta con Telegram, envía el aviso y entra en Sleep mode.

            Por supuesto tenemos que tener un bot Telegram


            Esta alarma debe situarse en un lugar de paso porque aunque la alarma tarda solo unos pocos segundos en enviar la notificación, si está continuamente activada se producirán continuos reset sin darle tiempo a enviar nada.

            Durante los pocos segundos de activación el consumo es de unos 70mA para caer en modo Sleep a 0,3mA. En este estado y con baterías de litio puede funcionar muchos meses.

Menu