Реклама
Выключатели на закате и на рассвете, а также таймеры - это удобный способ автоматизировать освещение. Разве не было бы замечательно, если бы вы могли объединить их или даже подключить их к Интернету для действительно умной системы освещения?
Raspberry Pi, реле, датчик освещенности и штрих кода - все, что вам нужно для достижения этой автоматической нирваны освещения на шнурке.
Что вам нужно
Компоненты для вашего светочувствительного интеллектуального переключателя легко найти. Вам понадобиться:
- Любая модель Raspberry Pi работает под управлением Raspbian.
- релейная плата, легко найти на Амазоне.
- Датчик яркости Adafruit TSL2561.
- Перемычки.
- Некоторые огни для автоматизации!
Как работает светочувствительный интеллектуальный переключатель
Используя реле так же, как наши проект автоматического открывания гаражных ворот Как автоматизировать гаражные ворота с помощью IFTTT и Raspberry PiВ этом уроке мы покажем вам, как автоматизировать гаражные ворота, используя только Raspberry Pi и IFTTT. Прочитайте больше
Вы можете запрограммировать Raspberry Pi на включение и выключение цепи освещения в определенное время. Добавление датчика яркости к миксу означает, что Pi может определять уровень окружающего освещения и выбирать включение света только тогда, когда это действительно необходимо.Поскольку Pi - это крошечный компьютер, который можно подключить к сети, вы также можете настроить его на управление через Интернет. Ваши умные источники света будут иметь три входа для определения момента их включения:
- Запрограммированное расписание.
- Уровень рассеянного света.
- Сигнал переопределения передается по сети.
Шаг 1: Подключите Raspberry Pi к реле
Если вы новичок в использовании GPIO, начните с чтения Все, что нужно знать о выводах Raspberry Pi GPIO.
Сначала проверьте, есть ли на вашей плате реле перемычка, соединяющая контакты VCC и JD-VCC. Если это так, удалите его.
Когда все выключено, подключите релейную плату к вашему Pi следующим образом:
- Контакт Pi 2 (5v) к JD-VCC на плате реле.
- Pi Pin 6 (GND) к GND на плате реле.
- Pi контакт 15 (GPIO 22) к IN1 на плате реле
- Pi контакт 17 (3,3 В) для VCC на плате реле.
Шаг 2: Подключите датчик яркости
TSL2561 - это датчик света, который может обнаруживать инфракрасный, полный спектр и видимый человеком свет. Он может отправить очень точное цифровое чтение Raspberry Pi. Датчик сообщает уровень освещенности по шкале от 0,1 (без света) до 40000 (яркое солнце).
Плата TSL2561 говорит с Raspberry Pi по протоколу i2c. I2C требуется только два соединения: одно для синхронизации, чтобы синхронизировать два устройства, и одно для передачи данных. Конечно, датчик люкс также нуждается в некотором питании, поэтому необходимо выполнить всего четыре соединения:
- Подключите контакт Pi 1 (3,3 В) к Vin (или VCC) на датчике люкс
- Подключите Pi Pin 3 (SDA) к SDA на датчике люкс
- Подключите Pi Pin 5 (SCL) к SCL на датчике люкс
- Подключите Pi Pin 9 (GND) к GND на датчике люкс
Шаг 3. Настройка и установка зависимостей
Прежде чем идти дальше, вам нужно проверить, что I2C включен на Raspberry Pi (по умолчанию он отключен). Введите в терминал следующее:
sudo raspi-config
Выбрать Параметры сопряжения> P5 I2C, тогда выбирай да.
Хит Войти затем выберите Конец выйти из экрана конфигурации. Перезагрузите Pi, чтобы изменения вступили в силу:
перезагрузка sudo
Некоторые зависимости необходимы для того, чтобы Pi мог взаимодействовать с сенсорной платой. Введите следующие команды:
sudo apt-get update. sudo apt-get install -y python-smbus. sudo apt-get install -y i2c-tools
Вы можете проверить все работает, набрав:
sudo i2cdetect -y 1
Если ваши зависимости установлены и ваш датчик люкс подключен правильно, вы увидите ответ, подобный следующему:
Здесь утилита сообщает, что обнаружила устройство I2C (датчик люкс) по адресу 39 I2C.
Вы еще не закончили с зависимостями. Вам тоже понадобится несколько библиотек. Сначала создайте папку, в которой будет храниться все, что связано с этим проектом:
MKDIR ~ / освещения. CD ~ / освещение
Далее скачиваем бутылка, легкий фреймворк, который создаст простой веб-сервер на вашем Pi. Вы будете использовать его для управления своими огнями из Интернета.
Wget https://bottlepy.org/bottle.py
Другие библиотеки, которые вам понадобятся, находятся на Github, поэтому, если на вашем Raspberry Pi Git еще не установлен, добавьте его сейчас:
sudo apt-get установить git
Теперь клонируйте две библиотеки, вот так:
мерзкий клон https://github.com/adafruit/Adafruit_Python_GPIO.git. мерзкий клон https://github.com/adafruit/Adafruit_Python_PureIO.git
И наконец, создайте тестовый скрипт, создав новый файл:
нано test.py
Вставьте этот код (любезно предоставлено Adafruit):
#! / usr / bin / env python. # - * - кодировка: utf-8 - * - из __future__ импорт absolute_import, деление, print_function, unicode_literals. из цл2561 импортный цл2561. if __name__ == "__main__": tsl = TSL2561 (debug = True) print (tsl.lux ())
Нажмите Ctrl + X сохранить, следуя инструкциям на экране для выхода.
Когда вы закончите, запустите тестовый скрипт:
python test.py
Если все установлено и работает, вы получите номер. Это число является показанием люкс с датчика. Попробуйте заблокировать датчик или переместить его, чтобы он получал больше или меньше света. Затем снова запустите тестовый скрипт и посмотрите, как меняется число.
Шаг 4. Создание сценариев автоматизации
Raspberry Pi включит свет, когда стемнеет, но и выключит их в определенное время. Например, вы можете захотеть, чтобы ваши огни включались вечером, когда стемнеет, а затем выключаться около полуночи, чтобы сэкономить электроэнергию. Они могут прийти снова рано утром, а затем выключиться, когда станет светло.
Для управления расписанием с несколькими временными зонами, как это, есть два разных сценария. Один (onzone.py) будет работать каждую минуту в то время, когда вы хотите, чтобы ваши огни были включены, если темно. Другой (offzone.py) будет работать каждую минуту в то время, когда необходимо выключить свет независимо от уровня освещенности.
Сценарии будут запланированы для запуска используя задания cron Как планировать задачи в Linux с помощью Cron и CrontabСпособность автоматизировать задачи - одна из тех футуристических технологий, которые уже здесь. Каждый пользователь Linux может получить выгоду от планирования системных и пользовательских задач, благодаря cron, простому в использовании фоновому сервису. Прочитайте больше . Выбирая часы дня и ночи для запуска каждого сценария, будет легко установить часы, в которые ваши лампы могут включаться автоматически. Вы можете установить столько периодов включения и выключения, сколько захотите.
Помимо сценариев автоматического управления источниками света, существует третий сценарий для управления переопределением ситуаций. Это позволит вам дистанционно включать свет независимо от уровня окружающего освещения.
Сценарий 1: Зона ON
Этот скрипт Python будет запускаться каждую минуту дня, когда вы хотите, чтобы свет включался, если темно. Загрузите скрипт, скопировав и вставив эту команду в терминал:
Wget https://gist.githubusercontent.com/hamishdownell/ea151d2ff7c888ac09f8a850afaab4ee/raw/10b0e9d8ec42f8577750941da46a93d16b597c05/onzone.py
Каждый раз, когда запускается onzone.py, он получает значение люкс от датчика, чтобы увидеть, темно ли оно. Если это так, то он проверит, включены ли огни. Если они выключены, он включит их. Если не темно, сценарий увидит, включены ли огни. Если они есть, он отключит их, если они не были переопределены.
Скрипт использует переменную с именем lowlux решить, в какой момент достаточно темно, чтобы включить свет. Вы можете изменить его на что-то подходящее для вашей собственной установки, изменив значение в этой строке в верхней части onzone.py:
lowlux = 50
Сценарий 2: Зона выключения
Этот сценарий будет запускаться каждую минуту дня, когда вы хотите, чтобы индикаторы не светились, если они не были переопределены. Загрузите скрипт:
Wget https://gist.githubusercontent.com/hamishdownell/fb8970909145bbfefbbef8dba5f5a00f/raw/eae5a6057a51ca4727907c7d061f0a48b07da944/offzone.py
Этот сценарий не заботится о том, насколько он светлый или темный. Его работа заключается в простом выключении света, если они включены (если они не были переопределены).
Сценарий 3: переопределить сервер
Этот сценарий создает простой веб-сервис, который может принимать команды для выполнения следующих действий:
- Включите свет на несколько минут независимо от уровня освещенности.
- Выключать освещение.
- Узнайте, включены ли огни в настоящее время или выключен.
- Узнайте, как долго должны светиться огни, если они были отключены.
Загрузите скрипт:
Wget https://gist.githubusercontent.com/hamishdownell/2303bfd9fb30d42e79923bdb7e69ed4e/raw/7dcb456b81b8ae58ae48efa225adb41ba7d7f69c/lightserver.py
Прежде чем перейти к следующему шагу, запустите скрипт offzone.py, например:
python offzone.py
Это создаст контрольные файлы, которые используются сценариями для отслеживания всего.
Шаг 5: Запланируйте сценарии
Ваш Raspberry Pi может запускать сценарии автоматизации с помощью cron. Настройте расписание следующим образом:
sudo crontab -e
Вставьте эти две строки в текстовый редактор:
* 7,8,9,17,18,19,20,21,22,23 * * * python /home/pi/lighting/onzone.py> NULL. * 0,1,2,3,4,5,6,10,11,12,13,14,15,16 * * * python /home/pi/lighting/offzone.py> NULL
Примечание. Если имя пользователя, с которым вы вошли в Raspberry Pi, не было значением по умолчанию число Пи, измените путь соответственно.
В первой строке перечислите все часы, в которые вы хотите включить свет, когда темно. Все часы, где вы хотите выключить свет, идут во второй строке.
Теперь установите скрипт переопределения для автоматического запуска при запуске Pi:
sudo nano /etc/rc.local
Вставьте эту строку внизу файла, затем сохраните и выйдите:
nohup python /home/pi/lighting/lightserver.py &
Наконец, перезагрузите Raspberry Pi, чтобы вы могли убедиться, что серверный скрипт загружается как надо
перезагрузка sudo
Шаг 6: Проверьте реле
Перед подключением источников света проверьте, что все работает, с помощью функции переопределения. Введите следующее в веб-браузер в той же сети, что и ваш Pi, заменив IP-адрес на адрес своего собственного Raspberry Pi:
11.22.33.44:1234/overrideon/3
Если все в порядке, вы услышите щелчок реле и браузер ответит, что свет был включен в течение трех минут.
Пока реле замкнуто, вы можете проверить другие функции отмены. Это скажет вам, сколько еще ламп будет гореть из-за переопределения:
11.22.33.44:1234/getoverrideremaining
Это должно сказать вам, что огни включены:
11.22.33.44:1234/lightstatus
Наконец, вы можете снова отключить их с помощью:
11.22.33.44:1234/overrideoff
Реле будет щелкать, когда оно открывается.
Шаг 7: подключи свои огни
Выключите и отключите Raspberry Pi, прежде чем подключать свет к реле. Используйте нормально разомкнутые (НЕТ) разъемы на плате реле вместо обычного переключателя, например:
Наконец, вы можете установить датчик Lux в месте, где он будет отражать уровень освещенности. Обратите внимание, что TSL2561 будет сообщать о насыщенности, если он сталкивается с прямыми яркими солнечными лучами, поэтому лучше по возможности держать его в тени.
Больше проектов Raspberry Pi для вас
Удаленно переопределить новую настройку интеллектуального освещения, введя команды в веб-браузере, довольно громоздко. Лучший способ - подключить что-то вроде Amazon Echo, чтобы упростить процесс. Объединение сервиса Alexa и сервиса Webhooks на IFTTT это простой способ добавить голосовое управление.
Смотрите наш руководство по использованию IFTTT чтобы помочь вам начать.
Другим вариантом является использование Siri Shortcuts. Один ярлык с меню может запрашивать состояние источников света и использовать функции переопределения для их включения и выключения.
Если вам понравился этот проект, обязательно ознакомьтесь с этими странные проекты Raspberry Pi 10 самых странных проектов Raspberry PiВ каждом из нас есть сумасшедший ученый, и Raspberry Pi позволяет вашему внутреннему муравью выйти и поиграть. Иногда вещи становятся странными. Очень странно. Прочитайте больше для большего количества идей.
Хэмиш - независимый писатель, пожизненный любитель технологий и убежденный ботаник. Он работал в ИТ-отделах ряда транснациональных корпораций, прежде чем, наконец, уволить своего босса и уйти в одиночку.