Оглавление:

Многопользовательское интеллектуальное зеркало с Google Календарем: 10 шагов
Многопользовательское интеллектуальное зеркало с Google Календарем: 10 шагов

Видео: Многопользовательское интеллектуальное зеркало с Google Календарем: 10 шагов

Видео: Многопользовательское интеллектуальное зеркало с Google Календарем: 10 шагов
Видео: СРОЧНО Отключи Эти НАСТРОЙКИ на своем АНДРОИДЕ! Об ЭТОМ МОЛЧАТ Разработчики Google 2024, Ноябрь
Anonim
Многопользовательское умное зеркало с Google Календарем
Многопользовательское умное зеркало с Google Календарем
Многопользовательское умное зеркало с Google Календарем
Многопользовательское умное зеркало с Google Календарем

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

Запасы

До

мы начнем. Это те вещи, которые вам обязательно понадобятся, чтобы построить Зеркало, подобное моему. Эти расходные материалы будут стоить от 250 до 350 евро в зависимости от вашего региона и текущих цен.

Аппаратное обеспечение

Датчики

  • Датчик температуры с одним проводом
  • RWCL 0516 (СВЧ датчик движения)
  • Мягкий потенциометр (Touchstrip от Sparkfun)

Вычисление

и IC

  • Динамик (3,2 Вт при 4 Ом ИЛИ 1,8 Вт при 8 Ом)
  • MCP3008
  • Adafruit I2S 3 Вт, усилитель класса D - MAX98357A
  • Малина Pi 3 B +
  • SD-карта (8 ГБ в порядке)
  • Резистор 4,7 кОм

Различный

  • Перемычки
  • Макетная плата
  • Акриловое двустороннее зеркало (светопропускание 15%)
  • IPS-монитор (размер зависит от того, какого размера вы хотите)
  • Кабель HDMI
  • Древесина

Программное обеспечение

  • PuTTY
  • Редактор кода (достаточно Notepad ++)
  • Win32 Disk Imager
  • Образ ОС Raspbian

Шаг 1. Настройка

Для начала нам нужно настроить ваш Pi для кода, который я сделал.

Вам понадобятся две вещи:

  • Win32 Disk Imager с
  • Образ ОС Raspbian с

Загрузите ZIP-файл и извлеките его куда хотите.

Установка

  1. Выберите изображение с помощью значка папки
  2. Выберите свою SD-карту в раскрывающемся списке.
  3. Нажмите на запись

Теперь нам нужно немного поработать с некоторыми настройками, чтобы мы могли получить доступ к Pi.

  1. Перейдите в загрузочный каталог SD-карты.
  2. Откройте файл "cmdline.txt"
  3. Добавьте ip = 169.254.10.1 в конце длинной строки текста, разделенной пробелом (в той же строке).
  4. Сохраните файл.
  5. Создайте файл с именем ssh без расширения в том же каталоге.

Теперь вы можете извлечь SD-карту и вставить ее в свой Pi.

Подключение

Теперь нам нужно будет настроить программное обеспечение.

Сначала подключите кабель LAN, один конец к настольному компьютеру / ноутбуку, а другой к Pi.

Теперь загрузите Raspberry Pi.

  1. Установите Putty с
  2. Введите 169.254.10.1 в поле IP.
  3. Убедитесь, что выбран SSH и заполнен порт 22.
  4. Нажмите открыть
  5. Введите имя пользователя: pi
  6. Введите пароль: малина

Распи-конфиг

Откройте утилиту Raspi-config, используя:

sudo raspi-config

Включите следующие параметры в категории интерфейсов

  • 1-проводной
  • SPI

Выберите страну своего Wi-Fi в категории локализации.

Затем отключите следующие параметры в категории параметров загрузки

Заставка

Наконец, установите параметр Desktop / CLI в категории параметров загрузки на Desktop Autologin.

Вай фай

