Мазмұны:

Google күнтізбесі бар көп қолданушы ақылды айна: 10 қадам
Google күнтізбесі бар көп қолданушы ақылды айна: 10 қадам

Бейне: Google күнтізбесі бар көп қолданушы ақылды айна: 10 қадам

Бейне: Google күнтізбесі бар көп қолданушы ақылды айна: 10 қадам
Бейне: Басқа тышты деген осы 😡 2024, Қараша
Anonim
Google күнтізбесі бар көп қолданушы ақылды айна
Google күнтізбесі бар көп қолданушы ақылды айна
Google күнтізбесі бар көп қолданушы ақылды айна
Google күнтізбесі бар көп қолданушы ақылды айна

Бұл нұсқаулықта біз Google Calendar -мен интеграцияланған ақылды айна жасаймыз. Мен бұл жобаны жасадым, себебі мен ақылды айналарды керемет деп санаймын, олар таңертең құдайдың сыйы. Бірақ мен өзімді нөлден жасауға шешім қабылдадым, себебі басқаларында 1 кемшілік бар. Олар тым дамыған және тәртіпсіз. Мен мұны қарапайым ұстауды шештім.

Жабдықтар

Бұрын

Біз мынаны бастаймын, сізге менікі сияқты айна жасау керек. Бұл жабдықтар сіздің аймаққа және ағымдағы бағаларға байланысты шамамен 250 -ден 350 евроға дейін болады.

Аппараттық құрал

Сенсорлар

  • Бір сымды температура сенсоры
  • RWCL 0516 (микротолқынды қозғалыс сенсоры)
  • Жұмсақ потенциометр (Sparkfun сенсорлық жолағы)

Есептеу

және IC

  • Динамик (3,2 Вт 4Ω немесе 1,8 Вт 8Ω)
  • MCP3008
  • Adafruit I2S 3W D D күшейткішінің үзілуі - MAX98357A
  • Таңқурай Pi 3 B+
  • SD картасы (8 ГБ жақсы)
  • Резистор 4,7 Км

Әр түрлі

  • Өткізгіш сымдар
  • Нан тақтасы
  • Акрил екі жақты айна (15% жарық жіберу)
  • IPS мониторы (өлшемі сіз қалағаныңызға байланысты)
  • HDMI кабелі
  • Ағаш

Бағдарламалық қамтамасыз ету

  • PuTTY
  • Код редакторы (Блокнот ++ жеткілікті)
  • Win32 диск өңдегіші
  • 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 бағдарламасын https://www.putty.org/ сайтынан орнатыңыз.
  2. IP жолағына 169.254.10.1 енгізіңіз.
  3. SSH таңдалғанын және 22 порт толтырылғанын тексеріңіз.
  4. Ашу түймесін басыңыз
  5. Пайдаланушы атын енгізіңіз: pi
  6. Құпия сөзді толтырыңыз: таңқурай

Raspi-config

Raspi-config қызметтік бағдарламасын ашыңыз:

sudo raspi-config

Интерфейстер санатындағы келесі опцияларды қосыңыз

  • 1-сым
  • SPI

Локализация санаты арқылы WiFi елін таңдаңыз.

Содан кейін жүктеу опциялары санатындағы келесі опцияларды өшіріңіз

Экран

Ақырында жүктеу опциялары санатындағы Desktop/CLI параметрін Desktop Autologin күйіне орнатыңыз.

Сымсыз дәлдiк

Айна үшін бізде Wi -Fi байланысы болуы керек, сондықтан Wi -Fi тіркелгі деректері жақын екеніне көз жеткізіңіз.

Түбірлік режимге өтіңіз

sudo -i

Бұл жолды қойыңыз, бірақ SSID мен құпия сөздің екеуі де толтырылғанын тексеріңіз

wpa_passphrase «SSID» «PASSWORD» >> /etc/wpa_supplicant/wpa_supplicant.conf

WPA клиентіне кіріңіз.

wpa_cli

Интерфейсті таңдаңыз

wlan0 интерфейсі

Конфигурацияны қайта жүктеңіз

қайта конфигурациялау

Теру арқылы дұрыс қосылғаныңызға көз жеткізіңіз …

ip а

… Және WLAN0 интерфейстерінде IP бар -жоғын білу.

Пакеттер

Енді біз Интернетке қосылғаннан кейін бірнеше пакеттерді орнатуымыз керек.

Алдымен бізге пакеттер тізімін жаңарту қажет.

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 install mariadb-server

Содан кейін біз орнатуды қамтамасыз етуіміз керек.

mysql_secure_installation

Ол бізден ағымдағы түбірлік құпия сөзді сұрайды, өйткені бізде тек enter пернесін басу қажет.

Әрі қарай, біз y -де түбірлік құпия сөзді алғымыз келе ме, жоқ па деп сұрайды.

Келесі сұрақтар үшін Y әріпін енгізіңіз.

Ақырында, біз айна үшін қолдануға болатын пайдаланушы жасаймыз.

MySQL қабығын келесі әрекеттерді орындау арқылы енгізіңіз:

Өзімізді тамырға көтеру

sudo -i

MySQL қабығын енгізіңіз

mysql

Өзіңіздің жеке атыңызбен ауыстырыңыз және сол сияқты

айнадағы барлық артықшылықтарды беріңіз.* ''@'%' '' арқылы анықталды;

Енді біз рұқсаттар кестесін тазалаймыз.

АРТЫҚШЫЛЫҚТАР;

Apache веб -сервері

Веб -серверді орнату үшін төмендегі жолды іске қосыңыз.

sudo apt install apache2 -y

Python пакеттері

Біз бұл пакеттерді орнатамыз

  • Колба
  • Flask-Cors
  • Flask-MySQL
  • Flask-SocketIO
  • PyMySQL
  • Колбадан жасалған тұмар
  • Gevent
  • Gevent-веб-ұясы
  • Google-api-python-клиенті
  • Google авторизациясы
  • Google-auth-httplib2
  • Google-auth-oauthlib
  • Httplib2
  • Icalendar
  • Іс -шаралар
  • Oauthlib
  • Python-сокет
  • Сұраулар
  • Wsaccel
  • Уйсон

Жасау арқылы

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 сілтемелері мүмкін емес.

Динамикті реттеу

curl -sS https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/i2samp.sh | bash

Енді біз қайта жүктеуіміз керек, сондықтан y түймесін басыңыз.

Сценарийді қайта іске қосыңыз

curl -sS https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/i2samp.sh | bash

Енді біз екінші рет қайта жүктеуіміз керек

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/бақылау тақтасы//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 орнатуды аяқтадық, біз сізге қажет кейбір тақырыптарды қарастырамыз.

Даркский

Https://darksky.net/dev арқылы Darsky API кілтін жасаңыз.

Тіркелген кезде сіз бақылау тақтасында API кілтін көресіз.

Бұл кілтті бұрын орнатқан айна жобасының конфигурация файлына енгізіңіз.

Күнтізбе

Әдепкі бойынша сіз күнтізбеңізді қарау үшін ical URL мекенжайларын пайдалана аласыз. Бірақ бұл бөлім сіздің айнаңызды Google экожүйесімен қалай байланыстыру туралы болмақ. Бұл әдетте ұзақ және ауыр процесс.

Сізге қажет нәрселер

Домен атауы

Бұл бөлікте біз орнататын нәрселер

  • CloudFlare есептік жазбасы
  • Google әзірлеуші есептік жазбасы
  • Google әзірлеуші жобасы
  • Calendar API орнатыңыз

5 -қадам: Күнтізбе

Күнтізбе
Күнтізбе
Күнтізбе
Күнтізбе

Cloudflare

Https://cloudflare.com сайтынан cloudflare есептік жазбасын орнатыңыз және домен атауын Cloudflare DNS -ке тасымалдау үшін шеберді орындаңыз.

Таңқурай пиін көрсететін A жазбасын өзіңіз жасаудың қажеті жоқ. Менің айна коды мұны сіз үшін жасайды. Көптеген үйдегі wifi -да IP тұрақты емес, сондықтан қайта жүктеуден кейін ол енді жұмыс істемеуі мүмкін. Менің кодым IP -ті автоматты түрде жаңартуы үшін оған сіздің API есептік жазбаңыздың кілті қажет болады.

  1. Оң жақтағы бақылау тақтасындағы API кілтін алу түймесін басыңыз. [1 -сурет]
  2. Төмен айналдырыңыз және Global API кілтін қараңыз. [2 -сурет]

Бұл кілтті бұрын орнатқан айна жобасының конфигурация файлына енгізіңіз.

SSL сертификатын құру

Google бізден SSL байланысын талап етеді. Бұл бөлімді бастау үшін Cloudflare DNS дұрыс орнатылғанына көз жеткізіңіз.

Алдымен репозиторийді қосыңыз.

sudo add-apt-repository ppa: certbot/certbot

Пакеттер тізімін жаңартыңыз.

