Come posso utilizzare il mio Raspberry Pi per il rilevamento del movimento e gli SMS?


8

Sto solo iniziando. Come potrei usare il mio Raspberry Pi per fare quanto segue: quando viene rilevato un movimento sulla mia porta di casa, mandami un messaggio di testo (SMS)?


2
Sembra che potrebbe essere meglio come due domande. Come rilevare il movimento e come inviare SMS.
Jivings,

1
potresti considerare l'acquisto di Prowl, può inviare Notifiche Push al tuo telefono: prowlapp.com
Gotschi

Risposte:


11

La mia risposta è in due parti, una per il rilevamento del movimento e un'altra per gli SMS. Un progetto come questo ha due componenti: hardware e software. Rilevare il movimento è la parte hardware e tutto il resto è software.

Movimento

Hardware

Per rilevare il movimento, procurati un sensore di movimento. Uso il sensore di movimento PIR Parallax: link affiliato Amazon qui. Il sensore ha 3 pin: GND, VCC e OUT. Collega i pin al tuo RPi o collegali a una breadboard e collega i pin del RPi alla stessa breadboard. Collegare GND a un pin GND (6), VCC a un pin 3.3v (1) e OUT a GPIO0 (11).

Software

Ti consiglio di usare la libreria WiringPi. Segui queste istruzioni per scaricare e installare la libreria sul tuo Pi: Wiring Pi Library Download e installazione . Il pin sul sensore di movimento indica Alta se viene rilevato un movimento e Bassa se non lo è.

Il rilevatore di movimento si ripristina dopo circa 10 secondi quando termina il movimento continuo. Quindi il perno potrebbe sparare molte volte in risposta a un singolo movimento. Per evitare di ricevere messaggi SMS ogni pochi secondi, probabilmente si desidera includere la logica nel programma per attendere un certo periodo di tempo prima di inviare un altro SMS.

sms

Esistono diversi modi per farlo. Un modo è quello di abbonarsi a un servizio a pagamento che fornisce una biblioteca che è possibile chiamare con le informazioni pertinenti per inviare l'SMS. Le librerie API Twilio ne sono un buon esempio.

Se non vuoi spendere soldi e hai un numero di Google Voice collegato al tuo cellulare, puoi utilizzare l'API C ++ di Google Voice sviluppata da Steven Hickson per l'RPi ( API di Google Voice C ++ ). Il risultato finale potrebbe essere simile a questo (l'ho scritto ma non l'ho caricato e testato su 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

il semplice software web-camera + "motion" (è possibile installarlo con 'sudo apt-get install motion') dovrebbe occuparsi della prima parte della domanda. motion ha molti parametri nel file di configurazione, è possibile eseguire script esterni quando viene rilevato il movimento.

la seconda parte della domanda (re: SMS) richiederà la connessione a Internet e l'abbonamento a un qualche tipo di servizio di invio di SMS. potrebbero essere disponibili gratuitamente nella tua zona, ma non posso prometterlo. fondamentalmente, la società di servizi di consegna di SMS ti fornirà gli script di invio di SMS scritti in alcune lingue, puoi scegliere quello che ti piace e usarlo per inviare messaggi quando "motion" rileva qualcosa di interessante.


Grazie, proverò il software di motion !
G. Lombard,


2

Esiste un progetto che costruisce una videocamera di sicurezza da un software Raspberry Pi e Motion (vedi link sotto). Si noti che la videocamera Pi (CMOS) non è una videocamera a scarsa luminosità come molte più costose videocamere di sicurezza (CCD) e necessita di luce sufficiente per ottenere un flusso video realizzabile.

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

È disponibile anche una telecamera IR, anche se non raccoglie molta luce, quindi è necessaria una maggiore irradiazione IR per ottenere lo stesso risultato ottenuto dalle telecamere di sicurezza più costose.

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

Maggiori informazioni sulla differenza di scarsa luminosità tra CMOS e CCD;

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

Tuttavia, alcuni sensori di immagine CMOS retroilluminati stanno iniziando a raggiungere la categoria di scarsa illuminazione;

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.