Для зеркала нам необходимо подключение к Wi-Fi, поэтому убедитесь, что ваши учетные данные Wi-Fi закрыты.

Войдите в корневой режим

судо -i

Вставьте эту строку, но убедитесь, что указаны SSID и пароль.

wpa_passphrase "SSID" "ПАРОЛЬ" >> /etc/wpa_supplicant/wpa_supplicant.conf

Войдите в клиент WPA.

wpa_cli

Выберите интерфейс

интерфейс wlan0

Перезагрузите конфиг

переконфигурировать

Убедитесь, что вы правильно подключены, набрав…

ip a

… И посмотреть, есть ли у вас IP на интерфейсах WLAN0.

Пакеты

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

Сначала нам нужно обновить списки пакетов до последней версии.

sudo apt update

Python

Мы заставим Raspbian использовать Python 3

альтернативы обновления --install / usr / bin / python python /usr/bin/python2.7 1

альтернативы обновления --install / usr / bin / python python / usr / bin / python3 2

MariaDB

Вставьте следующую строку, чтобы установить базу данных.

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

Тогда нам нужно будет защитить нашу установку.

mysql_secure_installation

Он запросит у нас текущий пароль root, так как у нас его нет, просто нажмите Enter.

Затем он спрашивает, хотим ли мы ввести пароль root в y, поскольку он нам нужен.

Для следующих вопросов просто введите Y.

Наконец, мы создадим пользователя, которого сможем использовать для зеркала.

Войдите в оболочку mysql, выполнив:

Возвыситься до корней

судо -i

Войдите в оболочку mysql

MySQL

Замените на свое собственное имя пользователя и то же самое на

предоставить все привилегии на mirror. * '' @ '%', идентифицированному '';

Теперь очищаем таблицу разрешений.

ПРИВИЛЕГИИ ПРОМЫВКИ;

Веб-сервер Apache

Чтобы установить веб-сервер, выполните следующую строку.

sudo apt install apache2 -y

Пакеты Python

Мы собираемся установить эти пакеты

  • Колба
  • Фляга-Корс
  • Flask-MySQL
  • Flask-SocketIO
  • PyMySQL
  • Фляга-талисман
  • Gevent
  • Gevent-websocket
  • Google-api-python-клиент
  • Google-auth
  • Google-auth-httplib2
  • Google-auth-oauthlib
  • Httplib2
  • Icalendar
  • Icalevents
  • Oauthlib
  • Python-socketio
  • Запросы
  • Wsaccel
  • Ujson

При выполнении

pip install Flask Flask-Cors Flask-MySQL Flask-SocketIO PyMySQL Flask-Talisman gevent gevent-websocket google-api-python-client google-auth google-auth-httplib2 google-auth-oauthlib httplib2 icalendar icalevents oauthlib python-sockceletio запросы

Настройка динамика

curl -sS https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/i2samp.sh | трепать

Теперь нам нужно перезагрузиться, поэтому нажмите y.

Перезапустить сценарий

curl -sS https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/i2samp.sh | трепать

Теперь нам нужно перезагрузить второй раз

перезагрузка sudo

Экран (монитор)

В зависимости от того, как вы хотите изменить ориентацию экрана, вы можете повернуть экран.

Для поворота экрана нам нужно получить доступ к параметрам загрузки, выполнив:

судо нано /boot/config.txt

А затем вставьте одну из этих строк в файл конфигурации:

display_rotate = 0

display_rotate = 1

display_rotate = 2

display_rotate = 3

Первый, 0, это нормальная конфигурация. 1 будет 90 градусов, 2 - 180 градусов и последний будет 270 градусов.

Затем перезагрузитесь.

перезагрузка sudo

Шаг 2: установка зеркала

Установка зеркала
Установка зеркала

Теперь мы настроим место для загрузки моего кода.

cd / home / pi /

git clone https://github.com/nielsdewulf/Mirror MirrorProject cd MirrorProject

Теперь мы скопируем несколько папок в правильное место назначения.

