Съдържание:

Интелигентно огледало за много потребители с Google Календар: 10 стъпки
Интелигентно огледало за много потребители с Google Календар: 10 стъпки

Видео: Интелигентно огледало за много потребители с Google Календар: 10 стъпки

Видео: Интелигентно огледало за много потребители с Google Календар: 10 стъпки
Видео: Полное руководство по Google Forms - универсальный инструмент для опросов и сбора данных онлайн! 2024, Ноември
Anonim
Интелигентно огледало за много потребители с Google Календар
Интелигентно огледало за много потребители с Google Календар
Интелигентно огледало за много потребители с Google Календар
Интелигентно огледало за много потребители с Google Календар

В тази инструкция ще създадем интелигентно огледало, интегрирано с Google Календар. Направих този проект, защото намирам интелигентните огледала за страхотни, те са божи дар на сутринта. Но реших да си направя сам от нулата, защото всички останали имат 1 недостатък. Те са твърде напреднали и претрупани. Реших да запазя това просто.

Консумативи

Преди

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

Хардуер

Сензори

  • Температурен сензор с един проводник
  • RWCL 0516 (Микровълнов сензор за движение)
  • Мек потенциометър (Touchstrip от Sparkfun)

Изчисления

и IC

  • Високоговорител (3,2 W при 4Ω ИЛИ 1,8 W при 8 Ω)
  • MCP3008
  • Adafruit I2S 3W Class D усилвател - MAX98357A
  • Малина Pi 3 B+
  • SD карта (8GB е добре)
  • Резистор 4.7K Ohm

Различни

  • Джъмперпроводници
  • Платка
  • Двупосочно огледало от акрил (15% пропускане на светлина)
  • IPS монитор (размерът зависи от това колко голям искате)
  • HDMI кабел
  • дърво

Софтуер

  • ПУТИ
  • Редактор на код (Notepad ++ е достатъчен)
  • Win32 Disk Imager
  • Образ на Raspbian OS

Стъпка 1: Настройка

За да започнем, първо ще трябва да настроим вашия Pi за кода, който направих.

Ще ви трябват две неща:

  • Win32 Disk Imager от
  • Образ на Raspbian OS от

Изтеглете 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

Отворете помощната програма Raspi-config, като използвате:

sudo raspi-config

Активирайте следните опции в категорията интерфейси

  • 1-проводник
  • SPI

Изберете вашата WiFi държава чрез категорията за локализация.

След това деактивирайте следните опции в категорията опции за зареждане

Екран за пръскане

Накрая задайте настройката Desktop/CLI в категорията опции за зареждане на Desktop Autologin.

WiFi

За огледалото трябва да имаме wifi връзка, така че се уверете, че вашите идентификационни данни за wifi са близо.

Влезте в root режим

sudo -i

Поставете този ред, но се уверете, че SSID и паролата са попълнени

wpa_passphrase "SSID" "PASSWORD" >> /etc/wpa_supplicant/wpa_supplicant.conf

Въведете WPA клиент.

wpa_cli

Изберете интерфейса

интерфейс wlan0

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

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

Уверете се, че сте свързани правилно, като напишете …

ip a

… и вижте дали имате IP на WLAN0 интерфейсите.

Пакети

Сега, когато сме свързани с интернет, ще трябва да инсталираме някои пакети.

Първо ще трябва да опресним списъците с пакети за най -новия.

sudo apt актуализация

Python

Ще принудим Raspbian да използва Python 3

update-alternatives --install/usr/bin/python python /usr/bin/python2.7 1

update-alternatives --install/usr/bin/python python/usr/bin/python3 2

MariaDB

Поставете следния ред, за да инсталирате базата данни.

sudo apt инсталирате mariadb-сървър

След това ще трябва да осигурим нашата инсталация.

mysql_secure_installation

Той ще ни поиска текуща root парола, тъй като нямаме такава, просто натиснете enter.

След това се пита дали искаме root парола в y, тъй като искаме такава.

За следващите въпроси просто въведете Y.

Накрая ще създадем потребител, който ще можем да използваме за огледалото.

