DiyУмный дом

Как управлять Philips Hue Lights от Arduino (и добавить датчик движения)

Как управлять Philips Hue Lights от Arduino (и добавить датчик движения)

Ассортимент светильников Philips Hue, безусловно, не дешев ( есть несколько альтернатив, стоят того, стоят. ), но одна вещь, которую я действительно ценю, это хорошо документированный API о создании собственных приложений Hue. Сегодня я покажу вам, как управлять подсветкой Hue от Arduino, а затем добавлю простой датчик движения.

Почему мы это делаем? Потому что системы домашней автоматизации могут быть довольно жесткими и дорогими. Изучая, как управлять Hue от Arduino, вы открываете двери для множества индивидуальных проектов домашней автоматизации, которые просто не могут быть побеждены готовыми компонентами. Если совместное хакерство — не ваше дело, попробуйте эти 8 великолепных приложений Hue вместо этого.

Система оттенков

Давайте немного разберемся с техникой, чтобы вы знали основные системы, с которыми вы работаете. Подсветка создает ячеистую сеть , используя протокол беспроводной связи малого радиуса действия под названием ZigBee — в частности, они сертифицированы ZigBee Light Link , что означает, что другие продукты ZLL также должны работать вместе с Hue (теоретически).

Несмотря на техническую ограниченность, функция ячеистой сети в ZigBee означает, что каждая новая лампочка расширяет сеть, передавая сообщения другим лампам. Это означает, что если у вас возникли проблемы с управлением источником света на другой стороне дома, попробуйте установить другой источник света между ними.

Zigbee — отличный протокол, но он сильно отличается от Wi-Fi или проводной компьютерной сети, поэтому нам необходим мост Philips Hue Bridge, чтобы объединить их вместе. Мост Hue выполняет модифицированную прошивку Linux с открытым исходным кодом, которая транслирует базовый веб-сервер.

Это то, что вы увидите, если просто наберете IP-адрес вашего моста Hue в браузере. Вы не можете сделать много отсюда, хотя.
Это то, что вы увидите, если просто наберете IP-адрес вашего моста Hue в браузере. Вы не можете сделать много отсюда, хотя.

Именно взаимодействуя с этим локальным веб-сервером, вы можете узнать текущее состояние индикаторов и управлять ими.

Это красивая простая система, созревшая для проектов DIY. Престижность Philips за то, что сделал эту вещь такой взломанной.

Начиная

Прежде чем вы сможете получить доступ к документации API, вам необходимо зарегистрироваться в качестве разработчика . Это бесплатно, но вы должны принять условия. Сделай это сейчас.

Любой, кто знаком со стандартными веб-сервисами или Javascript, должен уметь работать с Hue: все данные передаются и принимаются в виде пакетов JSON.

Чтобы увидеть это в действии, вам нужно знать IP-адрес вашего моста Хюэ. Есть несколько способов сделать это:

  • Посмотрите на таблицу назначения адресов DHCP в интерфейсе администратора вашего роутера
  • Запустите программу сетевого сопоставления, такую ​​как IP Scanner Home
  • Попробуйте брокерский инструмент Philips UPnP
  • Пинг «philips-hue.home»

отображение сети, чтобы найти мост

Когда вы закончите, введите его в адресную строку браузера, добавив к URL-адресу файл debug / clip.html . В моем случае это было:

http://192.168.1.216/debug/clip.html 

Это инструмент отладки, который позволяет отправлять и получать пакеты JSON через простой веб-интерфейс. Первым шагом является включение профиля разработчика на самом Hue Bridge, который по умолчанию отключен по соображениям безопасности. Вставьте следующее в поле BODY, оставьте URL-адрес как / api / и отправьте запрос POST, нажав кнопку « Отправить»:

 {"devicetype":"test user","username":"newdeveloper"} 