sudo cp -R интерфейс / зеркало / / var / www / html / mirror /

sudo cp -R интерфейс / панель управления / / var / www / html / Sudo cp -R backend / / home / pi / Mirror /

Установка базы данных - необходимый шаг в создании проекта.

sudo mysql -u root -p << CREATEDATABASE.sql

Шаг 3: Конфигурация

Файл конфигурации находится по адресу:

sudo nano /home/pi/Mirror/resources/config.ini

Введите пользователя и пароль MYSQL.

Это должен быть только что созданный пользователь mysql.

Остальные настройки мы рассмотрим позже в этой инструкции.

Шаг 4: API

Теперь, когда мы завершили установку Pi, мы рассмотрим некоторые темы, которые вы, возможно, захотите сделать.

Темное небо

Создайте ключ API Дарского через

После регистрации вы увидите свой ключ API на панели инструментов.

Введите этот ключ в файл конфигурации зеркального проекта, который вы установили ранее.

Календарь

По умолчанию для просмотра календаря вы сможете использовать только IP-адреса. Но эта часть будет о том, как связать ваше зеркало с экосистемой Google. Как правило, это более длительный и болезненный процесс.

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

Доменное имя

Это то, что мы настроим в этой части

  • Учетная запись CloudFlare
  • Аккаунт разработчика Google
  • Google Developer Project
  • Настройте Calendar API

Шаг 5: Календарь

Календарь
Календарь
Календарь
Календарь

Cloudflare

Настройте учетную запись Cloudflare на https://cloudflare.com и следуйте инструкциям мастера, чтобы перенести свое доменное имя в Cloudflare DNS.

Не нужно самостоятельно создавать A-запись, указывающую на Raspberry Pi. Код My Mirror сделает это за вас. Поскольку в большинстве домашних Wi-Fi IP-адреса не статичны, после перезагрузки он может больше не работать. Чтобы мой код автоматически обновлял IP-адрес, потребуется ключ API вашей учетной записи.

  1. Нажмите кнопку Получить ключ API на панели инструментов справа. [Фото 1]
  2. Прокрутите вниз и просмотрите свой глобальный ключ API. [Фото 2]

Введите этот ключ в файл конфигурации зеркального проекта, который вы установили ранее.

Создание сертификата SSL

Google требует, чтобы у нас было SSL-соединение. Чтобы начать этот раздел, убедитесь, что вы правильно настроили Cloudflare DNS.

Сначала добавьте репозиторий.

sudo add-apt-репозиторий ppa: certbot / certbot

Обновите список пакетов.

sudo apt-get update

Установить CertBot

sudo apt установить python-certbot-apache

Запустите создание сертификата. Опять же, вам нужно будет ввести правильное доменное имя.

sudo certbot --apache -d example.com -d www.example.com

После создания он спросит вас, следует ли перенаправлять все соединения на SSL. Выберите перенаправление.

Теперь он сообщит вам, что успешно создал сертификат для вашего домена. Обязательно сохраните 2 пути, которые он вам дает.

  • /etc/letsencrypt/live/example.com/cert.pem
  • /etc/letsencrypt/live/example.com/privkey.pem

Теперь перейдите в папку с сертификатами через:

Обязательно измените example.com на правильный хост.

cd /etc/letsencrypt/live/example.com/

Теперь давайте скопируем это содержимое в папку нашего проекта.

cp cert.pem /home/pi/Mirror/resources/certs/cert.pem

А также

cp privkey.pem /home/pi/Mirror/resources/certs/privkey.pem

Подключите Apache к своему домену

Чтобы правильно настроить Apache для вашего домена, нам необходимо создать файл конфигурации. Не забудьте указать свое доменное имя, например funergydev.com.

sudo nano /etc/apache2/sites-enabled/example.com.conf

Затем вставьте это в файл. Замените example.com своим доменным именем.

