Я только начинаю. Как я могу использовать мой Raspberry Pi, чтобы сделать следующее: когда какое-либо движение будет обнаружено у моей входной двери, отправьте мне текстовое сообщение (SMS)?
Я только начинаю. Как я могу использовать мой Raspberry Pi, чтобы сделать следующее: когда какое-либо движение будет обнаружено у моей входной двери, отправьте мне текстовое сообщение (SMS)?
Ответы:
Мой ответ состоит из двух частей: одна для обнаружения движения, другая для SMS. Такой проект состоит из двух компонентов: аппаратного и программного обеспечения. Обнаружение движения - это аппаратная часть, а все остальное - программное обеспечение.
Чтобы обнаружить движение, возьмите датчик движения. Я использую партнерскую ссылку Parallax PIR Motion Sensor: Amazon здесь. Датчик имеет 3 контакта: GND, VCC и OUT. Подключите контакты к RPi или подключите их к макету и подключите контакты с RPi к тому же макету. Подключите GND к выводу GND (6), VCC к выводу 3,3 В (1) и ВЫХОД к GPIO0 (11).
Я рекомендую вам использовать библиотеку WiringPi. Следуйте этим инструкциям, чтобы загрузить и установить библиотеку на свой Pi: Wiring Pi Library Загрузка и установка . Вывод на датчике движения показывает высокий уровень, если движение обнаружено, и низкий уровень, если это не так.
Детектор движения сбрасывается через 10 секунд после окончания непрерывного движения. Таким образом, булавка может выстрелить много раз в ответ на одно движение. Чтобы не получать SMS-сообщения каждые несколько секунд, вы, вероятно, захотите включить логику в свою программу, чтобы подождать определенное время перед отправкой другого SMS-сообщения.
Есть несколько разных способов сделать это. Одним из способов является подписка на платную услугу, которая предоставляет библиотеку, в которую можно позвонить с соответствующей информацией для отправки SMS. Twilio API Libraries - хороший пример этого.
Если вы не хотите тратить деньги и у вас есть номер Google Voice, подключенный к вашему мобильному телефону, вы можете использовать API Google Voice C ++, разработанный Стивеном Хиксоном для RPi ( Google Voice C ++ API ). Конечный результат может выглядеть примерно так (я написал его, но не загружал и не тестировал его на 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;
}
}
простая веб-камера + программное обеспечение «движения» (вы можете установить его с помощью «sudo apt-get install motion») должны позаботиться о первой части вопроса. В файле конфигурации есть множество параметров, вы можете запускать внешние сценарии при обнаружении движения.
вторая часть вашего вопроса (re: SMS) потребует подключения к Интернету и подписки на какую-либо услугу отправки SMS. в вашем районе могут быть бесплатные, но я не могу вам этого обещать. В основном, служба доставки SMS предоставит вам сценарии отправки SMS, написанные на нескольких языках, вы можете выбрать тот, который вам нравится, и использовать его для отправки сообщений, когда «движение» обнаруживает что-либо интересное.
Для части SMS, просто используйте электронную почту на адрес электронной почты вашего мобильного телефона. например, your10digitnumber@vtext.com / @ txt.att.com / @ tmomail.com
Есть проект, который строит камеру безопасности из программного обеспечения Raspberry Pi и Motion (см. Ссылку ниже). Обратите внимание, что камера Pi (CMOS) не является камерой с низким уровнем освещенности, как многие более дорогие камеры безопасности (CCD), и ей требуется достаточно света для получения работоспособного видеопотока.
http://www.raspberrypi.org/archives/5071
Также имеется ИК-камера, хотя она также не собирает много света, поэтому для достижения того же результата, что и более дорогие камеры безопасности, требуется больше инфракрасного излучения.
http://www.raspberrypi.org/forum/viewtopic.php?t=63115
Подробнее о разнице в слабом освещении между CMOS и CCD;
http://www.axis.com/products/video/camera/ccd_cmos.htm
Тем не менее, некоторые сенсоры CMOS-изображений с задней подсветкой начинают догонять в категории слабого освещения;