Когда вы в первый раз сделаете это, вы увидите «ответную ссылку не нажата» где-то в ответе. Это функция безопасности, которая требует, чтобы каждое новое приложение, которое вы используете, было физически авторизовано. Идите и найдите свой мост, нажмите кнопку и отправьте тот же запрос еще раз в течение 30 секунд . На этот раз вы получите другой ответ, и пользователь будет авторизован. Если вы хотите использовать другое имя пользователя, прочитайте документы API о создании пользователей . Пока этого будет достаточно.

Как только ваш пользователь настроен, базовый URL, с которым вы должны взаимодействовать, становится / api / newdeveloper / . Вы можете отправить запрос GET, чтобы узнать все, что ваш мост знает о подключенных источниках света, сигналах тревоги, сценах и кратком журнале приложений, которые использовались. Вот образец информации о состоянии, которая содержится в одной лампочке.

 "state": { "on": true, "bri": 254, "hue": 14910, "sat": 144, "effect": "none", "xy": [ 0.4596, 0.4105 ], "ct": 369, "alert": "none", "colormode": "ct", "reachable": false }, "type": "Extended color light", "name": "Bedroom 1", "modelid": "LCT001", 

Обратите внимание, что «вкл.»: Истинное состояние на самом деле не показывает, включена лампочка или нет; только то, что в соответствии с настройками моста, он должен быть включен. «Достижимый»: значение «ложь» может указывать на то, что лампа находится слишком далеко или просто выключена с помощью выключателя питания.

Последний пример, прежде чем мы интегрируем это в Arduino: убедитесь, что один из ваших источников света виден и включен, и что вы знаете, какой это номер. Измените URL на / api / newdevelopers / lights / 1 / state (изменив номер на ваш свет) и отправьте запрос PUT со следующими данными:

 {"hue": 50100,"sat":255,"bri":255} 

Вы должны увидеть, как ваш свет реагирует так:

демо-версия

То, что вы сделали, это выдвинули новое состояние в колбу. Вы также можете добавить «переходное время», которое является примитивным методом анимации, показывающим, сколько секунд вы хотите, чтобы изменение состояния заняло.

Цвет можно установить несколькими различными способами , но, к сожалению, простого способа отправки значения RGB не существует. В приведенном выше примере мы послали оттенок , насыщенность и яркость. Попробуйте изменить значение оттенка и снова отправить запрос PUT.

Работа от Arduino

Существует существующая библиотека Hue / Arduino под названием ArduinoHue, на которую сами Philips ссылаются в документации API, но проблема с этой библиотекой заключается в том, что она связывается через USB-соединение с вашим ПК, который также должен постоянно запускать приложение Python. Эхх Вы можете также позволить своему компьютеру запустить весь процесс в этот момент и полностью отключить Arduino.

Вместо этого я покажу вам, как управлять Hue от Arduino, используя щит Ethernet . Ваш Arduino не должен быть подключен к компьютеру, поэтому он может работать независимо везде, где вы можете подключить кабель Ethernet. На самом деле, он также должен работать со щитом Wi-Fi, но мне не с чем играть.

Ehternet-Sheild ящик

Если вы хотите пропустить, полный пример кода приведен ниже или доступен здесь . Я адаптировал это на примере, опубликованном Гилсоном Огайме . Если вы никогда раньше не играли со своим щитом Ethernet, возможно, вы захотите быстро пройтись по учебному пособию по веб-клиенту — я предполагаю, что вы немного знакомы с этим, и не буду описывать код, используемый для создания сети. IP и т. Д. Мы также показали, как создать мини-веб-сервер с сетевым экраном Ethernet. веб-сервер с сетевым экраном. веб-сервер с сетевым экраном. .

Похожие посты
Умный дом

Что такое «Эхо Амазонки Авто»?

Умный дом

Что такое умный туалет и стоит ли его покупать?

Как сделатьУмный дом

Как добавить Alexa в ваше умное зеркало

Tech новостиКак сделатьУмный дом

Как контролировать свои потолочные вентиляторы в SmartHome