Появилось свободное время, которое я решил потратить на Raspberry Pi. Пару месяцев назад, я уже пробовал фиксировать движение с помощью датчика, подключенного к малине. О проблеме, которая возникла в тот момент я написал в блоге. Сейчас, я решил продолжить развивать эту тему и прикрутить смс оповещение в момент срабатывания датчика. Погуглив, я нашел сайт Twilio, который предоставляет бесплатный вариант отправки смс на верифицированный номер.
Далее я зарегистрировался на сайте, прошел верификацию своего номера, получил триальный номер Twilio и закачал пакет для работы с Twilio:
Также в интернете нашел пример работы с Twilio, который соединил вместе с кодом для работы с датчиком, внес кое-какие свои корректировки и вот что получилось:
Смс приходит следующего вида:
Sent from your Twilio trial account
- Some movement. Time: 2016-08-27 16:34:09
Фото процесса:
Далее я зарегистрировался на сайте, прошел верификацию своего номера, получил триальный номер Twilio и закачал пакет для работы с Twilio:
sudo pip3 install twilio
Также в интернете нашел пример работы с Twilio, который соединил вместе с кодом для работы с датчиком, внес кое-какие свои корректировки и вот что получилось:
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import RPi.GPIO as GPIO | |
import time | |
from datetime import datetime | |
def SendSms(msg): | |
from twilio.rest import TwilioRestClient | |
client = TwilioRestClient("Your ACCOUNT SID", | |
"Your AUTH TOKEN") | |
client.messages.create(to="Your number", | |
from_="Your Twilio number", | |
body=msg) | |
#number of GPIO on board | |
sensor = 4 | |
GPIO.setmode(GPIO.BCM) | |
GPIO.setup(sensor, GPIO.IN) | |
delay_sec = 120 | |
mark_time = 0 | |
cur_state = 0 | |
while True: | |
time.sleep(1) | |
cur_state = GPIO.input(sensor) | |
print(cur_state) | |
if cur_state == 1: | |
if time.time() - mark_time > delay_sec: | |
msg = "Some movement. Time: {0}".format(str(datetime.now())[:-7]) | |
print(msg) | |
SendSms(msg) | |
mark_time = time.time() |
Смс приходит следующего вида:
Sent from your Twilio trial account
- Some movement. Time: 2016-08-27 16:34:09
Фото процесса: