Comment puis-je utiliser mon Raspberry Pi pour la détection de mouvement et les SMS?


8

Je commence juste. Comment pourrais-je utiliser mon Raspberry Pi pour faire ce qui suit: lorsqu'un mouvement est détecté à ma porte d'entrée, envoyez-moi un message texte (SMS)?


2
Il semble qu'il serait préférable de poser deux questions. Comment détecter les mouvements et comment envoyer des SMS.
Jivings

1
vous pourriez envisager d'acheter Prowl, il peut envoyer des notifications push à votre téléphone: prowlapp.com
Gotschi

Réponses:


11

Ma réponse est en deux parties, une pour la détection de mouvement et une autre pour les SMS. Un projet comme celui-ci comporte deux volets: matériel et logiciel. La détection de mouvement est la partie matérielle et tout le reste est un logiciel.

Mouvement

Matériel

Pour détecter un mouvement, procurez-vous un capteur de mouvement. J'utilise le lien d'affiliation Parallax PIR Motion Sensor: Amazon ici. Le capteur a 3 broches: GND, VCC et OUT. Connectez les broches à votre RPi ou connectez-les à une planche à pain et connectez les broches du RPi à la même planche à pain. Connectez GND à une broche GND (6), VCC à une broche 3,3v (1) et OUT à GPIO0 (11).

Logiciel

Je vous recommande d'utiliser la bibliothèque WiringPi. Suivez ces instructions pour télécharger et installer la bibliothèque sur votre Pi: Wiring Pi Library Download and Install . La broche du capteur de mouvement indique Élevé si un mouvement est détecté et Faible s'il ne l'est pas.

Le détecteur de mouvement se réinitialise après environ 10 secondes lorsque le mouvement continu se termine. Ainsi, la broche pourrait tirer plusieurs fois en réponse à un seul mouvement. Pour éviter de recevoir des SMS toutes les quelques secondes, vous souhaiterez probablement inclure une logique dans votre programme pour attendre un certain temps avant d'envoyer un autre SMS.

SMS

Il existe plusieurs façons de procéder. Une façon consiste à souscrire à un service payant qui fournit une bibliothèque que vous pouvez appeler avec les informations pertinentes pour envoyer le SMS. Les bibliothèques API Twilio en sont un bon exemple.

Si vous ne voulez pas dépenser d'argent et que vous avez un numéro Google Voice connecté à votre téléphone portable, vous pouvez utiliser l'API Google Voice C ++ développée par Steven Hickson pour le RPi ( Google Voice C ++ API ). Le résultat final pourrait ressembler à ceci (je l'ai écrit mais je ne l'ai pas chargé et testé sur le 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

une simple caméra Web + un logiciel "motion" (vous pouvez l'installer avec 'sudo apt-get install motion') devrait prendre soin de la première partie de la question. le mouvement a beaucoup de paramètres dans le fichier de configuration, vous pouvez exécuter des scripts externes lorsque le mouvement est détecté.

la deuxième partie de votre question (re: SMS) nécessitera une connexion Internet et un abonnement à une sorte de service d'envoi de SMS. il pourrait y en avoir gratuitement dans votre région, mais je ne peux pas vous le promettre. en gros, la société de services de livraison de SMS vous fournira les scripts d'envoi de SMS écrits en quelques langues, vous pouvez choisir celui que vous aimez et l'utiliser pour envoyer des messages lorsque "motion" détecte quelque chose d'intéressant.


Merci, je vais essayer le logiciel Motion !
G.Lombard


2

Il existe un projet qui construit une caméra de sécurité à partir d'un logiciel Raspberry Pi et Motion (voir le lien ci-dessous). Notez que la caméra Pi (CMOS) n'est pas une caméra à faible luminosité comme de nombreuses caméras de sécurité (CCD) plus chères et a besoin de suffisamment de lumière pour obtenir un flux vidéo exploitable.

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

Il existe également une caméra infrarouge, bien qu'elle ne collecte pas non plus beaucoup de lumière, il faut donc plus d'éclairement infrarouge pour obtenir le même résultat que les caméras de sécurité plus chères.

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

Plus d'informations sur la faible différence de lumière entre CMOS et CCD;

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

Cependant, certains capteurs d'image CMOS rétro-éclairés commencent à rattraper leur retard dans la catégorie de faible luminosité;

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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.