BeagleBone:Программирование BeagleBone Black при помощи Python: различия между версиями
Myagkij (обсуждение | вклад) (→Схема) |
Myagkij (обсуждение | вклад) (→Итого) |
||
(не показаны 4 промежуточные версии этого же участника) | |||
Строка 13: | Строка 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|Также понадобится подключение к интернету.}} | ||
==Схема== | ==Схема== | ||
Строка 26: | Строка 26: | ||
{{Примечание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|frame|'''Рис.2.''' Схема подключения PIR- | [[File:bbb_pir_sensor_2.png|center|frame|'''Рис.2.''' Схема подключения PIR-датчика к плате.|alt=Рис.2. Схема подключения PIR-датчика к плате.]] | ||
==Код на языке Python== | ==Код на языке Python== | ||
Строка 80: | Строка 80: | ||
Система наблюдения готова! Теперь она будет отправлять вам письмо каждый раз, когда датчик [[PIR]] обнаружит движение. | Система наблюдения готова! Теперь она будет отправлять вам письмо каждый раз, когда датчик [[PIR]] обнаружит движение. | ||
[[File:gmail_email_3.png|center]] | [[File:gmail_email_3.png|center|frame|'''Рис.3.''' Скриншот почтового ящика с письмами.|alt=Рис.3. Скриншот почтового ящика с письмами.]] | ||
=См.также= | =См.также= |
Текущая версия от 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 сигнал об обнаруженном движении, будет отправлять вам электронное письмо.
Необходимые компоненты
- Плата BeagleBone Black - 1шт.
- Датчик движения типа PIR - 1шт.
Схема
Код на языке Python
Этот Python-скрипт можно загрузить отсюда.
#!/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 обнаружит движение.
См.также
Внешние ссылки