Pi: свет при входе
Вам нужны...
» Любой Raspberry Pi A+, B+ или Pi 2
» Свежая ОС Raspbian
» Розетки питания Energenie и Pi Remote https://en-ergenie4u.co.uk
»Геркон
» Контактные перемычки
» Магниты
» Любой Raspberry Pi A+, B+ или Pi 2
» Свежая ОС Raspbian
» Розетки питания Energenie и Pi Remote https://en-ergenie4u.co.uk
»Геркон
» Контактные перемычки
» Магниты
Довольно грустно входить зимой в темный дом, так что воспользуемся готовыми компонентами для создания яркого проекта, приветствующего ваше возвращение домой. Для начала надо к первым 26 контактам GPIO на вашем выключенном Pi присоединить розетку Energenie. (Для справки, контакт 1 - это контакт, ближайший к слоту SD-карты). Плата точно усядется над Pi, без всяких выступающих частей.
Теперь соедините кабелем-перемычкрй «мама-мама» GPIO20 и GND через свободные контакты GPIO. (Желая удлинить кабель, просто пристыкуйте кабели «папа-мама» до достижения желаемой длины). К одному концу кабеля присоедините магнитный геркон-защелку, а затем к другому. Клейкой лентой прикрепите геркон к дверному косяку и присоедините магниты на уровне геркона, но уже на самой двери, чтобы при закрытой двери геркон замыкался.
Загрузите свой Pi и откройте терминал. Для установки библиотеки Energenie для Python 3 скомандуйте $ sudo pip-3.2 install energenie. После установки откройте новую сессию Python 3 через меню Programming. Для подключения Energenie к нашему Pi откройте оболочку IDLE и введите from energenie import switch_on, switch_off. Теперь подключите Energenie и зажмите кнопку Green на шесть секунд. Это заставит Energenie искать новый трансмиттер. Снова в оболочке IDLE введите switch_on(1). Ваш Pi соединится с устройством и присвоит ему ‘1’, и этот процесс можно повторять для четырех устройств. При открытой IDLE щелкните по File > New Window и сохраните свою работу как entrylight.py.
Начнем с импорта библиотек для данного проекта:
from energenie import switch_on, switch_off
import time
import RPi.GPIO as GPIOБиблиотека energenie управляет устройствами для включения света, time управляет длительностью включения устройств, а RPi. GPIO — библиотека для работы с GPIO.
GPIO.setmode(GPIO.BCM)
GPIO.setup(20, GPIO.IN, GPIO.PUD_UP)
switch_off()Тут, скорее всего, придется немного подождать. Ну, а чтобы не скучать, можно, к примеру, заглянуть на http://kasino-vulcan-slot.com/fruit-cocktail/ (http://kasino-vulcan-slot.com/fruit-cocktail/) и сыграть парочку спинов, на одном из топовых слотов.

Устройство от Energenie превосходно размещается поверх первых 26 контактов Pi 2 или поверх всех контактов GPIO более старого Raspberry Pi
Далее мы настраиваем GPIO на использование схемы расположения контактов Broadcom и настраиваем GPIO20 как ввод, приведя его внутренний резистор в верхнее положение, чтобы подать ток на этот контакт. И, наконец, мы выключаем Energenie, чтобы убедиться в их готовности. Основной код использует структуру try...ex-cept для запуска бесконечного цикла:
try:
while True:
if GPIO.input(20) == 1:
switch_on()
time.sleep(30)
switch_off()Внутри цикла используется условное утверждение, чтобы проверить, был ли запущен ввод, т. е. была ли открыта дверь. Если это так, то устройства включаются на 30 секунд и снова выключаются. else:
switch_off()
except KeyboardInterrupt:
print(“EXIT”)
switch_off()Мы заканчиваем условное утверждение условием else. Оно выключает устройства, и цикл работает непрерывно. Структура try...except замыкается методом для завершения проекта: нажатие CTRL+c завершит проект и при необходимости отключит устройства. Доделав код, сохраните свою работу и нажмите Run > Run Module, чтобы протестировать код.
Energenie
Работать с устройствами с высоким напряжением положено профессионалам, однако с помощью Energenie можно существенно снизить риск.
Устройства Energenie по сути своей просто ресиверы 433 МГц, которые управляют реле; это компонент, который использует низкое напряжение для управления магнитным переключателем в цепи высокого напряжения. На Raspberry Pi имеется трансмиттер, который дает ресиверам команду включаться и выключаться.
Устройства Energenie дают безопасный способ управлять электропитанием.Стандартная библиотека Python для Energenie довольно громоздкая и требует от пользователя управления контактами GPIO, используемыми трансмиттером для соединения с каждым устройством и выдачи инструкции по включению/выключению.
Эта библиотека намного упростилась благодаря Бену Наттелу (Ben Nuttal), члену Образовательной команды Raspberry Pi Foundation, и Эми Мейзер (Amy Mather), которую многие знают как Mini Girl Geek; это юнаяхакерша. Ихулучшенная библиотека, которую мы применили в нашем руководстве, требует знания номера каждого устройства, чтобы выдавать инструкцию одному либо всем устройствам сразу.