Статья

Умное зеркало своими руками - расширяем функционала зеркала

Привет дорогие друзья! Проект с умным зеркалом набрал очень много просмотров, что побудило меня написать еще одну статью на эту тему.

Что мы будем добавлять в наше умное зеркало? Добавлять будем следующие модули и расширение функционала:

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 лайков и сделаю продолжение данной статьи еще есть интересные идеи для чего можно использовать умное зеркало. Всем удачи!

3

Ждём продолжения, внёс свой лайк ;)

А ведь данный способ можно применить для отображения инфы на ТВ, надо будет попробовать, спасибо за статью!

Было бы классно, чтобы утром пока утренние процедуры выполняешь, чтобы телик включался на какие-нибудь новости или запускал фотоальбом и включал приятную музыку, а поверх отображалась инфа о погоде, данных об УД, календарь...может ещё что.

Можно ли в твоём проекте сделать так, чтобы музыка с Apple Music запускалась или радиостанция с того же Apple Music?

Забыл как синхронизировать календарь в iOS с Гугл-календарём, надо будет вспомнить, чтобы не плодить кучу программ с календарями

ошибка, должно быть 




sudo apt-get update && sudo apt-get upgrade


Вернуться назад

Устройства


Raspberry Pi

Raspberry Pi 4

(16 отзывов)

Вернуться назад