Умное зеркало Magic Mirror своими руками
Содержание
В сети довольно много вариантов, и я решил построить один из них, но не мог найти действительно хорошей инструкции о том, как это сделать, поскольку многие из инструкций подразумевали наличие хороших знаний в области программирования, а следовательно недоступны начинающим. В этой статье я собираюсь продемонстрировать и объяснить все максимально простым языком.
Материалы, которые вам понадобятся
- Raspberry Pi (я использовал версию A+ для моего зеркало, чтобы быть уверенным, что все будет работать);
- SD-карта с linux (я использовал операционную систему raspbian jessie);
- LCD-дисплей с входом HDMI (я использовал старый монитор с адаптером HDMI-VGA);
- Wi-Fi адаптер.
Установка и настройка
Перед установкой всех компонентов нужно запустить:
sudo apt-get install php5 midori unclutter
это все необходимые материалы, основанные на репозитории, которые нам потребуются.
Я пропущу момент записи операционной системы Raspbian на SD-карту, просто пойдите в Google и поищите там, это элементарно. После того, как вы запустите pi с системой jessie, загрузится графический интерфейс. Нажмите меню и зайдите в настройку конфигурации Raspbian в разделе настроек. Установите файловую систему и параметры локализации для корректного отображения времени. Настройки загрузки менять не обязательно, так как мы хотим, чтобы графический интерфейс загружался автоматически.
Перезагрузитесь, чтобы сохранить настройки и проверьте, что вы подключаетесь к вашей беспроводной Wi-Fi сети. Далее Raspbian будет автоматически подключаться каждый раз при включении, поэтому вам нужно будет сделать это только один раз.
Чтобы заставить пользовательский интерфейс работать, вам нужно установить несколько вещей. Откройте терминал и запустите обновление, чтобы получить последние обновления в вашей системе:
sudo apt-get update sudo apt-get upgrade
Мы собираемся установить веб-сервер и php. Если вы просто установите php5, тогда он также установит apache2 и все, что нужно для его запуска.
sudo apt-get install php5
Теперь нам нужно получить интерфейс волшебного зеркала, который является веб-сайтом на php. Создатель поддерживает репозиторий git, в котором собрано все необходимое. Перейдите в каталог apache и клонируйте git repo (на самом деле это не так страшно).
cd /var/www/html sudo git clone https://github.com/MichMich/MagicMirror
Git создал папку MagicMirror и скопировал все файлы из репозитория в нее. Я не изменял никаких прав, поэтому любые изменения, которые вы вносите, должны будут использовать sudo или Вам нужно будет изменить разрешения для папок и файлов.
С этого момента ваше волшебное зеркало уже работает! Но еще не на русском языке, и оно не появляется, когда вы включаете Raspbian. Также вы можете использовать браузер на любом компьютере в своей сети, чтобы посмотреть как сейчас выглядит Ваше «умное зеркало». Для этого нужно узнать ip адрес вашей Raspbian с помощью команды ifconfig и запустить в браузере: http: // <Raspbian IP> / MagicMirror /.
Настройки config.js
sudo nano /var/www/html/MagicMirror/config.js
Затем мы должны изменить остальные настройки config.js.
Здесь вам нужно будет немного поработать, вам нужно найти и изменить 3 вещи:
- язык (например, русский — ru);
- ключ API для показа карты погоды;
- RSS-канал (если вы хотите, чтобы зеркало показывало новости);
- ваша личная календарная ссылка из gcal или другого приложения для веб-календаря.
Приложение календарь может читать любой календарь iCal, который используется в Интернете. Если вы используете календарь Google, вы можете получить ссылку на него, нажав на маленькую стрелку внизу справа от имени вашего календаря и выбрав «Настройки календаря». Скопируйте ссылку на свой календарь и с помощью nano отредактируйте js-файл. Если вы используете ссылку общего календаря, он просто покажет «Занят» для каждого события, но это не совсем то что нужно.
Погода api бесплатна. зайдите на страницу регистрации API и зарегистрируйтесь! После этого вы можете получить свой ключ API.
cd /var/www/html/MagicMirror/js
Я использую полный путь, что бы вы не потерялись.
Вот что вам нужно будет изменить, я просто изолирую строки. Это не большой файл, поэтому их будет не сложно найти.
var lang = 'nl';
к var lang = ‘ru’;
'APPID':'YOUR_FREE_OPENWEATHER_API_KEY'
Замените YOUR_FREE_OPENWEATHER_API_KEY на карту открытой погоды api key
'q':'Baarn,Netherlands',
в
'q':'<city>,<state>',
изменение
var feed = 'http://feeds.nos.nl/nosjournaal?format=rss';
в
var feed = '<rss feed of your choice>';
Например, я подключил новости Ars Technica
Если вы редактируете комплименты, просто смотрите синтаксис. Если вы добавите комплимент, убедитесь, что нет запятой только в последнем в разделе.
var afternoon = [ 'Привет, красавица!', <--ends with comma 'Хорошо выглядишь!', <--ends with comma 'Ты сегодня супер!' <--last item, no comma!! ];
Если Вам не хваатет комплементов от живых людей, или нужно убрать из жизни весь негатив, Вам 100% поможет это зеркало. Проверьте, чтобы код не содержал никаких «»», в противном случае — функция перестанет работать.
Используйте комбинацию CTRL+O для сохранения и CTRL+X, чтобы выйти из nano и протестировать в браузере. С любого компьютера в сети вы можете перейти по адресу http: // <IP of pi> /MagicMirror/index.php и увидеть своими глазами, как все работает, или на самом pi открыть браузер и перейти к http: // localhost / MagicMirror / index.php
Загрузка в полноэкранный браузер
Теперь мы можем изменить поведение загрузки pi так, чтобы он загрузился и не заснул. Я рекомендую установить кнопку питания на вашем зеркале, чтобы он не тратил электричество весь день. Или еще лучше, прикрепить датчик движения.
Файл, который нам нужно отредактировать для этого, — это файл автозапуска диспетчера дисплея. Raspbian использует LXDE для своего графического интерфейса, но я собираюсь использовать midori для веб-браузера. Мидори довольно быстра, поэтому я использую ее вместо установки хрома или firefox, или какой-то другой глупости. Вы можете использовать любой браузер, который хотите, но вам нужно будет узнать, как самому сделать его в полноэкранном режиме. Что касается midori:
sudo apt-get install midori
Затем мы редактируем файл автозапуска для пользователя. В большинстве других инструкций вы редактируете файл в каталоге / etc, но это не сработает, потому что raspbian регистрируется пользователем. Когда он регистрирует пользователя в config в / etc, он переопределяется конфигурацией в домашнем каталоге (очень подло 🙂 ). Файл находится здесь: /home/pi/.config/lxsession/LXDE-pi/autostart
Итак, идем
nano /home/pi/.config/lxsession/LXDE-pi/autostart
Закомментируйте (поставьте в начале # ) строки, которые уже находятся в файле, и добавьте эти 4 строки.
@xset s off @xset -dpms @xset s noblank @midori -e Fullscreen -a http://localhost/MagicMirror/index.php
Они нужны, чтобы отключит скринсейвер и запустит волшебное зеркало при загрузке и пропустит загрузку графического интерфейса LXDE.
Определение движения
Это простой и недорогой компонент, который отвечает за включение и выключение монитора.
Обнаружение движения
Настроим датчик движения для выключения монитора после того, как движение не было обнаружено в течение 60 секунд.
Сохраните этот файл как pir.py
Включение и выключение монитора
Существует 2 способа включения и выключения монитора. Используйте команду tvservice для выключения порта монитора.
Этот метод фактически отключает порт, который отлично работает, за исключением случаев, когда вы подключены к монитору HDMI и отключается, когда порт выключен. Когда вы идете в комнату, порт снова включается, но монитор выключен, поэтому он не возвращается обратно. В этом случае просто переключите виртуальные терминалы, чтобы отключить экран, используя команду chvt .
Этот проклятый курсор…
Чтобы убрать курсор, установите unclutter
sudo apt-get install unclutter
Поворот дисплея
Мне не нужно было это делать, но вы можете использовать монитор или телевизор с другим соотношением сторон, не 3: 4, и хотите, чтобы он был высоким. Эти инструкции предназначены для raspbian, поэтому они могут немного отличаться от других особенностей linux. Нам нужно отредактировать файл config.txt, который использует raspbian во время загрузки, а параметр отсутствует в файле, поэтому нам нужно его добавить.
sudo nano /boot/config.txt
В нижней части файла добавьте:
DISPLAY_ROTATE=X
X — это то, как вы хотите повернуть его, используйте этот список, чтобы получить номер:
- 0 = нет вращения;
- 1 = поворот на 90 градусов по часовой стрелке;
- 2 = вращение на 180 градусов по часовой стрелке;
- 3 = вращение на 270 градусов по часовой стрелке.
Финал
Теперь пойдите, постройте свое волшебное зеркало.