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

Материал из ВикиСправочника
Перейти к: навигация, поиск

Перевод: Максим Кузьмин (Cubewriter)
Перевел 1762 статей для сайта.

Контакты:

Проверка/Оформление/Редактирование: Мякишев Е.А.


Ambox content.png Черновик


Программирование 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

См.также

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

  1. randomnerdtutorials.com - Programming the BeagleBone Black with Python