Убедитесь, что ваш сертификат и закрытый ключ - это правильный путь. Установите для них путь, который вы сохранили ранее, когда мы создали, а затем с помощью certbot.

DocumentRoot "/ var / www / html /" SSLEngine на SSLCertificateFile /home/pi/Mirror/resources/certs/cert.pem SSLCertificateKeyFile /home/pi/Mirror/resources/certs/privkey.pem # Другие директивы здесь Параметры Индексы FollowSymLinks AllowOverride Все Требовать все предоставлено

Теперь нам нужно включить некоторые изменения, а затем заставить Apache перезагрузить конфигурацию, выполнив:

sudo a2enmod ssl

sudo a2enmod переписать

sudo systemctl перезагрузить apache2

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

Шаг 6: Google API

Google API
Google API
Google API
Google API
Google API
Google API

Перейдите в консоль разработчика через

Часть 1

Создайте свой первый проект, щелкнув рядом с логотипом Google API и нажав кнопку НОВЫЙ ПРОЕКТ. Введите соответствующее имя проекта и нажмите кнопку «Создать». [Photo1]

Часть 2

Теперь вы попадете на эту страницу. Щелкните кнопку библиотеки. [Photo2]

Это большой список всех API, которые вы можете использовать, но мы будем искать API Календаря Google. Щелкните по нему и нажмите РАЗРЕШИТЬ. [Photo3]

Затем вы получите обзор API Календаря. Щелкните логотип API Google, чтобы вернуться к своему проекту. [Photo4]

Часть 3

Чтобы все правильно настроить, нажмите на категорию учетных данных и выберите вкладку «Проверка домена».

Здесь вам нужно будет подтвердить свое доменное имя.

  1. Нажмите ДОБАВИТЬ ДОМЕН.
  2. Заполните свой домен
  3. Затем он попросит подтвердить ваш домен. Нажмите "Продолжить".
  4. Выберите провайдера доменного имени. [Photo5]
  5. Следите за процессом
  6. Теперь вы сможете добавить его в список подтверждения домена в консоли Google API следующим образом. Убедитесь, что ваш домен проверен. [Фото6]

Часть 4

Теперь выберите вкладку экрана согласия OAuth. [Photo7]

Введите имя приложения

Далее мы добавим области на экран согласия. Это означает, что мы будем спрашивать пользователя на экране согласия, хотят ли они поделиться информацией о своем календаре с зеркалом.

  1. Нажмите «Добавить область» и найдите календарь.
  2. Отметьте../auth/calendar.readonly и нажмите добавить. [Photo8]

Заполните авторизованный домен. Это должен быть домен, который вы только что подтвердили. [Photo9]

Теперь нажмите большую кнопку сохранения под формой.

Часть 5

Наконец, нам нужно создать учетные данные. Поскольку мы нажали кнопку сохранения, мы были перенаправлены на вкладку учетных данных. Нажмите «Создать учетные данные» и выберите «Идентификатор клиента OAuth». [Photo10]

Выберите Тип приложения: Веб-приложение и дайте ему имя.

Введите следующую ссылку в URI авторизованного перенаправления и укажите правильный домен.

example.com:5000/api/v1/setup/calendar/response

Нажмите "Создать". Это покажет вам всплывающее окно, просто нажмите OK. Теперь нажмите кнопку загрузки на только что созданных учетных данных.

Часть 6

Теперь откройте файл JSON и скопируйте его содержимое.

sudo nano /home/pi/Mirror/resources/credentials/credentials.json

Вставьте их сюда.

Часть 7

Теперь нам нужно определить наш домен в конфигурации, выполнив:

sudo nano /home/pi/Mirror/resources/config.ini

Шаг 7: Дизайн зеркала

Зеркальный дизайн
Зеркальный дизайн
Зеркальный дизайн
Зеркальный дизайн
Зеркальный дизайн
Зеркальный дизайн
Зеркальный дизайн
Зеркальный дизайн

Дизайн вашего зеркала зависит от того, каким вы его хотите. Сделайте точные измерения на ЖК-дисплее и оставьте 2-сантиметровый зазор с одной стороны зеркала, так как там будет находиться микроволновый датчик движения. Не может быть за металлом.

Я соединил 4 доски вместе. Их отфрезеровали, чтобы перед зеркалом был чистый и чистый вид. Сверху я также просверлил пару отверстий, чтобы звук динамика проходил. На противоположной стороне зеркала, внизу, я вырезал небольшой прямоугольник, чтобы можно было легко провести электрическую проводку. [Photo1]

Это 2 куска дешевого дерева, на которые будет опираться монитор. Поскольку я сказал, что нам понадобится зазор в 2 сантиметра между зеркалом и корпусом. Я также добавил 3 маленьких куска дерева и прикрутил их к оставшимся частям. Так что монитор останется на месте. [Фото2]

В итоге это выглядело так. У меня был зазор около 3 мм между этими опорными частями и передней частью корпуса зеркала. Достаточно, чтобы я мог вставить двустороннее зеркало толщиной 3 мм. [Фото3]

Шаг 8: проводка

Делаем проводку
Делаем проводку
Делаем проводку
Делаем проводку
Делаем проводку
Делаем проводку

Обязательно следуйте одной из этих схем.

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

Шаг 9: запуск кода

Запуск кода
Запуск кода
Запуск кода
Запуск кода
Запуск кода
Запуск кода

LXSession

Давайте сначала создадим пару папок

mkdir -p /home/pi/.config/lxsession/LXDE-pi/

Теперь создадим файл, в котором укажем пару параметров / команд запуска.

sudo nano /home/pi/.config/lxsession/LXDE-pi/autostart

Вставьте в файл следующее.

@lxpanel --profile LXDE-pi

@pcmanfm --desktop --profile LXDE-pi @xscreensaver -no-splash @ point-rpi @sh /home/pi/Mirror/init_mirror.sh @xset s noblank @xset s off @xset -dpms

Мы обновим сценарий начального экрана зеркала, чтобы он соответствовал нашему хосту.

sudo nano /home/pi/Mirror/init_mirror.sh

Выберите localhost, если вы не используете календарь Google и домен.

#! / bin / bash

сон 15 Chrome-браузер --incognito --kiosk https:// localhost / mirror

Если вы его используете, укажите свой хост.

#! / bin / bash

сон 15 Chrome-браузер --incognito --kiosk

Услуга

Теперь мы настроим автоматический запуск кода зеркала.

Мы будем создавать сервис, который автоматически запускает код для нас.

Перейти к:

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

И вставьте это в файл

[Ед. изм]

Описание = Зеркало Backend После = network.target mariadb.service [Служба] Тип = простой Пользователь = root ExecStart = / bin / sh /home/pi/Mirror/init.sh [Установить] WantedBy = multi-user.target

Теперь нам нужно перезагрузить демон systemd, выполнив:

sudo systemctl демон-перезагрузка

И мы также включим автоматический запуск службы при загрузке.

sudo systemctl включить зеркало

Теперь выключим.

sudo poweroff

Окончательные настройки

Наконец, нам нужно удалить наш IP-адрес APIPA, чтобы он работал только по Wi-Fi.

  1. Перейдите в загрузочный каталог SD-карты на вашем ПК.
  2. Откройте файл "cmdline.txt"
  3. Удалите ip = 169.254.10.1 в конце длинной строки текста.

Шаг 10: запуск зеркала

Запуск зеркала
Запуск зеркала
Запуск зеркала
Запуск зеркала
Запуск зеркала
Запуск зеркала
Запуск зеркала
Запуск зеркала

Посетите IP-адрес на зеркальном экране или, если вы настроили календарь Google, введите имя домена.

Теперь вы сможете настроить свое зеркало!

Если вы получаете ошибку SSL на вашем зеркале, вы можете добавить свои сертификаты в хранилище сертификатов Chromium.

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