sudo apt-get жаңартуы

CertBot орнатыңыз

sudo apt install 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 on SSLCertificateFile /home/pi/Mirror/resources/certs/cert.pem SSLCertificateKeyFile /home/pi/Mirror/resources/certs/privkey.pem # мұнда басқа директивалар OptS Indexes FollowSymLinks AllowOver Барлығы талап етіледі

Енді біз кейбір өзгертулерді қосуымыз керек, содан кейін 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

Https://console.developers.google.com арқылы әзірлеуші консоліне өтіңіз.

1 -бөлім

Google API логотипінің жанындағы және ЖАҢА ЖОБА түймесін басу арқылы бірінші жобаңызды жасаңыз. Жобаның сәйкес атауын енгізіңіз және жасау түймесін басыңыз. [Фото1]

2 -бөлім

Енді сіз бұл бетке кіресіз. Кітапхана түймесін басыңыз. [Фото2]

Бұл сіз қолдануға болатын барлық API -дің үлкен тізімі, бірақ біз Google Calendar API іздейміз. Оны басып, ҚОСУ түймесін басыңыз. [Фото3]

Содан кейін сіз Calendar API шолуына қол жеткізесіз. Жобаға қайту үшін Google APIs логотипін басыңыз. [Фото4]

3 -бөлім

Барлығын дұрыс орнату үшін тіркелгі деректері санатын нұқыңыз және Доменді растау қойындысын таңдаңыз.

Мұнда сіз өзіңіздің домен атыңызды растауыңыз керек.

  1. ДОМЕН ҚОСУ түймесін басыңыз
  2. Доменіңізді толтырыңыз
  3. Содан кейін ол сіздің доменіңізді растауды сұрайды. Жалғастыру түймесін басыңыз.
  4. Домен атауын жеткізушіні таңдаңыз. [Фото5]
  5. Процесті қадағалаңыз
  6. Енді сіз оны Google API консоліндегі доменді тексеру тізіміне осылай қоса аласыз. Сіздің доменіңіз тексерілгеніне көз жеткізіңіз. [6 -сурет]

4 -бөлім

Енді OAuth келісімі экраны қойындысын таңдаңыз. [Фото7]

Өтініш атауын толтырыңыз

Содан кейін біз келісім экранына аумақтарды қосамыз. Бұл дегеніміз, біз пайдаланушыдан келісім экранында күнтізбе туралы ақпаратты айнаға бөліскісі келетінін сұраймыз.

  1. Аймақты қосу түймесін басып, күнтізбені іздеңіз.
  2. ../Auth/calendar.readonly тексеріп, қосу түймесін басыңыз. [Фото8]

Рұқсат етілген доменді толтырыңыз. Бұл сіз растаған домен болуы керек. [9 -сурет]

Енді форманың астындағы үлкен сақтау түймесін басыңыз.

5 -бөлім

Ақырында, біз тіркелгі деректерін жасауымыз керек. Біз сақтау түймесін басқандықтан, біз тіркелгі деректері қойындысына қайта бағытталдық. Тіркелгі деректерін жасау түймесін басып, OAuth клиент идентификаторын таңдаңыз. [Фото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 -қадам: Айна дизайны

Айна дизайны
Айна дизайны
Айна дизайны
Айна дизайны
Айна дизайны
Айна дизайны
Айна дизайны
Айна дизайны

Айнаның дизайны оны қалай алғыңыз келетініне байланысты. СКД -нің дәл өлшемдерін жасаңыз және айнаның бір жағында 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 --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

Егер сіз Google күнтізбесі мен доменді пайдаланбасаңыз, localhost таңдаңыз.

#!/bin/bash

ұйқы 15 хром-шолушысы-инкогнито-киоск https:// localhost/mirror

Егер сіз оны қолдансаңыз, хостты толтырыңыз.

#!/bin/bash

ұйқы 15 хром-шолушысы-инкогнито-киоск

Қызмет

Енді біз айна коды автоматты түрде жұмыс істейтінін орнатамыз.

Біз кодты автоматты түрде іске қосатын қызметті жасаймыз.

Бару:

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

Және оны файлға қойыңыз

[Бірлік]

Сипаттама = Айнаның артқы жағы = network.target mariadb.service [Қызмет] Түрі = қарапайым Пайдаланушы = түбір ExecStart =/bin/sh /home/pi/Mirror/init.sh [Орнату] WantedBy = multi-user.target

Енді бізге 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 сертификаттар дүкеніне қосқыңыз келуі мүмкін.

Ұсынылған: