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)?
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)?
Risposte:
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.
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).
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.
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;
}
}
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.
Per la parte SMS, usa semplicemente l'e-mail all'indirizzo e-mail del tuo cellulare. ad es. your10digitnumber@vtext.com / @ txt.att.com / @ tmomail.com
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;