Привет дорогие друзья! Проект с умным зеркалом набрал очень много просмотров, что побудило меня написать еще одну статью на эту тему.
Что мы будем добавлять в наше умное зеркало? Добавлять будем следующие модули и расширение функционала:
1. Научим умное зеркало воспроизводить музыку через Airplay
2. Выведем показания нашего умного дома на зеркало
3. Выведем наши показания с Google Calendar на умное зеркало.
Обучаем умное зеркало работать с AirPlay
Умное зеркало не только должно выводить информацию, но и быть мультимедийным устройством.
Научим наше умное зеркало работать с таким известным протоколом как AirPlay, всем пользователям техники Apple он очень известен и знают, что данный протокол нужен для беспроводной передачи Аудио или Видео. В нашем случае мы будем передавать только аудио поток нашему умному зеркалу.
Для начала нам нужно Установить и настроить Shairport Sync.
Перед началом установки обновим уже установленные в системе пакеты:
sudo apt-get update && apt-gr dist-upgrade
Теперь установим все необходимые модули для работы Shairport Sync:
sudo apt-get install build-essential git autoconf automake libtool libdaemon-dev libasound2-dev libpopt-dev libconfig-dev avahi-daemon libavahi-client-dev libssl-dev
Скопируем с Github репозитория исходники:
git clone https://github.com/mikebrady/shairport-sync.git
Перейдем в папку с только, что скаченными исходниками, сконфигурируем и соберем приложение:
cd shairport-sync
autoreconf -i -f
./configure --sysconfdir=/etc --with-alsa --with-avahi --with-ssl=openssl --with-metadata --with-systemd
make
Создадим отдельную группу и отдельного пользователя специально для Shairport:
getent group shairport-sync &>/dev/null || sudo groupadd -r shairport-sync >/dev/null getent passwd shairport-sync &> /dev/null || sudo useradd -r -M -g shairport-sync -s /usr/bin/nologin -G audio shairport-sync >/dev/null
Осталось установить приложение и запустить как системное
sudo make install sudo systemctl enable shairport-sync
На этом установка почти закончена, осталось перегрузить нашу Малинку с AirPlay сервером и сделать несколько настроек
sudo reboot
После перезагрузки нам нужно сделать следующее
1. Отключение энергосбережения Wi-Fi малины
2. Переключить вывод звука с HDMI на 3.5 jack
3. Улучшить качество звука
4. Изменение названия AirPlay-ресивера
Подробно не буду останавливаться на всех пунктах, просто сделайте как будет указано ниже.
Отключаем энергосбережения Wi-Fi
sudo nano /etc/network/interfaces
Найдем в нем строку «iface wlan0 inet manual» и добавим сразу же после нее следующую строку:
wireless-power off
Переключить вывод звука с HDMI на 3.5 jack
Если у вас звук нужно выводить через 3.5 jack, то переходим в терминал и вводим следующие команды
sudo raspi-config
В результате откроется новый экран — с разнообразными настройками.
Переходим в Advanced Options и нажимаем Enter
Выбираем раздел Audio и нажимаем Enter и выбираем 3.5 Jack
После этого нажимаем Finish и перегружаем малинку.
Улучшить качество звука
sudo nano /boot/config.txt
И дописываем в конец следующую строку:
audio_pwm_mode=2
Для еще одного улучшения качества звука нужно исправить файл конфигурации самого Shairport Sync:
sudo nano /etc/shairport-sync.conf
В котором нужно найти строку:
// volume_range_db = 60 ;
И заменяем эту страну на следующую
volume_range_db = 30 ;
Перегружаем малину снова)
Изменение названия AirPlay-ресивера
Изначально наша AirPlay-колонка будет носить сетевое имя устройства, на котором развернут Shairport (в случае с «малиной» это имя по умолчанию Raspberrypi).
sudo nano /etc/shairport-sync.conf
Найти в нем строку:
// name = "%H"
Убираем 2 // и в "Пишем тут своем название "
name = "MagicMirror Airplay"
Выведем показания нашего умного дома на зеркало
Для получения данных из умного дома напрямую из HomeBridge невозможно это сделать, именно для этого пришлось устанавливать и изучать Home Assistant, но на портале есть отличный автор Александр Жабунин (OXOTH1K) по его мануалам я все и ставил.
После того как все настроено нам осталось забрать данные с Home Assistant в наше умное зеркало
Начнем с установки модуля для нашего зеркала. Подключаемся к малине по ssh и переходим в директорию с модулями умного зеркала.
cd ~/MagicMirror/modules
После этого нужно скланировать модуль
git clone https://github.com/aserramonner/MMM-HASS
После этого переходим с директорию с нашим новым модулем и устанавливаем его
cd ~/MagicMirror/modules/MMM-HASS
npm install
На этом установка модуля закончена и переходим к его настройкам
Переходим к конфигу
sudo nano ~/MagicMirror/config/config.js
Вставляем следующий код в наш config.js
{ module: "MMM-HASS", position: "top_left", apipassword: "your_home_assistant_api_password", config: { host: "your_home_assistant_ip", port: "your_home_assistant_port", https: false, devices: [ { deviceLabel: "Температура и влажность", deviceReadings: [ { sensor: "sensor.temperature_158d0001ad", icon: "wi wi-thermometer", suffix: "°С"}, { sensor: "sensor.humidity_158d0001ad", icon: "wi wi-humidity", suffix: "%"}, ] }, { deviceLabel: "Освещенность", deviceReadings: [ { sensor: "sensor.illumination_7811dc64", suffix: " LUX"}, ] }, { deviceLabel: "Люстра", deviceReadings: [ { sensor: "light.living_room1"}, ] }, ] } },
Теперь разберем все настройки по полочкам
position: "top_left" - позиция где на зеркале будет располагаться наш модуль apipassword: "your_home_assistant_api_password", - Апи ключ который задается в конфигурационном файле HA host: "your_home_assistant_ip" - адрес вашего HA port: "your_home_assistant_port", - Порт HA по умолчанию 8123 { deviceLabel: "Температура и влажность", deviceReadings: [ { sensor: "sensor.temperature_158d0001ad36d7"- это индификатор нашего устройства дальше покажу где его брать, icon: "wi wi-thermometer", - иконка которую я прописал уже за вас suffix: "°С" что это температура}, { sensor: "sensor.humidity_158d0001ad36d7", icon: "wi wi-humidity", suffix: "%"}, ] },
Дальше добавляем по аналогии.
Где взять идентификаторы устройств?
Заходим в браузере на наш сервер HA и переходим в раздел Состояния в Инструментах разработчика
Ну и вот наш идентификатор который нам нужен был.
Ну вот кратко рассказал как это все добро вывести, но можно выводить не только показания датчиков влажности и температуры, но и состояние приборов. Надуюсь сами разберетесь как это делать. Я оставлю свой конфиг для примера
{ module: "MMM-HASS", position: "top_left", apipassword: "your_home_assistant_api_password", config: { host: "your_home_assistant_ip", port: "your_home_assistant_port", https: false, devices: [ { deviceLabel: "Температура и влажность", deviceReadings: [ { sensor: "sensor.temperature_158d0001ad", icon: "wi wi-thermometer", suffix: "°С"}, { sensor: "sensor.humidity_158d0001ad", icon: "wi wi-humidity", suffix: "%"}, ] }, { deviceLabel: "Освещенность", deviceReadings: [ { sensor: "sensor.illumination_7811dc64", suffix: "LUX"}, ] }, { deviceLabel: "Люстра", deviceReadings: [ { sensor: "light.living_room1"}, ] }, ] } },
Выведем наши показания с Google Calendar на умное зеркало.
Будем использовать стандартный модуль Calendar который по умолчанию уже есть в нашем умном зеркале. Вставляем следующий код в наш config.js
{ module: "calendar", position: "top_left",// This can be any of the regions. Best results in left or right regions. fetchInterval: "1000", config: { colored: false, coloredSymbolOnly: false, calendars: [ { url: 'https://calendar.google.com/calendar/......./basic.ics', symbol: 'calendar', }, ], } },
В грaфу url нам нужно вставить ваш адрес вашего календаря. Поиском этого адреса мы и займемся.
1. Заходим на Google Calendar
2. Находим сбоку блок Мои календари
Выбираем наш календарь и нажимает три точки
Выбираем настроить общий доступ
Видим такое окно и переходим в раздел интеграция календаря
Нам нужен адрес который Закрытый адрес в формате iCal
Копируем и вставляем в наше поле Url. На этом настройка модуля закончена.
Сейчас покажу как все заносить через мобильный телефон
Скачиваем приложение из AppStore и нажимаем открыть
Наживаем в нижнем углу красный и выбираем создать мероприятие и заполняем все нам нужные поля
Нажимаем Сохранить и ждем от 1 до 3 минут пока данные синхронизируются с зеркалом.
Проверим что у нас выводиться на зеркало уже сейчас.
Ну и как это выглядит на самом зеркале в живую.
Ну еще очень много вопросов было по поводу пленки какую я использовал, это пленка зеркальная с 10% светопропускаимости.
На этом теперь точно все, спасибо за внимание, наберем тут 100 лайков и сделаю продолжение данной статьи еще есть интересные идеи для чего можно использовать умное зеркало. Всем удачи!
Ждём продолжения, внёс свой лайк ;)
А ведь данный способ можно применить для отображения инфы на ТВ, надо будет попробовать, спасибо за статью!
Было бы классно, чтобы утром пока утренние процедуры выполняешь, чтобы телик включался на какие-нибудь новости или запускал фотоальбом и включал приятную музыку, а поверх отображалась инфа о погоде, данных об УД, календарь...может ещё что.
Можно ли в твоём проекте сделать так, чтобы музыка с Apple Music запускалась или радиостанция с того же Apple Music?
Забыл как синхронизировать календарь в iOS с Гугл-календарём, надо будет вспомнить, чтобы не плодить кучу программ с календарями
ошибка, должно быть
sudo apt-get update && sudo apt-get upgrade