Como posso usar meu Raspberry Pi para detecção de movimento e SMS?


8

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)?


2
Parece que pode ser melhor fazer duas perguntas. Como detectar movimento e como enviar SMS.
Jivings

11
você pode considerar comprar o Prowl, ele pode enviar notificações push para o seu telefone: prowlapp.com
Gotschi

Respostas:


11

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.

Movimento

Hardware

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).

Programas

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.

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;
    }
}

4

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.


Obrigado, vou tentar o software de movimento !
G. Lombard


2

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;

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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.