Оглавление:
- Запасы
- Шаг 1. Настройка
- Шаг 2: установка зеркала
- Шаг 3: Конфигурация
- Шаг 4: API
- Шаг 5: Календарь
- Шаг 6: Google API
- Шаг 7: Дизайн зеркала
- Шаг 8: проводка
- Шаг 9: запуск кода
- Шаг 10: запуск зеркала
Видео: Многопользовательское интеллектуальное зеркало с Google Календарем: 10 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:51
В этом руководстве мы создадим интеллектуальное зеркало, интегрированное с Календарем 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-файл и извлеките его куда хотите.
Установка
- Выберите изображение с помощью значка папки
- Выберите свою SD-карту в раскрывающемся списке.
- Нажмите на запись
Теперь нам нужно немного поработать с некоторыми настройками, чтобы мы могли получить доступ к Pi.
- Перейдите в загрузочный каталог SD-карты.
- Откройте файл "cmdline.txt"
- Добавьте ip = 169.254.10.1 в конце длинной строки текста, разделенной пробелом (в той же строке).
- Сохраните файл.
- Создайте файл с именем ssh без расширения в том же каталоге.
Теперь вы можете извлечь SD-карту и вставить ее в свой Pi.
Подключение
Теперь нам нужно будет настроить программное обеспечение.
Сначала подключите кабель LAN, один конец к настольному компьютеру / ноутбуку, а другой к Pi.
Теперь загрузите Raspberry Pi.
- Установите Putty с
- Введите 169.254.10.1 в поле IP.
- Убедитесь, что выбран SSH и заполнен порт 22.
- Нажмите открыть
- Введите имя пользователя: pi
- Введите пароль: малина
Распи-конфиг
Откройте утилиту 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 вашей учетной записи.
- Нажмите кнопку Получить ключ API на панели инструментов справа. [Фото 1]
- Прокрутите вниз и просмотрите свой глобальный ключ 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
Перейдите в консоль разработчика через
Часть 1
Создайте свой первый проект, щелкнув рядом с логотипом Google API и нажав кнопку НОВЫЙ ПРОЕКТ. Введите соответствующее имя проекта и нажмите кнопку «Создать». [Photo1]
Часть 2
Теперь вы попадете на эту страницу. Щелкните кнопку библиотеки. [Photo2]
Это большой список всех API, которые вы можете использовать, но мы будем искать API Календаря Google. Щелкните по нему и нажмите РАЗРЕШИТЬ. [Photo3]
Затем вы получите обзор API Календаря. Щелкните логотип API Google, чтобы вернуться к своему проекту. [Photo4]
Часть 3
Чтобы все правильно настроить, нажмите на категорию учетных данных и выберите вкладку «Проверка домена».
Здесь вам нужно будет подтвердить свое доменное имя.
- Нажмите ДОБАВИТЬ ДОМЕН.
- Заполните свой домен
- Затем он попросит подтвердить ваш домен. Нажмите "Продолжить".
- Выберите провайдера доменного имени. [Photo5]
- Следите за процессом
- Теперь вы сможете добавить его в список подтверждения домена в консоли Google API следующим образом. Убедитесь, что ваш домен проверен. [Фото6]
Часть 4
Теперь выберите вкладку экрана согласия OAuth. [Photo7]
Введите имя приложения
Далее мы добавим области на экран согласия. Это означает, что мы будем спрашивать пользователя на экране согласия, хотят ли они поделиться информацией о своем календаре с зеркалом.
- Нажмите «Добавить область» и найдите календарь.
- Отметьте../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.
- Перейдите в загрузочный каталог SD-карты на вашем ПК.
- Откройте файл "cmdline.txt"
- Удалите ip = 169.254.10.1 в конце длинной строки текста.
Шаг 10: запуск зеркала
Посетите IP-адрес на зеркальном экране или, если вы настроили календарь Google, введите имя домена.
Теперь вы сможете настроить свое зеркало!
Если вы получаете ошибку SSL на вашем зеркале, вы можете добавить свои сертификаты в хранилище сертификатов Chromium.
Рекомендуемые:
Как создать комбинированное портативное интеллектуальное зеркало / ящик для макияжа: 8 шагов
Как создать комбинированное портативное интеллектуальное зеркало / коробку для макияжа: в качестве финального проекта для моего завершающего проекта в Davis & В колледже Элкинса я решил спроектировать и создать дорожную коробку для макияжа вместе с большим зеркалом и использованием Raspberry Pi и программной платформы Magic Mirror, которая будет функционировать как порт
Интеллектуальное садоводство и интеллектуальное сельское хозяйство на основе Интернета вещей с использованием ESP32: 7 шагов
Интеллектуальное садоводство и интеллектуальное сельское хозяйство на основе Интернета вещей с использованием ESP32: Мир меняется со временем, как и сельское хозяйство. В настоящее время люди интегрируют электронику во все области, и сельское хозяйство не является исключением. Это слияние электроники в сельском хозяйстве помогает фермерам и людям, которые занимаются садоводством. В этом
Интеллектуальное управление вентилятором Raspberry Pi с помощью Python и Thingspeak: 7 шагов
Интеллектуальное управление вентилятором Raspberry Pi с помощью Python & Thingspeak: Краткий обзор По умолчанию вентилятор напрямую подключен к GPIO - это подразумевает его постоянную работу. Несмотря на относительно тихую работу вентилятора, его непрерывная работа не является эффективным использованием активной системы охлаждения. В то же время
NexArdu: Интеллектуальное управление освещением: 5 шагов
NexArdu: Интеллектуальное управление освещением: Обновление Если те же функции были разработаны с помощью Home Assistant. Домашний помощник предлагает огромный спектр возможностей. Вы можете найти разработку здесь .----------------- Эскиз для интеллектуального управления домашним освещением через 433,92 МГц (
Интеллектуальное зарядное устройство на базе микроконтроллера: 9 шагов (с изображениями)
Интеллектуальное зарядное устройство на базе микроконтроллера: схема, которую вы собираетесь увидеть, представляет собой интеллектуальное зарядное устройство на базе ATMEGA8A с автоматическим отключением. Различные параметры отображаются на ЖК-дисплее во время различных состояний заряда. Кроме того, схема будет издавать звуковой сигнал при зарядке. завершение.Я построил