Въведете черупката на mysql, като направите:

Издигаме се до корен

sudo -i

Въведете обвивката на mysql

mysql

Заменете със собствено потребителско име и същото с

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

Сега изчистваме таблицата с разрешения.

ФЛУШ ПРИВИЛЕГИ;

Apache уеб сървър

За да инсталирате уеб сървъра, изпълнете реда по -долу.

sudo apt инсталирате apache2 -y

Пакети на Python

Ще инсталираме тези пакети

  • Колба
  • Flask-Cors
  • Flask-MySQL
  • Flask-SocketIO
  • PyMySQL
  • Колба-талисман
  • Gevent
  • Gevent-websocket
  • Google-api-python-клиент
  • Google-авт
  • 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-клиент google-auth google-auth-httplib2 google-auth-oauthlib httplib2 icalendarh icalecincen wicalecance wicalecance wicalecn

Настройка на високоговорителите

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 рестартиране

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

В зависимост от това как искате ориентацията на вашия екран, може да искате да завъртите екрана.

За да завъртите екрана, трябва да имаме достъп до опциите за зареждане, като направите:

sudo nano /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 frontend/mirror//var/www/html/mirror/

sudo cp -R frontend/dashboard//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, ще обхванем някои теми, които може да искате да направите.

Мрачно небе

Създайте Darsky API ключ чрез

Когато се регистрирате, ще видите своя API ключ на таблото за управление.

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

Календар

По подразбиране ще можете да използвате само ical URL адреси, за да видите календара си от. Но тази част ще бъде за това как да свържете огледалото си с екосистемата на Google. Това като цяло е по -дълъг и болезнен процес.

Неща, които определено ще ви трябват

Име на домейн

Това са нещата, които ще настроим по време на тази част

  • Акаунт в CloudFlare
  • Профил на програмист в Google
  • Проект за разработчици на Google
  • Настройте API на календара

Стъпка 5: Календарът

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

Cloudflare

Настройте акаунт в cloudflare от https://cloudflare.com и следвайте съветника, за да прехвърлите вашето име на домейн в DNS на Cloudflare.

Няма нужда сами да създавате запис A, който сочи малиновото пи. Моят Mirror код ще направи това вместо вас. Тъй като в повечето домакински wifi IP адресите не са статични, така че след рестартиране може да не работи повече. За да може кодът ми автоматично да актуализира ip, ще му е необходим API ключ за акаунта ви.

  1. Щракнете върху бутона Get your API key на таблото за управление от дясната страна. [Снимка 1]
  2. Превъртете надолу и прегледайте своя глобален API ключ. [Снимка 2]

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

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

Google изисква от нас да имаме SSL връзка. За да стартирате този раздел, уверете се, че сте настроили правилно Cloudflare DNS.

Първо добавете хранилището.

sudo add-apt-repository 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 # Други директиви тук Опции Indexes AllowSymr Всички Изискват всички предоставени

Сега трябва да разрешим някои модификации и след това да принудим Apache да презареди конфигурацията, като:

sudo a2enmod ssl

sudo a2enmod пренаписване

sudo systemctl презареди apache2

Сега би трябвало да можете да отидете през вашето име на домейн към вашето pi и да видите страницата на apache по подразбиране.

Стъпка 6: Google API

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

Отидете на конзолата за програмисти чрез

Част 1

Създайте първия си проект, като щракнете до логото на Google API и щракнете върху бутона НОВ ПРОЕКТ. Попълнете подходящо име на проект и щракнете върху бутона за създаване. [Снимка1]

Част 2

Сега ще стигнете до тази страница. Щракнете върху бутона библиотека. [Снимка2]

Това е голям списък с всички API, които можете да използвате, но ние ще търсим API на Google Календар. Щракнете върху него и натиснете ENABLE. [Снимка3]

След това ще получите общ преглед на API на Календар. Щракнете върху логото на API на Google, за да се върнете към вашия проект. [Снимка4]

Част 3

За да настроите всичко правилно, щракнете върху категорията идентификационни данни и изберете раздела Проверка на домейна.

