Оглавление:

Волшебное зеркало с новостями, погодой, будильником, таймером и Todolist: 9 шагов
Волшебное зеркало с новостями, погодой, будильником, таймером и Todolist: 9 шагов

Видео: Волшебное зеркало с новостями, погодой, будильником, таймером и Todolist: 9 шагов

Видео: Волшебное зеркало с новостями, погодой, будильником, таймером и Todolist: 9 шагов
Видео: Увлекательный исторический роман о Королевской свадьбе и не только. 2024, Ноябрь
Anonim
Волшебное зеркало с новостями, погодой, будильником, таймером и Todolist
Волшебное зеркало с новостями, погодой, будильником, таймером и Todolist
Волшебное зеркало с новостями, погодой, будильником, таймером и Todolist
Волшебное зеркало с новостями, погодой, будильником, таймером и Todolist

Magic Mirror - это специальное одностороннее зеркало с дисплеем за ним. На дисплее, подключенном к Raspberry Pi, отображается такая информация, как погода, температура в помещении, время, дата, список задач и многое другое. Вы даже можете добавить микрофон и настроить умного помощника. Возможности безграничны.

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

Сделанное мною зеркало имеет следующие особенности:

  • Новости из выбранной пользователем RSS-ленты
  • Погода
  • Внутренняя температура
  • Система сигнализации
  • Система таймера
  • Todolist
  • Несколько пользователей: цвет светодиодной полосы и новый источник меняются в зависимости от того, какой пользователь выбран.

Запасы

Чтобы построить это Волшебное зеркало, вам понадобятся:

  • Одностороннее зеркало
  • Древесина
  • Raspberry Pi
  • Карта Micro SD (8+ ГБ)
  • Макет
  • Два динамика мощностью 20 Вт
  • MAX9744 20 Вт усилитель для питания динамиков
  • 1 м 30-светодиодная светодиодная лента WS2801
  • DS18B20 1-проводной датчик температуры
  • HC-SR501 Инфракрасный датчик
  • Поворотный энкодер
  • Монитор или старый дисплей ноутбука

    Если вы используете старый дисплей ноутбука, вам нужно купить адаптер дисплея ноутбука. Вы можете получить их на AliExpress, Ebay или Amazon. Просто найдите серийный номер вашего дисплея

Вам также понадобятся следующие небольшие компоненты:

  • Диод
  • Резистор 4,7 кОм
  • Резистор 470 Ом
  • Провода для подключения датчиков к Raspberry Pi

И эти блоки питания:

  • 5V 2A для питания светодиодной ленты
  • 12В 2А для питания дисплея
  • 12В 2А для питания усилителя
  • 5.1V 3A для питания Raspberry Pi (используйте официальный блок питания RPi)

Шаг 1: установка Raspbian

Дисплей и все компоненты за зеркалом питаются от Raspberry Pi. Вам нужно будет установить Raspbian, операционную систему Pi по умолчанию, на SD-карту.

  1. Загрузите Win32 Disk imager. Пользователи Linux и MacOS могут использовать что-то вроде Etcher.
  2. Загрузите последний образ Raspbian с веб-сайта Raspberry Pi. Выберите вариант «Raspbian Buster с рабочим столом».
  3. Откройте Win32 Disk Imager и запишите файл образа на SD-карту.

SD-карта почти готова. Нам просто нужно убедиться, что мы можем подключиться к Raspberry Pi удаленно:

  1. Перейдите в «загрузочный» раздел SD-карты с помощью файлового проводника вашей системы.
  2. Добавьте файл с именем ssh без расширения.
  3. Добавьте ip = 169.254.10.1 (без кавычек) в конец первой строки cmdline.txt.

Безопасно извлеките SD-карту из компьютера, вставьте ее в Raspberry Pi и загрузите.

Шаг 2: настройка Wi-Fi

Для сканирования сетей Wi-Fi выполните следующую команду:

sudo iw dev сканирование wlan0 | grep SSID

Вы увидите список всех SSID, к которым может подключиться ваш Raspberry Pi.

Создайте сетевую запись с зашифрованным паролем, выполнив следующую команду и введя пароль своей сети:

wpa_passphrase "ВАША_СЕТЬ_SSID_HERE"

Теперь вставьте вывод вышеуказанной команды в этот файл:

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Теперь перезагрузите Raspberry Pi. Вы будете подключены к Интернету.

Шаг 3. Установка и настройка программного обеспечения

Для этого проекта вам необходимо загрузить эти пакеты на свой Raspberry Pi:

pip3 установить mysql-connector-python flask-socketio flask-cors gevent gevent-websocket adafruit-circuitpython-ws2801 adafruit-circuitpython-max9744

sudo apt установить apache2 mariadb-server

Добавьте эту строку в конец /boot/config.txt, чтобы включить звук через контакты GPIO 12 (слева) и 13 (справа):

dtoverlay = audremap

Используйте raspi-config, чтобы установить разрешение вашего дисплея и включить i2c, One-wire и SPI. Также установите для метода загрузки значение «Автологин рабочего стола».

