Оглавление:

Умный дом от Raspberry Pi: 5 шагов (с изображениями)
Умный дом от Raspberry Pi: 5 шагов (с изображениями)

Видео: Умный дом от Raspberry Pi: 5 шагов (с изображениями)

Видео: Умный дом от Raspberry Pi: 5 шагов (с изображениями)
Видео: Home Assistant - Обзор Платформы Автоматизации 2024, Июль
Anonim
Умный дом от Raspberry Pi
Умный дом от Raspberry Pi

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

Я запрограммировал серверное приложение, работающее на Raspberry Pi. Это проект с открытым исходным кодом на основе Java, который позволяет вам настроить вашу квартиру и подключить несколько клиентов и «управляемые устройства». Я показываю решение, которое обрабатывает переключатели питания RC, воспроизводит музыку и видео на Raspberry Pi, показывает состояние на интеллектуальном зеркале и может управляться приложением для Android и двумя приложениями Pebble. Источник размещен на github

Шаг 1. Вещи, которые вам нужны

Вещи, которые нужно
Вещи, которые нужно

Для создания Умного дома вам понадобятся следующие «ингредиенты»

  • Raspberry Pi не ниже модели 2 B
  • Отправитель 433 МГц, примерно так
  • 3 соединительных кабеля, соединяющих Raspberry Pi и отправителя
  • Некоторые разъемы для радиоуправления на 433 МГц
  • Смартфон Android для запуска клиентского приложения

Кроме того, вы можете расширить Умный дом дополнительными клиентами и модулями, подобными этому.

  • Умные часы Pebble
  • Smart Mirror, см. Этот проект
  • Светодиодная лента с управляемой частотой 433 МГц, см.

Шаг 2: подготовьте Raspberry Pi к частоте 433 МГц

Подготовьте Raspberry Pi для 433 МГц
Подготовьте Raspberry Pi для 433 МГц
Подготовьте Raspberry Pi для 433 МГц
Подготовьте Raspberry Pi для 433 МГц

В следующих шагах вам понадобится доступ к командной строке Raspberry Pi. Чтобы получить доступ, вы можете прочитать эту инструкцию

Подключите отправитель 433 МГц к Raspberry Pi, как показано на рисунке выше.

  • GND (отправитель) 6 GND (распи)
  • VCC (отправитель) 2 + 5V (распи)
  • ДАННЫЕ (отправитель) 11 GPIO 17 (распи)

Также подключите 17-сантиметровую антенну к контакту ANT (отправитель). Это значительно увеличивает сигнал.

Поскольку нам нужны библиотеки из других репозиториев git, мы должны установить git

sudo apt-get install git-core -y

Чтобы настроить Raspberry Pi для связи 433 МГц, нам понадобится библиотека Pi для подключения для лучшей обработки GPIO.

git clone git: //git.drogon.net/wiringPi

cd wiringPi./build

Затем нам понадобится библиотека, которая обычно реализует протоколы питания RC.

git clone git: //github.com/dabastynator/rcswitch-pi.git

cd rcswitch-pi сделать cp send / usr / bin /

Исполняемый файл send позволяет отправлять коды для переключения большинства доступных источников питания.

В моей настройке Умного дома у меня также есть светодиодная лента с радиоуправлением, описанная в этом руководстве: https://www.instructables.com/id/RC-controlled-LED … Чтобы установить цвета для этой светодиодной ленты, вам понадобится другой исполняемый файл отправки, который позволяет вам для отправки любого целочисленного значения (кодирует цвет).

Поэтому скомпилируйте sendInt.cpp в репозитории rcswitch-pi и переместите его в / usr / bin / sendInt.

sudo g ++ sendInt.cpp -o / usr / bin / sendInt /home/pi/rcswitch-pi/RCSwitch.o -I / home / pi / rcswitch-pi -lwiringPi

Теперь вы должны иметь возможность отправлять команды rc с двумя исполняемыми файлами / usr / bin / send и / usr / bin / sendInt.

