¿Cómo puedo usar mi Raspberry Pi para detección de movimiento y SMS?


8

Estoy empezando ¿Cómo podría usar mi Raspberry Pi para hacer lo siguiente: cuando se detecta algún movimiento en mi puerta principal, envíeme un mensaje de texto (SMS)?


2
Parece que podría ser mejor como dos preguntas. Cómo detectar movimiento y cómo enviar SMS.
Jivings

1
puede considerar comprar Prowl, puede enviar notificaciones push a su teléfono: prowlapp.com
Gotschi

Respuestas:


11

Mi respuesta es en dos partes, una para detección de movimiento y otra para SMS. Un proyecto como este tiene dos componentes: hardware y software. La detección de movimiento es la parte del hardware y todo lo demás es software.

Movimiento

Hardware

Para detectar movimiento, obtenga un sensor de movimiento. Uso el Parallax PIR Motion Sensor: enlace de afiliado de Amazon aquí. El sensor tiene 3 pines: GND, VCC y OUT. Conecte los pines a su RPi o conéctelos a una placa de pruebas y conecte los pines del RPi a la misma placa de pruebas. Conecte GND a un pin GND (6), VCC a un pin 3.3v (1) y OUT a GPIO0 (11).

Software

Le recomiendo que use la biblioteca WiringPi. Siga estas instrucciones para descargar e instalar la biblioteca en su Pi: Descarga e instalación de la biblioteca Pi de cableado . El pin en el sensor de movimiento dice Alto si se detecta movimiento y Bajo si no lo es.

El detector de movimiento se reinicia después de unos 10 segundos cuando finaliza el movimiento continuo. Por lo tanto, el pin podría dispararse muchas veces en respuesta a un solo movimiento. Para evitar recibir mensajes SMS cada pocos segundos, probablemente desee incluir lógica en su programa para esperar una cierta cantidad de tiempo antes de enviar otro SMS.

SMS

Hay algunas formas diferentes de hacer esto. Una forma es suscribirse a un servicio pago que proporciona una biblioteca a la que puede llamar con la información pertinente para enviar el SMS. Twilio API Libraries es un buen ejemplo de esto.

Si no desea gastar dinero y tiene un número de Google Voice conectado a su teléfono celular, puede usar la API de Google Voice C ++ que Steven Hickson desarrolló para el RPi (API de Google Voice C ++ ). El resultado final podría verse más o menos así (lo escribí pero no lo cargué y lo probé en el RPi):

#include <wiringPi.h>
#include <time.h>
#include <string.h>
#include "gvoice.h"

int sendSMS(void);

#define MOTION_PIN 0
#define MINUTES_TO_WAIT 5

// some made-up error codes for SMS result
#define SUCCESS 0
#define LOGIN_ERROR 1
#define SMS_ERROR 2

static char *number = "2125551212", *message = "Motion detected!";

int main(int argc, char** argv) {
    time_t lastSent, now;
    int result;

    // track the time we sent the last SMS
    lastSent = time(NULL) - 60*(MINUTES_TO_WAIT + 1)

    // set up motion pin
    wiringPiSetup();
    pinMode(MOTION_PIN, INPUT);

    while (true) {
        if (digitalRead(MOTION_PIN)==HIGH) { // motion detected
            // get the current time
            time(&now);

            // if we've waited long enough, send a message
            if (difftime(now, lastSent)/60) > MINUTES_TO_WAIT) {
                if (result = sendSMS()) {
                    print("Message sent!\n");
                    lastSent = now;
                } else {
                    printf("Error %d. Message not sent!\n", result);
                }
            }
        }
    }

}

int sendSMS(void) {
    // Uses the Google Voice C++ API by Steven Hickson
    GoogleVoice gv;
    char *username = "username", *password = "password";

    if (gv.Login(username, password)) {
        if (gv.SendSMS(number, message)) {
            return SUCCESS;
        } else {
            return SMS_ERROR;
        }
    } else {
        return LOGIN_ERROR;
    }
}

4

El software simple de cámara web + "movimiento" (puede instalarlo con 'sudo apt-get install motion') debe ocuparse de la primera parte de la pregunta. motion tiene muchos parámetros en el archivo de configuración, puede ejecutar scripts externos cuando se detecta el movimiento.

La segunda parte de su pregunta (re: SMS) requerirá conexión a Internet y suscripción a algún tipo de servicio de envío de SMS. Puede haber disponibles gratis en su área, pero no puedo prometerle eso. básicamente, la compañía de servicios de entrega de SMS le proporcionará los scripts de envío de SMS escritos en algunos idiomas, puede elegir el que más le guste y usarlo para enviar mensajes cuando el "movimiento" detecte algo interesante.


¡Gracias, intentaré el software de movimiento !
G. Lombard


2

Hay un proyecto que construye una cámara de seguridad a partir de un software Raspberry Pi y Motion (ver enlace a continuación). Tenga en cuenta que la cámara Pi (CMOS) no es una cámara con poca luz como muchas cámaras de seguridad (CCD) más caras y necesita suficiente luz para obtener una transmisión de video viable.

http://www.raspberrypi.org/archives/5071

También hay una cámara IR disponible, aunque tampoco recolecta mucha luz, por lo que se necesita más irradiación IR para lograr el mismo resultado que las cámaras de seguridad más caras.

http://www.raspberrypi.org/forum/viewtopic.php?t=63115

Más sobre la diferencia de poca luz entre CMOS y CCD;

http://www.axis.com/products/video/camera/ccd_cmos.htm

Sin embargo, algunos sensores de imagen CMOS con iluminación trasera están comenzando a ponerse al día en la categoría de poca luz;

http://www.techhive.com/article/246931/cmos_is_winning_the_camera_sensor_battle_and_heres_why.html?page=2

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.