В / etc / xdg / lxsession / LXDE-pi / autostart добавьте следующее:

@xset s off @ xset -dpms @ xset s noblank @ chromium-browser --kiosk 127.0.0.1/mirror.html # загрузить хром после загрузки и открыть веб-сайт в полноэкранном режиме

Это открывает браузер на нужной странице при загрузке LXDE (окружение рабочего стола Raspbian). Также удалите или закомментируйте строку @xscreensaver, чтобы отключить заставку.

Репозиторий Github

Клонируйте мой репозиторий GitHub и поместите содержимое папки Frontend в / var / www / html. Папка Backend нам понадобится позже.

Шаг 4: База данных

База данных
База данных

Это схема базы данных, оптимизированная для 3NF. В нем хранятся все сигналы тревоги, источники новостей, пользователи, данные датчиков, звуки и список задач.

  1. Используйте MySQL Workbench для доступа к серверу базы данных вашего пи (mariadb)
  2. Создайте базу данных, используя эту схему, и вставьте свои собственные данные.
  3. Отредактируйте config.py в папке Backend моего репозитория GitHub: измените имя базы данных, выбранное вами имя пользователя и пароль.
  4. Отредактируйте app.py и измените URL-адрес API OpenWeatherMap на свой собственный. (Создайте здесь свой собственный)

Шаг 5: Создание зеркальной рамы

Создание зеркальной рамы
Создание зеркальной рамы
Создание зеркальной рамы
Создание зеркальной рамы
Создание зеркальной рамы
Создание зеркальной рамы

Я построил раму вокруг зеркала, используя соединения Miter с металлическими уголками. Я использовал деревянные доски толщиной 18 мм и шириной 10 см. На изображениях вы можете увидеть точные размеры зеркала 45 x 60 см. За зеркалом находится вся электроника, поэтому убедитесь, что ваши доски достаточно широки, чтобы на них поместиться.

Я использовал металлические крючки, чтобы прикрепить динамики к раме. Таким образом, они не упираются в зеркало, что снижает вибрационную нагрузку на стекло.

Шаг 6: Электроника

Электроника
Электроника
Электроника
Электроника

Следуйте приведенным выше схемам, чтобы построить схему. Я использовал скотч, чтобы прикрепить электронику к зеркалу.

Шаг 7: Установка электроники в раму

Установка электроники в раму
Установка электроники в раму
Установка электроники в раму
Установка электроники в раму

Прикрепив динамики к металлическим крючкам вверху, прикрепите остальную электронику к зеркалу. Я также поместил тонкую деревянную планку между зеркалом и электроникой, поэтому вместо того, чтобы приклеивать электронику к зеркалу, я приклеил ее к деревянной доске. Дисплей ноутбука представляет собой белую панель в нижней части зеркала.

Как вы можете видеть на изображениях, я подключил все адаптеры питания к розетке с несколькими розетками, поэтому из рамы выходит только один кабель. Вот почему мне потребовались достаточно широкие доски (10 см).

Я просверлил отверстие шириной 2 см в правой части зеркала, чтобы через него прошел датчик угла поворота. Это позволяет легко изменять громкость (включать) или отключать таймеры и будильники (нажимать).

Я просверлил два 8-миллиметровых отверстия с каждой стороны зеркала, чтобы проложить кабели для светодиодных лент.

Шаг 8: завершающие штрихи

Последние штрихи
Последние штрихи
Последние штрихи
Последние штрихи
Последние штрихи
Последние штрихи

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

Скопируйте папку Backend из моего репозитория Github в место, которое вы запомните.

Добавьте модуль systemd, чтобы скрипт python запускался при загрузке:

sudo nano /etc/systemd/system/magicmirror.service

[Ед. изм]

Описание = Служба для скрипта python magicmirror After = network.target [Служба] ExecStart = / usr / bin / python3 -u app.py WorkingDirectory = / home / pi / magicMirror / Backend StandardOutput = наследовать StandardError = наследовать Restart = всегда Пользователь = pi [Установить] WantedBy = multi-user.target

Измените «WorkingDirectory» на Backend-каталог и измените User на свое собственное имя пользователя.

Шаг 9: взаимодействие с веб-приложением

Взаимодействие с веб-приложением
Взаимодействие с веб-приложением
Взаимодействие с веб-приложением
Взаимодействие с веб-приложением
Взаимодействие с веб-приложением
Взаимодействие с веб-приложением
Взаимодействие с веб-приложением
Взаимодействие с веб-приложением

Перейдите к IP-адресу (который отображается на дисплее). Вы увидите веб-сайт, ориентированный прежде всего на мобильные устройства, со следующими функциями:

  • Интерактивный график температуры
  • Время. Когда таймер работает, вы также увидите обратный отсчет на самом зеркале.
  • Система сигнализации
  • Вкладка настроек, где вы можете редактировать пользователей, источники новостей и громкость динамика.
  • Тодолист. Предметы Todo будут отображаться на зеркале

Mirror.html - это страница, которая отображается в Magic Mirror. Я добавил пример на изображения выше.

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