Содержание
Вспомним, что основа данного проекта Arduino. Он выполняет ряд важнейших функций: считывает данные с ИК-датчика, обрабатывает сигналы, реагирует на движения, а USB оповещает компьютер о необходимости отправить сообщение. В этой статье рассмотрим два вопроса:
- Подключение PIR-датчика к Arduino;
- Как настроить взаимосвязь между датчиком и автоматической отправкой e-mail.
Необходимо для проекта:
- Arduino UNO (выбрать можно на Aliexpress).
- PIR-датчик .
- Бредбоард.
- Связка проводов.
Все перечисленные элементы для сборки можно увидеть на фотографиях:
В первую очередь нужен ПК с подключением к интернету. Мы использовали Raspberry Pi.
Подключаем PIR-датчик к набору Arduino:
Чтобы осуществить этот этап нужно взять провода, которые идут от датчика, и прикрепить их к платформе. Далее вам будет предоставлена фотография со схемой:
Работа со скетчем
При возникновении движения Arduino при помощи USB Serial должен послать электронное сообщение. Конечно же, если при любом возникшем движении отправлять e-mail, то почтовый ящик будет переполнен. Поэтому мы исправили это таким образом, если между двумя сигналами короткий промежуток времени, будет отправляться письмо с таким текстом:
int pirPin = 7;
int minSecsBetweenEmails = 60; // 1 min
long lastSend = -minSecsBetweenEmails * 1000;
void setup()
{
pinMode(pirPin, INPUT);
Serial.begin(9600);
}
void loop()
{
long now = millis();
if (digitalRead(pirPin) == HIGH)
{
if (now > (lastSend + minSecsBetweenEmails * 1000))
{
Serial.println("MOVEMENT"); lastSend = now;
}
else
{
Serial.println("Too soon"); }
}
delay(500);
}
«MinSecsBetweenEmails» – эта переменная может переключаться на другие значения, которые будут удобны пользователю. К примеру, можно установить интервал, который равен одной минуте – это будет означать, что следующий e-mail будет отправлен только через 60 секунд.
«LastSend» поможет отследить время, в которое было отправлено последнее сообщение. Инициализация данной переменной происходит с отрицательным числом, которое равно миллисекундам, что указаны в «MinSecsBetweenEmails». В итоге, мы получаем гарантию того, что после запуска скетча в Arduino сразу же запустится PIR-датчик.
За счет чего мы можем высчитать миллисекунды, сравнить их число со временем последнего срабатывания датчика? Все благодаря встроенной функции под названием Millis. В том случае, если обнаружено движение, но прошло мало времени с последнего активизации датчика будет отправлено письма с текстом «Too soon».
Эту функцию сначала надо проверить. Для этого открывается Serial Monitor. Далее рассмотрим, как он выглядит:
После того, как вы убеждены в исправной работе, можно записывать программу на Python, его используют для обрабатывания сигналов от платформы.
Как установить PySerial и Python:
Операционная система Linux имеет автоматически установленный Python. Система Windows не обладает такой характеристикой, поэтому программу необходимо установить самостоятельно. PySerial исполняет роль библиотеки, она поможет поддерживать связываться с Arduino.
Установка Python:
Python 3 нередко вызывает затруднения при работе с PySerial, особенно если вы используете Windows. Чтобы этого избежать, можно вместо третьей версии скачать Python 2.
Завершив установку программы в меню «Пуск» можно обнаружить особую группу. Когда мы перейдем к процессу установки библиотеки, нам понадобится сотрудничество с Python, применив командную строку. Поэтому лучше сразу добавить к PATH нужный каталог. Далее можно увидеть вспомогательную фотографию:
Для добавления каталога нам потребуется: открыть панель управления, в ней найти раздел «System Properties». Потом нажимаем клавишу, которая называется «Переменная среда» (Environment Variabes), перед нами всплывет окно. В его нижней части должен находиться «Path», который нужно выбрать. Теперь кликнем на «Edit» – Изменение и завершаем процесс нажатием «значения переменной». Нельзя удалять текст, который получили, к нему следует дописать такую надпись – «;C:\Python27». Не забываем после каждой папки, что указана в тексте ставить «;». Теперь проверяем правильно ли осуществлен ввод «Path». Для этого в командную строку вводим слово «python». Если ошибок не возникло, то на экране появится следующая картинка:
Установить PySerial:
Независимо от используемой операционной системы, скачиваем .tar.gz установочный пакет для PySerial 2.6 с . Этот сайт может помочь это сделать – https://pypi.python.org/pypi/pyserial. Получаем файл с именем pyserial-2.6.tar.gz. Если используется Windows, то будет нужна распаковка файлов в выбранную папку. Это не стандартный файл формата ZIP, придется сделать дополнительные действия – скачать 7-zip (это можно сделать здесь – http://www.7-zip.org/). Для системы Linux необходимо воспользоваться терминальной сессией, в ней дать команду «CD», указать название той папки, в которую скачали pyserial-2.6.tar.gz. Чтобы выполнить распаковку нужно ввести:
$ tar -xzf pyserial-2.6.tar.gz
После этого потребуется выполнить команду:
sudo python setup.py install
Python
Потребуется создать отдельную программу для работы с Python. Нужно скопировать код в файл с таким именем – «movement.py». В Linux можно использовать «нано» редактор, а для системы Windows необходимо создать файл, используя редактор Python «IDLE ». Он доступен в меню «Пуск».
import time
import serial
import smtplib
TO = '[email protected]'
GMAIL_USER = '[email protected]'
GMAIL_PASS = 'putyourpasswordhere'
SUBJECT = 'Intrusion!!'
TEXT = 'Your PIR sensor detected movement'
ser = serial.Serial('COM4', 9600)
def send_email():
print("Sending Email")
smtpserver = smtplib.SMTP("smtp.gmail.com",587)
smtpserver.ehlo() smtpserver.starttls()
smtpserver.ehlo smtpserver.login(GMAIL_USER, GMAIL_PASS)
header = 'To:' + TO + '\n' + 'From: ' + GMAIL_USER
header = header + '\n' + 'Subject:' + SUBJECT + '\n'
print header
msg = header + '\n' + TEXT + ' \n\n'
smtpserver.sendmail(GMAIL_USER, TO, msg)
smtpserver.close()
while True:
message = ser.readline()
print(message)
if message[0] == 'M' :
send_email()
time.sleep(0.5)
Это показано на следующей картинке:
После изменений, программа запуститься при помощи командной строки:
python movement.py
Итак, установка завершена.
На этом возможности не заканчиваются, есть расширения, которые позволяют получать сообщения с отчетами о температуре или других сведениях.
Прикрепленные файлы: Скетчи и коды.
Леди с feitver.ru встречаются только на нейтральной территории, реальные проститутки Тверь, для достойного досуга. Чтобы не тратить время на поиск партнёрши на одну ночь просто надо воспользоваться эти сайтом. Темпераментные реальные проститутки Тверь, сочные и сладкие, они такие изобретательные и стройные, что удовольствие неизбежно. Твои сексуальные фантазии станут явью.
Автор: Доронин Виталий, Липецк.