Alarma predictiva

 

          Hay muchos tipos de alarmas antirobo. Unas son por "rotura" del perímetro como son las de puertas y ventanas. Otras son por alarma dentro del recinto, detectores de movimiento PIR, corte de haces de luz, etc. En todas se produce la alarma cuando ya se ha dañado el perímetro o ya está en el interior el ladrón.

          Con una alarma por microondas podemos tener una alerta cuando el ladrón está "trabajando" en el exterior y aún no ha entrado y puede darnos tiempo a evitar males mayores.
          A la izquierda vemos el circuito que solo consta de cinco componentes.

    -Módulo microondas. Funciona a 5GHz y puede detectar movimiento de objetos o personas a más de uno o dos metros. Y lo más importante, a través de madera o paredes pero no de planchas metálicas. Esto nos permite colocar el sensor tras una puerta, ventana o pared y detectar la presencia de alguien que no debería estar ahí. Un complemento ideal en estos casos sería una cámara en esa zona y con posible conexión a nuestro móvil para valorar la posible amenaza. El sensor tiene dos potenciómetros, uno para regular la sensibilidad y otro el tiempo que permanece en alto la salida tras desaparecer la detección de algo o alguien.

    -Módulo con esp8266. Puede ser de cualquier tipo, mejor si tiene entrada usb para facilitar la programación. Yo he usado uno autoconstruido que tenia disponible.

    -Transistor 2N2222, resistencia de 1kΩ y condensador de 47µF.

          El funcionamiento es muy simple. Cuando el sensor microondas detecta una presencia, su salida (pin central) pone en conducción el 2N2222 que alimenta el esp8266 y su programa nos envía una alerta via Telegram. La salida del sensor debe regularse para al menos 40 segundos, tiempo suficiente para que esp8266 conecte con nuestro router y envíe el mensaje telegram.

          La razón de usar este sistema de alimentación del esp8266 es porque en estas pruebas he usado una batería (reciclada de un portátil) y dado que el esp8266 tiene un consumo elevado, solo dejo activo el sensor. Con ambos en marcha el consumo es de 95mA y solo el sensor baja a 22mA. Si se usase una alimentación de red eléctrica habría que modificar el programa para activar el esp8266 en algún pin y se pueden eliminar TR, R y C.
          El montaje alimentado con pack de pilas recicladas y colocado en la puerta. Se debe regular la sensibilidad para que detecte personas que se acerquen mucho al sensor de forma no habitual y que podrían estar manipulando las cerraduras. La puerta era blindada pero en la parte lateral no, por lo que el sensor podía funcionar. Apuntar que en este caso, la mirilla del domicilio esta conectada a internet y es visible en el móvil en caso de recibir la alarma Telegram.
//www.jopapa.me 2019
//El Sketch arranca al alimentarse temporalmente
//con salida sensor microondas a través de transistor
//y después pasa a Sleep si continuara alimentado.

#include <ESP8266WiFi.h>

const char* ssid     = "Jopapa";
const char* password = "xxxxxxxxxxxxxxxxxx";
const char* host = "192.168.1.xxx";                  //la dirección de mi NAS donde reside el php

void setup() {
  Serial.begin(115200);
  delay(10);
  IPAddress ip(192, 168, 1, 77);
  IPAddress gateway(192,168,1,1);
  IPAddress subnet (255,255,255,0);
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password); 
  WiFi.config(ip,gateway,subnet);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
}


void loop() {
  // Use WiFiClient class to create TCP connections
  WiFiClient client;
  const int httpPort = 80;
  if (!client.connect(host, httpPort)) {
    Serial.println("connection failed");
    return;
  }

  Serial.println("Enviando telegrammicroondas");
//SMS al detectar persona en microondas de la puerta
  // This will send the request to the server
  client.print(String("GET /telegramMicroondas.php") + " HTTP/1.1\r\n" +
               "Host: " + host + "\r\n" +
               "Connection: close\r\n\r\n");
              
  delay(30000);delay(10000);      //40'' para permitir reprogramar si se precisa         

Serial.println("Paso a modo deepSleep");
ESP.deepSleep(0);
}
Menu