Полоумное зеркало (Smart Mirror)
Да, да, это очередное "умное" зеркало, в домашних условиях. Но иногда охота также поделиться с людьми, что можно сделать своими руками без особого труда используя один пост с "гайдом". Прошу не судить строго я не пропагандирую все делать в точности как у меня, и можно говорить, что все не правильно и "Широкую на широкую!!!", но у меня все работает и вроде без сбоев.
Общие положения (типа все по ГОСТу)
Для тех кто не знает - "Умное" зеркало, это полупрозрачное зеркало с установленым дисплеем на обратной стороне. Помимо отражения оно выводит информацию о времени, погоде, праздниках, фазе луны или курсе доллара. Я не нашел более менее нормального описания (русскоязычного), как можно просто взять все необходимое и собрать подобное зеркало без гуглежа дополнительной информации (хотя он все-равно будет), поэтому решил поделиться своим вариантом. Может кому пригодится. Так как я его делал первый раз, естественно были ошибки про которые нигде толком не пишут, поэтому я буду вводить коррективы в данную сборку.
Итак... Для сборки нам необходимы:
1 Брус (у меня 50х50х3000)
2 Стекло
3 Светоотражающая тонировка
4 Грунтовка
5 Шпатлевка по дереву
6 Малярный скотч (для покраски)
7 Жидкие гвозди
8 Дисплей
9 Скалер
10 Raspberry Pi
12 Блокипитания для скалера и малины, а также кабель HDMI
КОРПУС
Корпус хотелось сделать не обычным, не как большинство вариантов, которые были в сети (эти окна со створками). Хотелось тонкий корпус и обрамление, а также крепкую конструкцию, поэтому пришел к данному виду:
В дело пошел простой брус 50х50мм. из строительного магазина, по пути домой зашел в местный мебельный магазин, с цехом производства и напилил рамки.
После скрепил саморезами, загрунтовал и покрыл шпатлевкой по дереву. Несколько раз прошел шкуркой на 600 и 1000, снова грунт и покрыл матовой, акриловой краской. Эффект получился приятный, как будто заводской пластик.
ЗЕРКАЛО
Как уже понятно обычное зеркало нам не подойдет. По сути есть два основных типа зеркала: это зеркало «Гезелла», и светоотражающая тонировка (автомобильная или архитектурная) на стекле. У нас в России существует несколько заводов, где можно заказать зеркало «Гезелла», и 90% в Москве (vetra-steklo.ru, zerkala-stekla.ru) и СПб (mirrorglass.ru, steklaspb.ru), но если ты живешь в «мухосранске» как я), то оно становится золотым (за 900х400мм у меня выходит не меньше 6000р. с доставкой). Хотя в будущем понимаешь, что лучше переплатить.
Так как тратиться на такую "стекляшку" не хотелось выбор пал на тонировку. Опять же пришлось брать, что есть в магазинах. Выбрал самую дорогую тонировку в автомагазине, но она все равно не дает полноценного эффекта зеркала. Присутствует мелкая шагрень (причем видна только после наклеивания). На момент сборки не придал этому значения, но в конечном счете пожалел, что не попробовал другие варианты.
Само стекло купил у стеклореза, и наклеил пленку в домашних условиях. Размеры выбрал после изготовления корпуса зеркала.
Склеивал стекло с рамкой жидкими гвоздями по всему контуру (можно было точечно), и покрасил зазоры. Перед использованием гвоздей, лучше проверить состав на реакцию с пленкой.
RASPBERRY PI
Мозгом выбрал стандартную малину (Raspberry Pi 3 B), жирновато для зеркала, но я брал на будущее, для автоматизации дома. Брал отсюда.
Систему ставил Raspbian. Скачал на официальном сайте здесь. Флешку форматировал программой SD Card Formatter (если что, информация на флешке удалится). После установил ОС на флешку с помощью Win32DiskImager (выбираем карту и образ Raspbian, и жмем старт). Далее после полной установке, вставляем флешку в малину и подключаем сторонний монитор и клаву с мышкой. Включаем малину в сеть и ждем загрузку ОС. В качестве оболочки зеркала, я использовал Magic Mirror2 (спасибо Michael Teeuw) с сайта Github. Она довольно проста в использовании и постоянно модернизируется.
Для ее установки требуется зайти в терминал малины (Пуск> Терминал, либо Ctrl+Alt+T) и выполнить несколько команд:
1 Установить последнюю версию Node.js:
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt install -y nodejsgit clone https://github.com/MichMich/MagicMirror
2 Клонировать папку из репозитория MagicMirror
git clone https://github.com/MichMich/MagicMirror
3 Войти в папку MagicMirror
cd MagicMirror/
4 Установить приложение MagicMirror (установка долгая, минут 30)
npm install && npm start
либо server only
npm install && node serveronly
Далее начинается творческая деятельность. Копируем файл config.js.sample в папке config проэкта и вставляем сюда же с названием config.js. Открываем его текстовым редактором и начинаем выбирать модули (картинки которые будут высвечиваться зеркале). Для тех кто не знает JavaScript может показаться сложным, но все не так. Все модули начинаются и заканчиваются фигурными скобками после строки modules: [ (соблюдайте отступы)
например часы:
{
module: "clock",
position: "top_right"
},
У всех модулей можно менять расположение на экране строкой: position: "здесь может быть ваша реклама выбираете расположение модуля (top_left, top_right, bottom_left, bottom_right, center и пр.)". Так же у большинства модулей есть дополнительные параметры которые можно изучить на странице MagicMirror.
Со временем стандартные модули начинают надоедать и MagicMirror позволяет устанавливать сторонние модули, например отсюда. просто скачиваешь модуль в папку Modules и корректируешь файл config.js, в соответствии с инструкцией (к сожалению на английском).
После всех корректировок можно проверить как будет выглядеть ваше зеркало выполнив команду в терминале:
npm start
ДИСПЛЕЙ
В качестве монитора я использовал дисплей от старого ноута Asus и скалер с Aliexpress. Скалер подбирается по номеру дисплея (просто вводишь номер в поиск али) подключается очень просто, но шлейф матрицы желательно закрепить скотчем. Скалер без БП, так что пришлось поискать подходящий на 12В.
СБОРКА ВОЕДИНО
Для покрытия внутренней стороны зеркала хотел использовать ту же краску но площадь оказалась большой и уже были подозрения что надо будет менять пленку. Поэтому взял ткань блэкаут для портьер, вырезав окошко по размеру экрана. Крепил так же на гвозди.
Под крепление дисплея установил распорку из рейки и уголков. А сам дисплей закрепил деревянными брусками, и местами термоклеем. Скалер и малину закрепил так же на термоклей. Нашел в закромах HDMI кабель и соединил скалер и малину. Подключил питание к ним и запустил зеркало в первый раз. И так как экран повернут на 90 градусов необходимо внести изменения в конфиги малины, но это просто:
Вводим в терминале
sudo nano /boot/config.txt
и в конце вводим необходимую строку
display_rotate=0 Обычный режим
display_rotate=1 90 градусов
display_rotate=2 180 градусов
display_rotate=3 270 градусов
Минусы и что надо переделать:
1 И самое важное, это зеркало. Буду либо заказывать зеркало «Гезелла» либо искать пленку высокого качества.
2 Крепить зеркало буду точечно, для аккуратного размещения в рамке, и ровнять шпатлевкой.
3 Вместо ткани сразу наклею пленку блэкаут.
4 Хотел объединить кабели и вывести розетку наружу, но благо не стал. Буду монтировать все внутри, а на корпус выведу соединитель блока питания.
Остальное оптимизировать по мелочи:
- вкл/выкл малины через кнопку.
- датчик движения уже есть, но временно, так как едет камера вместо него.
- микрофон для голосового ассистента
- есть метеостанция на ардуино, хотел соединить по блютузу, но похоже перекину датчики на малину (кроме уличного)
Так как отпуск закончился, все буду доделывать в свободное время. Постараюсь выпускать продолжение.
PS. Прошу прощения за качество)