BeagleBone:Программирование BeagleBone Black при помощи Python: различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Нет описания правки
 
(не показано 9 промежуточных версий 2 участников)
Строка 1: Строка 1:
{{Панель управления/BeagleBone}}
{{Панель управления/BeagleBone}}
{{Перевод от Сubewriter}}
{{Перевод от Сubewriter}}
{{Myagkij-редактор}}
{{Myagkij-редактор}}
{{Черновик}}


=Программирование BeagleBone Black при помощи Python<ref>[https://randomnerdtutorials.com/programming-the-beaglebone-black-with-python/ randomnerdtutorials.com - Programming the BeagleBone Black with Python]</ref>=
=Программирование BeagleBone Black при помощи Python<ref>[https://randomnerdtutorials.com/programming-the-beaglebone-black-with-python/ randomnerdtutorials.com - Programming the BeagleBone Black with Python]</ref>=
Строка 16: Строка 13:
В проекте, который описывается в этой статье, плата [[BeagleBone Black]], получив от датчика [[PIR]] сигнал об обнаруженном движении, будет отправлять вам электронное письмо.
В проекте, который описывается в этой статье, плата [[BeagleBone Black]], получив от датчика [[PIR]] сигнал об обнаруженном движении, будет отправлять вам электронное письмо.


[[File:beaglebone-black-pir-motion-sensor_1.jpg|center]]
[[File:beaglebone-black-pir-motion-sensor_1.jpg|center|frame|'''Рис.1.''' Фотография платы с подключенным PIR-датчиком.|alt=Рис.1. Фотография платы с подключенным PIR-датчиком.]]


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


* Плата [[BeagleBone Black]]
* Плата [[BeagleBone Black]] - 1шт.
* Датчик движения типа [[PIR]]
* Датчик движения типа [[PIR]] - 1шт.


Также понадобится подключение к интернету.
{{Примечание1|Также понадобится подключение к интернету.}}


==Схема==
==Схема==


'''Примечание:''' О том, как модифицировать датчик [[PIR]], чтобы он работал на '''3,3 вольтах''', можно почитать в [http://randomnerdtutorials.com/modifying-cheap-pir-motion-sensor-to-work-at-3-3v/ этой статье].
{{Примечание1|О том, как модифицировать датчик [[PIR]], чтобы он работал на '''3,3 вольтах''', можно почитать в [http://randomnerdtutorials.com/modifying-cheap-pir-motion-sensor-to-work-at-3-3v/ этой статье].}}


[[File:bbb_pir_sensor_2.png|center]]
[[File:bbb_pir_sensor_2.png|center|frame|'''Рис.2.''' Схема подключения PIR-датчика к плате.|alt=Рис.2. Схема подключения PIR-датчика к плате.]]


==Код на языке Python==
==Код на языке Python==
Строка 35: Строка 32:
Этот [[Python]]-скрипт можно загрузить [http://randomnerdtutorials.com/wp-content/uploads/2015/02/surveillance.zip отсюда].
Этот [[Python]]-скрипт можно загрузить [http://randomnerdtutorials.com/wp-content/uploads/2015/02/surveillance.zip отсюда].


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


<syntaxhighlight lang="python" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
<syntaxhighlight lang="python" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">
#!/usr/bin/python
#!/usr/bin/python
   
   
Строка 83: Строка 80:
Система наблюдения готова! Теперь она будет отправлять вам письмо каждый раз, когда датчик [[PIR]] обнаружит движение.  
Система наблюдения готова! Теперь она будет отправлять вам письмо каждый раз, когда датчик [[PIR]] обнаружит движение.  


[[File:gmail_email_3.png|center]]
[[File:gmail_email_3.png|center|frame|'''Рис.3.''' Скриншот почтового ящика с письмами.|alt=Рис.3. Скриншот почтового ящика с письмами.]]


=См.также=
=См.также=
{{ads}}


=Внешние ссылки=
=Внешние ссылки=
Строка 93: Строка 88:
<references />
<references />


{{Навигационная таблица/BeagleBone}}
{{Навигационная таблица/Портал/BeagleBone}}
{{Навигационная таблица/Телепорт}}

Текущая версия от 16:20, 31 декабря 2023

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


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

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

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

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

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

Рис.1. Фотография платы с подключенным PIR-датчиком.
Рис.1. Фотография платы с подключенным PIR-датчиком.

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

Примечание

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

Схема

Примечание

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

Рис.2. Схема подключения PIR-датчика к плате.
Рис.2. Схема подключения PIR-датчика к плате.

Код на языке Python

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

Примечание

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

#!/usr/bin/python
 
#import libraries
import smtplib

import Adafruit_BBIO.GPIO as GPIO
import time
 
# Создаем переменную под названием «PIR», 
# которая будет отсылать к контакту P8_11:
PIR = "P8_11"
 
# Выставляем этот контакт в режим ввода данных: 
GPIO.setup(PIR, GPIO.IN)
GPIO.add_event_detect(PIR, GPIO.RISING)

def send_email():
    server = smtplib.SMTP('smtp.gmail.com', 587)
    server.ehlo()
    server.starttls()
    server.ehlo()
    my_email = "REPLACE_WITH_YOUR_EMAIL@gmail.com"
    my_password = "REPLACE_WITH_YOUR_PASSWORD"
    destination = "REPLACE_WITH_YOUR_EMAIL@gmail.com"
    text = "Motion has been detected at your house!"
         # "У вас дома обнаружено движение!"
    
    server.login(my_email, my_password)
    server.sendmail(my_email, destination, text)
    server.quit()
    print("Your email has been sent!")  #  "Письмо отправлено!"
       
#loop forever
while True:
    #  Обнаружив движение, отправляем письмо:
    if GPIO.event_detected(PIR):
        send_email() 
    time.sleep(0.05)  #  ограничиваем время работы цикла до 50 мс, 
                      #  чтобы не перегружать процессор

Итого

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

Рис.3. Скриншот почтового ящика с письмами.
Рис.3. Скриншот почтового ящика с письмами.

См.также

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