BeagleBone:Программирование BeagleBone Black при помощи Python

Материал из Онлайн справочника
Перейти к навигации Перейти к поиску

Перевод: Максим Кузьмин (Cubewriter) Контакты:</br>* Skype: cubewriter</br>* E-mail: cubewriter@gmail.com</br>* Максим Кузьмин на freelance.ru
Проверка/Оформление/Редактирование: Мякишев Е.А.


Pixel Art Mini Meow Animated.gif Черновик


Программирование BeagleBone Black при помощи Python[1]

В это статье рассказывается, как спроектировать систему наблюдения при помощи платы BeagleBone Black, языка программирования Python и датчика типа PIR.

BeagleBone Black – это плата, предназначенная для проектов, в которых используется подключение к интернету. Чтобы получить доступ к BeagleBone Black, ее нужно просто при помощи Ethernet-кабеля подключить к роутеру. Кроме того, работу с платой заметно упрощают библиотеки на языках Python и JavaScript.

Датчик типа PIR – это датчик, предназначенный для обнаружения движения. Если подключить его выходной контакт к BeagleBone Black, он будет отправлять цифровой сигнал HIGH каждый раз, когда кто-нибудь будет проходить мимо (и сигнал LOW – во всех остальных случаях). На этой идее работают, к примеру, автоматические источники света в публичных местах.

В проекте, который описывается в этой статье, плата BeagleBone Black, получив от датчика PIR сигнал об обнаруженном движении, будет отправлять вам электронное письмо.

Beaglebone-black-pir-motion-sensor 1.jpg

Необходимые компоненты

Также понадобится подключение к интернету.

Схема

Примечание: О том, как модифицировать датчик PIR, чтобы он работал на 3,3 вольтах, можно почитать в этой статье.

Bbb pir sensor 2.png

Код на языке Python

Этот Python-скрипт можно загрузить отсюда.

Примечание: Этот скрипт можно использовать только с почтой Gmail. И не забудьте вписать в него собственные данные (электронный адрес и пароль).

 1 #!/usr/bin/python
 2  
 3 #import libraries
 4 import smtplib
 5 
 6 import Adafruit_BBIO.GPIO as GPIO
 7 import time
 8  
 9 # Создаем переменную под названием «PIR», 
10 # которая будет отсылать к контакту P8_11:
11 PIR = "P8_11"
12  
13 # Выставляем этот контакт в режим ввода данных: 
14 GPIO.setup(PIR, GPIO.IN)
15 GPIO.add_event_detect(PIR, GPIO.RISING)
16 
17 def send_email():
18     server = smtplib.SMTP('smtp.gmail.com', 587)
19     server.ehlo()
20     server.starttls()
21     server.ehlo()
22     my_email = "REPLACE_WITH_YOUR_EMAIL@gmail.com"
23     my_password = "REPLACE_WITH_YOUR_PASSWORD"
24     destination = "REPLACE_WITH_YOUR_EMAIL@gmail.com"
25     text = "Motion has been detected at your house!"
26          # "У вас дома обнаружено движение!"
27     
28     server.login(my_email, my_password)
29     server.sendmail(my_email, destination, text)
30     server.quit()
31     print("Your email has been sent!")  #  "Письмо отправлено!"
32        
33 #loop forever
34 while True:
35     #  Обнаружив движение, отправляем письмо:
36     if GPIO.event_detected(PIR):
37         send_email() 
38     time.sleep(0.05)  #  ограничиваем время работы цикла до 50 мс, 
39                       #  чтобы не перегружать процессор

Итого

Система наблюдения готова! Теперь она будет отправлять вам письмо каждый раз, когда датчик PIR обнаружит движение.

Gmail email 3.png

См.также

Внешние ссылки