Тук ще трябва да потвърдите името на домейна си.

  1. Щракнете върху ДОБАВЯНЕ НА ДОМЕН
  2. Попълнете вашия домейн
  3. След това ще поиска да потвърди вашия домейн. Щракнете върху Напред.
  4. Изберете вашия доставчик на име на домейн. [Снимка5]
  5. Следвайте процеса
  6. Сега ще можете да го добавите към списъка за проверка на домейна в Google API Console по този начин. Уверете се, че вашият домейн е проверен. [Снимка6]

Част 4

Сега изберете раздела на екрана за съгласие с OAuth. [Снимка7]

Попълнете името на приложението

След това ще добавим обхвати към екрана за съгласие. Това означава, че ще попитаме потребителя на екрана за съгласие дали иска да сподели своята информация за календара с огледалото.

  1. Щракнете върху добавяне на обхват и потърсете календар.
  2. Проверете../auth/calendar.readonly и натиснете add. [Снимка8]

Попълнете оторизиран домейн. Това трябва да е домейнът, който току -що сте проверили. [Снимка9]

Сега щракнете върху големия бутон за запазване под формата.

Част 5

Накрая трябва да създадем идентификационни данни. Тъй като натиснахме бутона за запазване, бяхме пренасочени към раздела за идентификационни данни. Щракнете върху създаване на идентификационни данни и изберете OAuth Client ID. [Снимка10]

Изберете Тип приложение: Уеб приложение и му дайте име.

Въведете следната връзка в 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: Огледален дизайн

Огледалният дизайн
Огледалният дизайн
Огледалният дизайн
Огледалният дизайн
Огледалният дизайн
Огледалният дизайн
Огледалният дизайн
Огледалният дизайн

Проектирането на вашето огледало зависи от това как искате. Направете точни измервания на LCD и оставете 2 сантиметрова междина от едната страна на огледалото, тъй като микровълновият сензор за движение ще седи там. Не може да бъде зад никакъв метал.

Свързах 4 дървени дъски заедно. Те бяха фрезовани, за да имат хубава чиста предна част на огледалото. Отгоре също пробих няколко дупки, за да пропусна звука на високоговорителя. От другата страна на огледалото, отдолу, изрязах малък правоъгълник, за да мога лесно да направя електрическото окабеляване. [Снимка1]

Това са 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 --профил LXDE-pi

@pcmanfm --desktop --профил 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

sleep 15 chromium-browser --incognito --kiosk https:// localhost/mirror

Ако го използвате, попълнете вашия хост.

#!/bin/bash

sleep 15 chromium-browser --incognito --kiosk

Обслужване

Сега ще настроим кода на Mirror да се стартира автоматично.

Ще създадем услуга, която автоматично стартира кода вместо нас.

Отидете на:

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

И поставете това във файла

[Мерна единица]

Описание = Огледален бекенд след = network.target mariadb.service [услуга] Тип = прост потребител = root ExecStart =/bin/sh /home/pi/Mirror/init.sh [Инсталиране] WantedBy = многопотребителски целеви

Сега ще трябва да презаредим демона systemd, като направите:

sudo systemctl демон-презареждане

Също така ще активираме услугата за автоматично стартиране при зареждане.

sudo systemctl активира огледало

Сега ще изключим захранването.

sudo poweroff

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

Накрая трябва да премахнем нашия APIPA ip, така че да работи само на WiFi.

  1. Отидете в зареждащата директория на SD картата на вашия компютър.
  2. Отворете файла "cmdline.txt"
  3. Премахнете ip = 169.254.10.1 В края на дългия ред текст.

Стъпка 10: Стартирайте огледалото

Пускане на огледалото
Пускане на огледалото
Пускане на огледалото
Пускане на огледалото
Пускане на огледалото
Пускане на огледалото
Пускане на огледалото
Пускане на огледалото

Посетете ip, който е на огледалния екран, или ако сте настроили календара на Google, попълнете името на домейна.

Сега ще можете да настроите огледалото си!

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

Препоръчано: