Wie kann ich meinen Raspberry Pi zur Bewegungserkennung und für SMS verwenden?

8

Ich fange gerade erst an. Wie kann ich mit meinem Raspberry Pi Folgendes tun: Wenn an meiner Haustür eine Bewegung festgestellt wird, senden Sie mir eine SMS.

G. Lombard
quelle
2
Es scheint, als wären zwei Fragen besser dran. Wie man Bewegungen erkennt und wie man SMS sendet.
Jivings
1
Wenn
Gotschi

Antworten:

11

Meine Antwort besteht aus zwei Teilen, einem für die Bewegungserkennung und einem für SMS. Ein solches Projekt besteht aus zwei Komponenten: Hardware und Software. Das Erkennen von Bewegungen ist der Hardwareteil und alles andere ist Software.

Bewegung

Hardware

Besorgen Sie sich einen Bewegungssensor, um Bewegungen zu erkennen. Ich verwende hier den Parallax PIR-Bewegungssensor: Amazon-Partnerlink. Der Sensor hat 3 Pins: GND, VCC und OUT. Verbinden Sie die Stifte mit Ihrem RPi oder verbinden Sie sie mit einem Steckbrett und verbinden Sie die Stifte vom RPi mit demselben Steckbrett. Verbinden Sie GND mit einem GND-Pin (6), VCC mit einem 3,3-V-Pin (1) und OUT mit GPIO0 (11).

Software

Ich empfehle Ihnen, die WiringPi-Bibliothek zu verwenden. Befolgen Sie diese Anweisungen, um die Bibliothek herunterzuladen und auf Ihrem Pi zu installieren: Wiring Pi Library Download and Install . Der Pin am Bewegungssensor zeigt High an, wenn eine Bewegung erkannt wird, und Low, wenn dies nicht der Fall ist.

Der Bewegungsmelder setzt sich nach ca. 10 Sekunden zurück, wenn die kontinuierliche Bewegung endet. So könnte der Stift als Reaktion auf eine einzelne Bewegung viele Male feuern. Um zu vermeiden, dass alle paar Sekunden SMS-Nachrichten gesendet werden, möchten Sie wahrscheinlich Logik in Ihr Programm aufnehmen, um eine bestimmte Zeit zu warten, bevor Sie eine weitere SMS senden.

SMS

Es gibt verschiedene Möglichkeiten, dies zu tun. Eine Möglichkeit besteht darin, einen kostenpflichtigen Dienst zu abonnieren, der eine Bibliothek bereitstellt, die Sie mit den entsprechenden Informationen zum Senden der SMS anrufen können. Twilio API Libraries ist ein gutes Beispiel dafür.

Wenn Sie kein Geld ausgeben möchten und eine Google Voice-Nummer mit Ihrem Mobiltelefon verbunden ist, können Sie die Google Voice C ++ - API verwenden, die Steven Hickson für das RPi ( Google Voice C ++ - API ) entwickelt hat. Das Endergebnis könnte ungefähr so ​​aussehen (ich habe es geschrieben, aber nicht geladen und auf dem RPi getestet):

#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;
    }
}
swmcdonnell
quelle
4

Eine einfache Webkamera + "Motion" -Software (Sie können sie mit "sudo apt-get install motion" installieren) sollte sich um den ersten Teil der Frage kümmern. Motion enthält zahlreiche Parameter in der Konfigurationsdatei. Sie können externe Skripts ausführen, wenn die Bewegung erkannt wird.

Für den zweiten Teil Ihrer Frage (bezüglich SMS) ist eine Internetverbindung und ein Abonnement für einen SMS-Versanddienst erforderlich. Es gibt vielleicht kostenlose in Ihrer Nähe, aber das kann ich Ihnen nicht versprechen. Grundsätzlich stellt Ihnen der SMS-Zustelldienst die in einigen Sprachen verfassten SMS-Skripte zur Verfügung. Sie können das gewünschte auswählen und zum Senden von Nachrichten verwenden, wenn "motion" etwas Interessantes erkennt.

lenik
quelle
Danke, ich werde die Bewegungssoftware ausprobieren!
G. Lombard
2

Es gibt ein Projekt, das eine Überwachungskamera aus einer Raspberry Pi and Motion-Software erstellt (siehe Link unten). Beachten Sie, dass die Pi-Kamera (CMOS) keine Low-Light-Kamera wie viele teurere Überwachungskameras (CCD) ist und ausreichend Licht benötigt, um einen funktionsfähigen Videostream zu erhalten.

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

Es gibt auch eine IR-Kamera, die jedoch nicht viel Licht sammelt. Daher ist mehr IR-Bestrahlungsstärke erforderlich, um das gleiche Ergebnis zu erzielen, das die teureren Überwachungskameras erzielen.

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

Mehr zum geringen Lichtunterschied zwischen CMOS und CCD;

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

Einige rückseitig beleuchtete CMOS-Bildsensoren beginnen jedoch, in der Kategorie bei schlechten Lichtverhältnissen aufzuholen.

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

Wille
quelle