Шаг 3. Настройте сервер умного дома

Прежде всего вам необходимо установить несколько пакетов. Приложение Smart Home основано на java и отлично работает с openjdk-11. Я не уверен в других средах выполнения Java. Mplayer - это минималистичный музыкальный проигрыватель с командной строкой. Omxplayer использует графику Raspberry Pi для кодирования видео, поэтому его следует использовать для видео. Программа ant необходима для сборки Java-приложения.

sudo apt-get установить mplayer omxplayer openjdk-11-jdk ant -y

Каталоги установки для файла jar и журналов.

судо mkdir / opt / neo

sudo chown pi: pi / opt / neo mkdir / home / pi / журналы

Настройте сценарий запуска для автоматического запуска приложения при загрузке. Поэтому скопируйте прикрепленный сценарий smart-home в каталог /etc/init.d/. Я также создал сценарий в / usr / bin /, который передает команды прикрепленному сценарию, поэтому я просто ввожу smart-home в консоль для выполнения команд..

sudo cp умный дом /etc/init.d/smart-home

sudo chmod + x /etc/init.d/smart-home sudo sh -c "echo '#! / bin / bash'> / usr / bin / smart-home" sudo sh -c "echo '/ etc / init. d / smart-home / $ 1 '>> / usr / bin / smart-home "sudo chmod + x / usr / bin / smart-home sudo update-rc.d значения по умолчанию для умного дома

Пришло время проверить репозиторий и собрать приложение. Если вы не хотите компилировать его самостоятельно, вы можете просто загрузить прикрепленный smarthome.jar и переместить его в / opt / neo /

git clone [email protected]: dabastynator / SmartHome.git

ant -f SmartHome / de.neo.smarthome.build / build.ant build_remote cp SmartHome / de.neo.smarthome.build / build / jar / * / opt / neo /

Попробуйте запустить умный дом и проверьте файл журнала. Чтобы получить доступ к GPIO, приложение должно быть запущено с помощью sudo.

sudo начало умного дома

журналы кошек / smarthome.log

Вы должны увидеть сообщение об ошибке "Файл конфигурации не существует", которое указывает нам на следующий шаг. Репозиторий содержит файл readme, который объясняет файл конфигурации. Вы можете увидеть, как это красиво отрисовано на github:

Скопируйте этот xml в /home/pi/controlcenter.xml, затем установите местоположение для вашего медиа-сервера и измените содержимое по своему усмотрению. После того, как вы закончили настройку и перезапустили умный дом (sudo smart-home restart), вы должны увидеть следующее содержимое в smarthome.log

24.05-08: 26 УДАЛЕННАЯ ИНФОРМАЦИЯ от de.neo.smarthome.cronjob. CronJob@15aeb7ab: Запланировать задание cron

24.05-08: 26 УДАЛЕННАЯ ИНФОРМАЦИЯ от [trigger.light]: Ожидание 79391760 мс для выполнения 24.05-08: 26 ИНФОРМАЦИЯ RMI от добавления веб-обработчика (5061 / ledstrip) 24.05-08: 26 ИНФОРМАЦИЯ RMI от добавления веб-обработчика (5061 / action) 24.05-08: 26 ИНФОРМАЦИЯ RMI от Add web-handler (5061 / mediaserver) 24.05-08: 26 RMI INFORMATION by Add web-handler (5061 / switch) 24.05-08: 26 ИНФОРМАЦИЯ RMI от Add web-handler (5061 / controlcenter) 24.05-08: 26 ИНФОРМАЦИЯ RMI от Start webserver с 5 обработчиком (localhost: 5061) 24.05-08: 26 УДАЛЕННАЯ ИНФОРМАЦИЯ от Controlcenter: Добавьте 1. блок управления: MyUnit (xyz)…

Веб-сервер запущен:-)

Шаг 4: Настройка клиентов

Настроить клиентов
Настроить клиентов
Настроить клиентов
Настроить клиентов
Настроить клиентов
Настроить клиентов

Клиент Android для смартфона

