Новость из категории: Информация

Pi: следим за посылками

Вам нужны:
» Любой Raspberry Pi A+, B+ или Pi 2
» Датчик PIR
» Камера Raspberry Pi
» Приставка Wi-Fi
» Самая свежая версия Raspbian »Учетная запись Gmail

Pi: следим за посылками

Получайте по электронке вести о своих курьерских доставках.

Вы всегда поддерживаете кикстартеров, но вас вечно нет дома, чтобы почтальону было кому вручить вознаграждение? Что ж, о доставке посылки этот проект может сообщить вам по электронной почте. На выключенном Raspberry Pi присоедините камеру к слоту камеры рядом с портом Ethernet. Далее, соедините свой датчик Passive Infra-Red (PIR) к следующим контактам GPIO вашего Pi. Пожалуйста, учтите: мы используем схему расположения контактов Broadcom.

Pi: следим за посылками

Загрузите свой Pi и используйте инструмент настройки в меню Preferences. Включите камеру и проверьте, что включен логин с SSH. Перезагрузитесь и затем откройте Python 3 из меню Programming. Создайте новый файл, сохраните и назовите его emailer.ру. Мы начинаем наш код с импорта ряда библиотек. (Полный список можно просмотреть через ссылку на наш исходный код, и она начинается с from mail_settings import *.) Они занимаются отправкой электронной почты, фотографированием с камеры и таймингом нашего проекта. Дополнительная библиотека — mail_settings. Это внешняя библиотека, написанная сугубо для этого проекта и используемая для хранения имен пользователей и паролей электронной почты. Мы выбрали схему расположения контактов Broadcom, и надо настроить ее:
GPIO.setmode(GPIO.BCM) global file PIR = 17
GPIO.setup(PIR, GPIO.IN)

Теперь создадим две переменные: первая — глобальная, которую можно использовать между функциями, а вторая, с именем PIR, хранит номер контакта, используемого для нашего датчика. Мы настроили нашу PIR на соединение с GPIO17, служащий вводом. Далее создадим две функции: первая делает фото с камеры:
def takepic(): 
global file
current_time = str(datetime.datetime.now())
current_time = current_time[0:19]
with PiCamera() as camera:
camera.resolution = (800, 600)
camera.framerate = 24
camera.capture((current_time)+’.jpg’)
takepic.file = ((current_time)+’.jpg’)

Посредством takepic() мы фиксируем текущее время и дату в качестве имени файла, и обрезаем строку, хранящуюся в переменной, оставив только нужный нам текст. Далее мы делаем фото и сохраняем его с этим именем файла. Наша вторая функция работает с электронной почтой:
def email_send(to,file):	
current_time = str(datetime.datetime.now())
current_time = current_time[0:19]
msg = MIMEMultipart()
msg[‘Subject’] = ‘ВНИМАНИЕ - В ’+current_time+‘ ПРИБЫЛА ПОЧТА’
msg[‘From’] = email msg[‘To’] = to
with open(takepic.file, ‘rb’) as pic:
pic = MIMEImage(pic.read()) msg.attach(pic)
server = smtplib.SMTP(‘smtp.gmail.com’,587)
server.starttls() server.login(email,password)
server.ehlo()
server.send_message(msg)
server.quit()

Тот же метод можно употребить для фиксации времени и даты события. Мы создаем электронное сообщение со смешанным контентом и темой, полученной из строковой переменной события с указанием времени и даты события. Отправитель сообщения генерируется из библиотеки mail_settings заказчика. Получатель передается в качестве аргумента в функцию, а наше изображение будет файлом, вложенным в сообщение. Переменная с именем server хранит местоположение нашего почтового сервера, в данном случае — учетной записи Gmail. Мы открываем безопасное соединение с сервером, входим и сообщаем серверу, что мы здесь. Затем отправляем сообщение — и закрываем соединение с сервером.

Подготовив все функции, мы используем цикл while true для постоянной проверки включения датчика PIR. Если он включается, делается фото, которое прикрепляется к сообщению электронной почты и отправляется получателю. Если датчик не включен, то цикл повторяется. Теперь сохраните свою работу и нажмите на Run > Run Module для запуска.

Датчики

Pi: следим за посылками
Датчики PIR могут добавить новую форму ввода быстро и легко, благодаря своей простой работе

Датчики — это потрясающая возможность автоматического ввода, которую можно применить для запуска событий по движению, звуку, свету и т. д. Raspberry Pi можно соединить со множеством датчиков разного типа.

В этом проекте мы используем простой инфракрасный датчик для определения движения. Он работает посредством подачи тока на Pi при запуске.

Другой пригодный тип датчика — ультразвуковой, он отправляет ультразвуковой сигнал для определения расстояния до объекта от датчика. Это отличный датчик, но чтобы он заработал, понадобится некоторая математика. И PIR, и ультразвуковой датчики можно найти на eBay дешевле £3.

Напрямую Pi умеет работать только с цифровыми датчиками, поскольку аналоговых GPIO не поддерживает, но менее чем за £ 10 вы найдете аналого-цифровой преобразователь (АЦП), который решит эту проблему.

Рейтинг статьи

Оценка
0/5
голосов: 0
Ваша оценка статье по пятибальной шкале:
 
 
   

Поделиться

Похожие новости

Комментарии

^ Наверх