Estou apenas começando. Como eu poderia usar o meu Raspberry Pi para fazer o seguinte: quando qualquer movimento for detectado na minha porta, envie-me uma mensagem de texto (SMS)?
Estou apenas começando. Como eu poderia usar o meu Raspberry Pi para fazer o seguinte: quando qualquer movimento for detectado na minha porta, envie-me uma mensagem de texto (SMS)?
Respostas:
Minha resposta está em duas partes, uma para detecção de movimento e outra para SMS. Um projeto como esse tem dois componentes: hardware e software. Detectar movimento é a parte do hardware e todo o resto é software.
Para detectar movimento, adquira um sensor de movimento. Eu uso o link de afiliado Parallax PIR Motion Sensor: Amazon aqui. O sensor possui 3 pinos: GND, VCC e OUT. Conecte os pinos ao seu RPi ou a uma placa de ensaio e conecte os pinos do RPi à mesma placa de ensaio. Conecte GND a um pino GND (6), VCC a um pino de 3,3v (1) e OUT a GPIO0 (11).
Eu recomendo que você use a biblioteca WiringPi. Siga estas instruções para baixar e instalar a biblioteca no seu Pi: Fiação Pi Download e instalação da biblioteca . O pino no sensor de movimento indica Alto, se for detectado movimento, e Baixo, se não for.
O detector de movimento se redefine após cerca de 10 segundos quando o movimento contínuo termina. Portanto, o pino pode disparar muitas vezes em resposta a um único movimento. Para evitar receber mensagens SMS a cada poucos segundos, você provavelmente deseja incluir lógica no seu programa para aguardar um certo tempo antes de enviar outro SMS.
Existem algumas maneiras diferentes de fazer isso. Uma maneira é assinar um serviço pago que fornece uma biblioteca para a qual você pode ligar com as informações pertinentes para enviar o SMS. As bibliotecas de API do Twilio são um bom exemplo disso.
Se você não deseja gastar dinheiro e tem um número do Google Voice conectado ao seu telefone celular, pode usar a API do Google Voice C ++ que Steven Hickson desenvolveu para o RPi ( Google Voice C ++ API ). O resultado final pode ser algo como isto (eu escrevi, mas não carreguei e testei no 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;
}
}
Um software simples de câmera da web + "motion" (você pode instalá-lo com 'sudo apt-get install motion') deve cuidar da primeira parte da pergunta. motion possui muitos parâmetros no arquivo de configuração, você pode executar scripts externos quando o movimento for detectado.
a segunda parte da sua pergunta (re: SMS) exigirá conexão com a Internet e assinatura de algum tipo de serviço de envio de SMS. pode haver outros disponíveis em sua região, mas não posso prometer isso. basicamente, a empresa de serviços de entrega de SMS fornecerá os scripts de envio de SMS escritos em alguns idiomas; você pode escolher o que mais gosta e usá-lo para enviar mensagens quando "movimento" detectar algo interessante.
Para a parte SMS, basta usar o email no endereço de email do seu telefone celular. por exemplo, your10digitnumber@vtext.com / @ txt.att.com / @ tmomail.com
Existe um projeto que constrói uma câmera de segurança a partir de um software Raspberry Pi and Motion (veja o link abaixo). Observe que a câmera Pi (CMOS) não é uma câmera com pouca luz, como muitas câmeras de segurança (CCD) mais caras e precisa de luz suficiente para obter um fluxo de vídeo viável.
http://www.raspberrypi.org/archives/5071
Também existe uma câmera infravermelha, embora ela também não colete muita luz, por isso é necessária mais irradiância infravermelha para obter o mesmo resultado que as câmeras de segurança mais caras.
http://www.raspberrypi.org/forum/viewtopic.php?t=63115
Mais sobre a diferença de pouca luz entre o CMOS e o CCD;
http://www.axis.com/products/video/camera/ccd_cmos.htm
No entanto, alguns sensores de imagem CMOS com iluminação traseira estão começando a se recuperar na categoria de pouca luz;