Репозиторий git для приложения умного дома также содержит исходный код для клиента Android, так что вы можете скомпилировать его самостоятельно. Но я прикрепил APK для этого шага, это упростило задачу. При первом запуске приложение запрашивает сервер, как на первом изображении выше. Введите URL-адрес сервера и токен безопасности.

Так и должно быть. Теперь у вас есть доступ к серверу и вы управляете своей квартирой, проигрываете музыку и смотрите видео удаленно на Raspberry Pi. Обратите внимание, что вы можете добавлять виджеты на домашний экран, что делает переключатели и управление музыкой более доступными.

Клиент Smartwatch Pebble

Исходный код для двух клиентов Pebble размещен на github. Одно приложение показывает текущий проигрываемый музыкальный файл: https://github.com/dabastynator/PebbleRemoteMusic… Это также позволяет приостанавливать / воспроизводить и увеличивать / уменьшать громкость.

Второе приложение запускает три действия: https://github.com/dabastynator/PebbleControl Имена триггеров: mobile.come_home mobile.leaving и mobile.go_to_bed. Если вы определяете правила событий для этого триггера в файле конфигурации-xml, вы запускаете их по часам.

Это все с открытым исходным кодом, но вам не нужно компилировать его самостоятельно, я также прикрепил приложения pebble. Загрузите PBW на свой смартфон, ваш телефон должен установить их на ваши часы. Приложениям Pebble нужны настройки для взаимодействия с сервером. Прикрепил скриншот, как выглядят мои настройки.

Клиент SmartWatch Garmin

Также доступен клиент для умных часов Garmin. Приложение доступно в магазине приложений garmin connect и может быть установлено здесь:

apps.garmin.com/en-US/apps/c745527d-f2af-4…

Клиент Smart Mirror

Я уже создал инструкции, объясняющие, как создать Smart Mirror, см. Https://www.instructables.com/id/Smart-Mirror-by-R…. Исходный код также размещен на github: https:// github.com/dabastynator/SmartMirror. Программное обеспечение Smart Mirror считывает конфигурацию из файла smart_config.js, который не является частью репозитория git. Содержимое файла конфигурации должно выглядеть следующим образом:

var mOpenWeatherKey = 'ваш-открытый-ключ-погода';

var mSecurity = 'ваш-токен-безопасности';

Вам также необходимо настроить первые две строки файла smart_mirror.js, чтобы указать IP-адрес сервера Smart Home и местоположение, чтобы получить правильную погоду.

Больше клиентов

Серверное приложение - это простой веб-сервер. Это позволяет вам запускать действия от любого клиента, который вы хотите, с помощью простых веб-вызовов. В демонстрационном видео я показываю программу задач для Android в сочетании с AutoVoice. Это позволяет мне запускать события с помощью простых голосовых команд. Например, "Окей, Google, пора спать" может вызвать mobile.go_to_bed. Но вы также можете делать веб-звонки, например, из IFTTT. Как насчет мигающей желтой светодиодной ленты для уведомлений по электронной почте?

Вы можете запросить сервер о возможных веб-вызовах, например, по следующим ссылкам (замените ip, порт и токен своей конфигурацией)

localhost: 5061 / controlcenter / api? token = secu…

localhost: 5061 / action / api? token = security-to…

localhost: 5061 / mediaserver / api? token = securi…

localhost: 5061 / switch / api? token = security-to…

localhost: 5061 / ledstrip / api? token = security-…

Шаг 5: Заключение

Есть еще некоторые функции, которые нужно реализовать: Поскольку сервер предоставляет только простой веб-API, клиенты выполняют много опросов. Чтобы уменьшить количество опросов, мне нужна интеграция MQTT для лучшего уведомления. Кроме того, блоки питания Wi-Fi должны работать более надежно, чем блоки питания RC, поскольку RC - это только односторонняя связь.

Разработка этого проекта доставляет массу удовольствия. А управлять квартирой с нескольких устройств - это круто, даже если интернет не работает.

Рекомендуемые: