Mundarija:

Google Taqvim bilan ko'p foydalanuvchilarli aqlli oyna: 10 qadam
Google Taqvim bilan ko'p foydalanuvchilarli aqlli oyna: 10 qadam

Video: Google Taqvim bilan ko'p foydalanuvchilarli aqlli oyna: 10 qadam

Video: Google Taqvim bilan ko'p foydalanuvchilarli aqlli oyna: 10 qadam
Video: Telefonning 15 ta siz bilmagan maxfiy kodlari/Телефоннинг сиз билмаган 15 та махфий кодлари 2024, Noyabr
Anonim
Google Kalendar bilan ko'p foydalanuvchilarli aqlli oyna
Google Kalendar bilan ko'p foydalanuvchilarli aqlli oyna
Google taqvim yordamida ko'p foydalanuvchilarli aqlli oyna
Google taqvim yordamida ko'p foydalanuvchilarli aqlli oyna

Ushbu qo'llanmada biz Google Taqvim bilan birlashtirilgan aqlli oynani yaratamiz. Men bu loyihani qildim, chunki men aqlli nometalllarni juda zo'r deb bilaman, ular ertalab xudoning sovg'asi. Lekin men o'zimni noldan yaratishga qaror qildim, chunki qolganlarning hammasida 1 ta kamchilik bor. Ular juda rivojlangan va tartibsiz. Men buni oddiy saqlashga qaror qildim.

Ta'minotlar

Oldin

mana meniki kabi ko'zgu qurish uchun sizga kerak bo'ladigan narsalarni boshlaymiz. Bu etkazib berish sizning mintaqangizga va joriy narxlarga qarab 250 dan 350 evrogacha turadi.

Uskuna

Sensorlar

  • Bir simli harorat sensori
  • RWCL 0516 (Mikroto'lqinli harakat sensori)
  • Yumshoq potansiyometr (Sparkfundan sensorli chiziq)

Hisoblash

va IC

  • Karnay (4Ω da 3,2W yoki 8Ωda 1,8W)
  • MCP3008
  • Adafruit I2S 3W D sinfidagi kuchaytirgich sinishi - MAX98357A
  • Raspberry Pi 3 B+
  • SD -karta (8 GB yaxshi)
  • Rezistor 4.7K Ohm

Har xil

  • Jumper simlari
  • Non paneli
  • Akril ikki tomonlama oyna (15% yorug'lik o'tkazuvchanligi)
  • IPS monitor (o'lchami siz xohlagan hajmga bog'liq)
  • HDMI kabeli
  • Yog'och

Dasturiy ta'minot

  • PuTTY
  • Kod muharriri (Notepad ++ etarli)
  • Win32 disk qidiruvchisi
  • Raspbian OS tasvir

1 -qadam: sozlash

Boshlash uchun, avvalo, men qilgan kod uchun Pi -ni sozlashimiz kerak.

Sizga ikkita narsa kerak bo'ladi:

  • Win32 Disk Imager https://sourceforge.net/projects/win32diskimager/… saytidan.
  • Raspbian OS tasviri

ZIP faylini yuklab oling va uni xohlagan joyga ko'chiring.

O'rnatish

  1. Rasmni papka belgisi orqali tanlang
  2. Ochiladigan ro'yxat orqali SD -kartangizni tanlang
  3. Yozishni bosing

Endi biz Pi -ga kira olishimiz uchun ba'zi sozlamalar bilan qo'shimcha ishlarni bajarishimiz kerak bo'ladi.

  1. SD -kartaning yuklash katalogiga o'ting
  2. "Cmdline.txt" faylini oching
  3. Qo'shish ip = 169.254.10.1 Matn uzun satrining oxirida bo'sh joy bilan ajratilgan (bir qatorda).
  4. Faylni saqlang.
  5. Xuddi shu katalogda kengaytmasi bo'lmagan ssh nomli fayl yarating

Endi siz SD -kartani chiqarib, uni Pi -ga qo'yishingiz mumkin.

Ulanmoqda

Endi biz dasturiy ta'minotni sozlashimiz kerak.

Birinchidan, LAN simini ulang, bir uchi ish stolida/noutbukda, ikkinchisi Pi -da.

Endi Raspberry Pi -ni yuklang.

  1. Putty -ni https://www.putty.org/ saytidan o'rnating.
  2. IP maydoniga 169.254.10.1 kiriting.
  3. SSH tanlanganligiga va 22 -port to'ldirilganligiga ishonch hosil qiling.
  4. Ochish -ni bosing
  5. Foydalanuvchi nomini kiriting: pi
  6. Parolni to'ldiring: malina

Raspi-config

Raspi-config yordam dasturini quyidagicha oching:

sudo raspi-config

Interfeyslar toifasida quyidagi variantlarni yoqing

  • 1-simli
  • SPI

Mahalliylashtirish toifasi orqali WiFi mamlakatini tanlang.

Keyin yuklash variantlari toifasida quyidagi variantlarni o'chirib qo'ying

Bosh ekran

Nihoyat yuklash variantlari toifasidagi Desktop/CLI sozlamalarini Desktop Autologin -ga o'rnating.

Wifi

Ko'zgu uchun biz Wi -Fi ulanishiga ega bo'lishimiz kerak, shuning uchun Wi -Fi ma'lumotlari yaqin ekanligiga ishonch hosil qiling.

Ildiz rejimiga o'ting

sudo -i

Bu qatorni joylashtiring, lekin SSID va Parolni to'ldirganingizga ishonch hosil qiling

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

WPA mijozini kiriting.

wpa_cli

Interfeysni tanlang

wlan0 interfeysi

Konfiguratsiyani qayta yuklang

qayta sozlamoq

Yozish orqali to'g'ri ulanganingizga ishonch hosil qiling …

ip a

… va WLAN0 interfeyslarida IP -manzilingiz bor -yo'qligini ko'rish.

Paketlar

Endi biz Internetga ulangan bo'lsak, ba'zi paketlarni o'rnatishimiz kerak bo'ladi.

Avval biz paketlar ro'yxatini yangilashimiz kerak.

sudo apt yangilash

Python

Biz Raspbianni Python 3 dan foydalanishga majbur qilamiz

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

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

MariaDB

Ma'lumotlar bazasini o'rnatish uchun quyidagi qatorni joylashtiring.

sudo apt install mariadb-server

Keyin biz o'rnatishni ta'minlashimiz kerak.

mysql_secure_installation

U bizdan joriy parolni so'raydi, chunki bizda faqat Enter tugmachasi yo'q.

Keyin u y -da ildiz parolini xohlaymizmi, deb so'raydi.

Keyingi savollar uchun Y kiriting.

Nihoyat, biz ko'zgu uchun foydalana oladigan foydalanuvchi yaratamiz.

Mysql qobig'ini kiriting:

O'zimizni ildiz otish uchun ko'taramiz

sudo -i

MySQL qobig'ini kiriting

mysql

O'z ismingiz bilan almashtiring va shu bilan

oynadagi barcha imtiyozlarni bering.

Endi biz ruxsatnomalar jadvalini tozalaymiz.

YUQARISH IMKONIYATLARI;

Apache veb -server

Veb -serverni o'rnatish uchun quyidagi qatorni ishga tushiring.

sudo apt install apache2 -y

Python paketlar

Biz bu paketlarni o'rnatamiz

  • Shisha
  • Flask-Cors
  • Flask-MySQL
  • Shisha-rozetka
  • PyMySQL
  • Shisha-talisman
  • Gevent
  • Gevent-veb-rozetkasi
  • Google-api-python-mijozi
  • Google autentifikatsiyasi
  • Google-auth-httplib2
  • Google-auth-oauthlib
  • Httplib2
  • Taqvim
  • Voqealar
  • Oauthlib
  • Python-soket
  • Talablar
  • Wsaccel
  • Ujson

Qilish orqali

pip install Flask Flask-Cors Flask-MySQL Flask-SocketIO PyMySQL Flask-Talisman gevent-websocket google-api-python-client google-auth google-auth-httplib2 google-auth-oauthlib httplib2-ni o'chirib tashlamang.

Karnayni sozlash

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

Endi biz qayta ishga tushirishimiz kerak, shuning uchun y tugmasini bosing.

Skriptni qayta ishga tushiring

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

Endi biz ikkinchi marta qayta ishga tushirishimiz kerak

sudo qayta yuklash

Ekran (monitor)

Ekranning yo'nalishini xohlaganingizga qarab, ekranni aylantirishingiz mumkin.

Ekranni aylantirish uchun biz yuklash parametrlariga kirishimiz kerak:

sudo nano /boot/config.txt

Va keyin ushbu satrlardan birini konfiguratsiya fayliga joylashtiring:

display_rotate = 0

display_rotate = 1

display_rotate = 2

display_rotate = 3

Birinchisi, 0 - oddiy konfiguratsiya. 1 90 daraja bo'ladi, 2 180 daraja va oxirgi 270 daraja bo'ladi.

Keyin qayta ishga tushiring.

sudo qayta yuklash

2 -qadam: oynani o'rnatish

Oynani o'rnatish
Oynani o'rnatish

Endi men kodni yuklab olish uchun joy o'rnatamiz.

CD/uy/pi/

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

Endi biz ba'zi papkalarni to'g'ri manzilga ko'chiramiz

sudo cp -R frontend/mirror//var/www/html/mirror/

sudo cp -R frontend/dashboard//var/www/html/Sudo cp -R backend//home/pi/Mirror/

Ma'lumotlar bazasini o'rnatish - bu loyihani amalga oshirishda zarur qadam.

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

3 -qadam: Konfiguratsiya

Konfiguratsiya fayli quyidagi manzilda joylashgan.

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

MYSQL foydalanuvchisi va parolini kiriting.

Bu biz yaratgan mysql foydalanuvchisi bo'lishi kerak.

Boshqa sozlamalarni biz keyinroq ko'rib chiqamiz.

4 -qadam: API

Endi biz Pi -ni o'rnatishni tugatdik, biz sizga kerak bo'lgan ba'zi mavzularni ko'rib chiqamiz.

Darkskiy

Https://darksky.net/dev orqali Darsky API kalitini yarating.

Ro'yxatdan o'tgandan so'ng, siz boshqaruv panelida API kalitini ko'rasiz.

Bu kalitni ilgari o'rnatgan oyna loyihasining konfiguratsiya fayliga kiriting.

Taqvim

Odatiy bo'lib, siz taqvimingizni ko'rish uchun faqat ical url -laridan foydalanishingiz mumkin. Ammo bu qism sizning oynangizni Google ekotizimiga qanday ulash haqida bo'ladi. Bu odatda uzoq va og'riqli jarayon.

Sizga albatta kerak bo'ladigan narsalar

Domen nomi

Bu bo'limda biz o'rnatadigan narsalar

  • CloudFlare hisob qaydnomasi
  • Google Developer hisobi
  • Google Developer loyihasi
  • Calendar API -ni o'rnating

5 -qadam: Kalendar

Taqvim
Taqvim
Taqvim
Taqvim

Cloudflare

Https://cloudflare.com saytidan cloudflare hisobini o'rnating va domen nomingizni Cloudflare DNS -ga o'tkazish uchun sehrgarga amal qiling.

Malinali pi ni ko'rsatadigan A yozuvini o'zingiz yaratishingiz shart emas. Mening oyna kodim buni siz uchun qiladi. Ko'pgina uy Wi -Fi -da IP -lar statik emas, shuning uchun qayta ishga tushirilgandan so'ng u endi ishlamasligi mumkin. Mening kodim avtomatik ravishda IP -ni yangilashi uchun unga sizning API kalitingiz kerak bo'ladi.

  1. O'ng tarafdagi boshqaruv panelidagi API kalitini olish tugmasini bosing. [1 -rasm]
  2. Pastga siljiting va Global API kalitingizni ko'ring. [2 -rasm]

Bu kalitni ilgari o'rnatgan oyna loyihasining konfiguratsiya fayliga kiriting.

SSL sertifikatini yaratish

Google bizdan SSL ulanishini talab qiladi. Ushbu bo'limni boshlash uchun Cloudflare DNS -ni to'g'ri sozlaganingizga ishonch hosil qiling.

Avval omborni qo'shing.

sudo add-apt-repository ppa: certbot/certbot

Paket ro'yxatini yangilang.

sudo apt-get yangilanishi

CertBot -ni o'rnating

sudo apt install python-certbot-apache

Sertifikat yaratishni boshlang. Yana to'g'ri domen nomini kiritishingiz kerak bo'ladi.

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

Yaratilgandan so'ng, u sizdan barcha ulanishlarni SSLga yo'naltirish kerakligini so'raydi. Qayta yo'naltirishni tanlang.

Endi u sizning domeningiz uchun sertifikat muvaffaqiyatli yaratilganligini aytadi. Sizga beradigan 2 ta yo'lni saqlashga ishonch hosil qiling.

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

Endi sertifikatlar joylashgan papkaga o'ting:

Example.com saytini to'g'ri xostga o'zgartirganingizga ishonch hosil qiling.

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

Keling, ushbu tarkibni loyiha papkamizga ko'chirib olaylik.

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

Va

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

Apache -ni domeningizga ulang

Apache -ni o'z domeningiz bilan to'g'ri sozlash uchun biz konfiguratsiya faylini yaratishimiz kerak bo'ladi. Domen nomini to'ldirganingizga ishonch hosil qiling, masalan funergydev.com.

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

Keyin buni faylga joylashtiring. Example.com saytini domen nomingiz bilan almashtiring.

Sizning sertifikatingiz va shaxsiy kalitingiz to'g'ri yo'l ekanligiga ishonch hosil qiling. Ularni avval biz yaratganimizda, keyinbotbot orqali saqlagan yo'lingizga o'rnating.

DocumentRoot "/var/www/html/" SSLEngine on SSLCertificateFile /home/pi/Mirror/resources/certs/cert.pem SSLCertificateKeyFile /home/pi/Mirror/resources/certs/privkey.pem # Boshqa ko'rsatmalar bu erda Options Indexes FollowSymLinks AllowOverOver. Hammasi talab qilingan hamma berilgan

Endi biz ba'zi o'zgartirishlarni yoqishimiz va keyin Apache -ni konfiguratsiyani qayta yuklashga majbur qilishimiz kerak:

sudo a2enmod ssl

sudo a2enmod qayta yozish

sudo systemctl apache2 -ni qayta yuklang

Endi siz domen nomingiz orqali pi -ga o'tishingiz va standart apache sahifasini ko'rishingiz kerak.

6 -qadam: Google API

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

Https://console.developers.google.com orqali ishlab chiquvchi konsoliga o'ting.

1 -qism

Google API logotipining yonida va YANGI LOYIHA tugmasini bosish orqali birinchi loyihangizni yarating. Tegishli loyiha nomini kiriting va yaratish tugmasini bosing. [1 -rasm]

2 -qism

Endi siz ushbu sahifaga o'tasiz. Kutubxona tugmachasini bosing. [2 -rasm]

Bu siz foydalanishingiz mumkin bo'lgan barcha API -larning katta ro'yxati, lekin biz Google Calendar API -ni qidiramiz. Unga bosing va ENABLE tugmasini bosing. [3 -rasm]

Keyin taqvim API -ning umumiy ko'rinishiga ega bo'lasiz. Loyihangizga qaytish uchun Google APIs logotipini bosing. [4 -rasm]

3 -qism

Hamma narsani to'g'ri sozlash uchun hisob ma'lumotlari toifasini bosing va Domenni tekshirish yorlig'ini tanlang.

Bu erda siz domen nomini tasdiqlashingiz kerak.

  1. DOMEN QO'SHISH tugmasini bosing
  2. Domeningizni to'ldiring
  3. Keyin domeningizni tasdiqlashni so'raydi. Davom etish -ni bosing.
  4. Domen nomi provayderini tanlang. [5 -rasm]
  5. Jarayonni kuzatib boring
  6. Endi siz uni Google API konsolidagi Domenni tekshirish ro'yxatiga shunday qo'shishingiz mumkin. Domeningiz tekshirilganligiga ishonch hosil qiling. [6 -rasm]

4 -qism

Endi OAuth roziligi ekrani yorlig'ini tanlang. [7 -rasm]

Ariza nomini to'ldiring

Keyin biz rozilik ekraniga maydonlarni qo'shamiz. Bu shuni anglatadiki, biz foydalanuvchidan o'z taqvim ma'lumotlarini oynaga ulashishni xohlasa, rozilik ekranida so'raymiz.

  1. Taqvimni qidirish maydonini qo'shish -ni bosing.
  2. ../Auth/calendar.readonly ni tekshiring va qo'shish tugmasini bosing. [8 -rasm]

Vakolatli domenni to'ldiring. Bu siz tasdiqlagan domen bo'lishi kerak. [9 -rasm]

Endi shakl ostidagi katta saqlash tugmasini bosing.

5 -qism

Nihoyat, biz hisob ma'lumotlarini yaratishimiz kerak. Saqlash tugmachasini bosganimiz uchun bizni hisob ma'lumotlari yorlig'iga yo'naltirdilar. Hisob ma'lumotlarini yaratish -ni bosing va OAuth mijoz identifikatorini tanlang. [10 -rasm]

Ilova turini tanlang: Internet ilovasi va unga nom bering.

Ruxsat berilgan qayta yo'naltirish URI -ga quyidagi havolani kiriting va to'g'ri domenni to'ldiring.

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

Yaratish -ni bosing. Bu sizga qalqib chiquvchi oynani ko'rsatadi, faqat OK ni bosing. Endi siz yaratgan hisob ma'lumotlarini yuklab olish tugmasini bosing

6 -qism

Endi JSON faylini oching va tarkibini nusxalash.

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

Ularni bu erga joylashtiring.

7 -qism

Endi biz o'z domenimizni konfiguratsiyada aniqlashimiz kerak:

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

7 -qadam: ko'zgu dizayni

Ko'zgu dizayni
Ko'zgu dizayni
Ko'zgu dizayni
Ko'zgu dizayni
Ko'zgu dizayni
Ko'zgu dizayni
Ko'zgu dizayni
Ko'zgu dizayni

Oynani loyihalash siz xohlagan narsaga bog'liq. LCD -ni aniq o'lchab oling va oynaning bir tomonida 2 santimetrlik bo'sh joy qoldiring, chunki u erda mikroto'lqinli harakat sensori o'tiradi. U hech qanday metallning orqasida turolmaydi.

Men 4 ta yog'och taxtani bir -biriga bog'ladim. Ular ko'zgu oldida yaxshi toza bo'lishi uchun maydalangan. Men tepada, shuningdek, karnay ovozini o'chirish uchun bir nechta teshik ochdim. Oynaning qarama -qarshi tomoni, pastki qismi, men elektr simlarini osonlik bilan bajarish uchun kichik to'rtburchaklar kesib oldim. [1 -rasm]

Bu 2 ta arzon yog'och, bu erda monitor yoqiladi. Men aytganimdek, bizga oyna va korpus o'rtasida taxminan 2 santimetrlik bo'shliq kerak bo'ladi. Bundan tashqari, men 3 ta kichik yog'och bo'laklarini qo'shib, ularni qolgan qismlarga yopishtirdim. Shunday qilib, monitor o'z joyida qoladi. [2 -rasm]

Oxir -oqibat shunday ko'rinishga ega bo'ldi. Menda dam olish qismlari va oynaning old qismi o'rtasida taxminan 3 mm bo'sh joy bor edi. Qalinligi 3 mm bo'lgan ikki tomonlama oynani qo'yish uchun etarli. [Foto3]

8 -qadam: simlarni ulash

Simlarni ulash
Simlarni ulash
Simlarni ulash
Simlarni ulash
Simlarni ulash
Simlarni ulash

Ushbu sxemalardan birini to'g'ri bajarganingizga ishonch hosil qiling.

Bir marta sim o'tkazdim, uni ekranning orqa tomoniga ikki tomonlama lenta bilan yopishtirdim. Agar men oynani demontaj qilmoqchi bo'lsam va boshqa loyihalarda ishlatmoqchi bo'lsam, uni osongina olib tashlashim mumkin edi. Agar ishonchingiz komil bo'lsa, siz issiq tabancadan foydalanishingiz va uni oynaning orqa tomoniga yopishtirishingiz mumkin.

9 -qadam: Kodni ishga tushirish

Kodni ishga tushirish
Kodni ishga tushirish
Kodni ishga tushirish
Kodni ishga tushirish
Kodni ishga tushirish
Kodni ishga tushirish

LXSession

Keling, avval bir nechta papkalarni yarataylik

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

Endi biz bir nechta ishga tushirish parametrlari/buyruqlarini ko'rsatadigan fayl yaratamiz.

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

Quyidagilarni faylga joylashtiring.

@lxpanel-LXDE-pi profili

@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

Biz boshlang'ich oynasi skriptini xostimizga mos keladigan tarzda yangilaymiz.

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

Agar siz Google taqvimi va domenidan foydalanmasangiz, localhost -ni tanlang.

#!/bin/bash

uyqu 15 xrom-brauzer --incognito --kiosk https:// localhost/mirror

Agar siz undan foydalanayotgan bo'lsangiz, xostingizni to'ldiring.

#!/bin/bash

uyqu 15 xrom-brauzer --incognito-kiosk

Xizmat

Endi biz oyna kodi avtomatik ravishda ishga tushishini o'rnatamiz.

Biz kodni avtomatik ravishda ishga tushiradigan xizmatni yaratamiz.

Borish:

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

Va buni faylga joylashtiring

[Birlik]

Tavsif = Orqa oynadan keyin = network.target mariadb.service [Xizmat] Turi = oddiy foydalanuvchi = root ExecStart =/bin/sh /home/pi/Mirror/init.sh [O'rnatish] WantedBy = multi-user.target

Endi biz systemd demonini qayta yuklashimiz kerak bo'ladi:

sudo systemctl daemon-reload

Shuningdek, biz xizmatni yuklashda avtomatik ishga tushirishni yoqamiz.

sudo systemctl oynani yoqadi

Endi biz o'chiramiz.

sudo poweroff

Yakuniy sozlamalar

Nihoyat, biz APIPA ip -ni olib tashlashimiz kerak, shunda u faqat WiFi -da ishlaydi.

  1. Kompyuteringizda SD -kartaning yuklash katalogiga o'ting.
  2. "Cmdline.txt" faylini oching
  3. Uzoq matn satrining oxirida ip = 169.254.10.1 ni olib tashlang.

10 -qadam: oynani ishga tushirish

Oynani ishga tushirish
Oynani ishga tushirish
Oynani ishga tushirish
Oynani ishga tushirish
Oynani ishga tushirish
Oynani ishga tushirish
Oynani ishga tushirish
Oynani ishga tushirish

Ko'zgu ekranidagi IP -ga tashrif buyuring yoki agar siz Google taqvimini o'rnatgan bo'lsangiz, domen nomini to'ldiring.

Endi siz oynani sozlashingiz mumkin!

Agar siz oynada SSL xatosi topsangiz, sertifikatlaringizni Chromium sertifikat do'koniga qo'shishingiz mumkin.

Tavsiya: