Mündəricat:

Google Təqvim ilə Çox İstifadəçi Ağıllı Güzgü: 10 addım
Google Təqvim ilə Çox İstifadəçi Ağıllı Güzgü: 10 addım

Video: Google Təqvim ilə Çox İstifadəçi Ağıllı Güzgü: 10 addım

Video: Google Təqvim ilə Çox İstifadəçi Ağıllı Güzgü: 10 addım
Video: CS50 2013 - Week 10 2024, Noyabr
Anonim
Google Təqvim ilə Çox İstifadəçi Ağıllı Güzgü
Google Təqvim ilə Çox İstifadəçi Ağıllı Güzgü
Google Təqvim ilə Çox İstifadəçi Ağıllı Güzgü
Google Təqvim ilə Çox İstifadəçi Ağıllı Güzgü

Bu təlimatda Google Calendar ilə inteqrasiya olunmuş ağıllı bir güzgü yaradacağıq. Bu layihəni ağıllı aynaların həqiqətən sərin olduğunu gördüyüm üçün hazırladım, səhərlər bir tanrıdır. Ancaq özümdən sıfır etmək qərarına gəldim, çünki digərlərinin hamısında 1 qüsur var. Çox inkişaf etmiş və dağınıqdırlar. Bunu sadə saxlamağa qərar verdim.

Təchizat

Əvvəl

Mənimki kimi bir Güzgü qurmaq üçün mütləq ehtiyac duyacağınız şeylərə başlayacağıq. Bu təchizat bölgənizə və cari qiymətlərə görə təxminən 250 ilə 350 avroya başa gələcək.

Avadanlıq

Sensorlar

  • Bir telli temperatur sensoru
  • RWCL 0516 (Mikrodalğalı hərəkət sensoru)
  • Yumşaq potensiometr (Sparkfun toxunma zolağı)

Hesablama

və IC -lər

  • Dinamik (4Ω -də 3.2W və ya 8Ω -də 1.8W)
  • MCP3008
  • Adafruit I2S 3W Class D Amplifier Breakout - MAX98357A
  • Moruq Pi 3 B+
  • SD kart (8 GB yaxşıdır)
  • Rezistor 4.7K Ohm

Müxtəlif

  • Jumper telləri
  • Çörək lövhəsi
  • Akril İki Yollu Güzgü (15% işıq ötürülməsi)
  • IPS Monitor (Ölçü nə qədər böyük olmasını istədiyinizə bağlıdır)
  • HDMI kabeli
  • Ağac

Proqram təminatı

  • PuTTY
  • Kod redaktoru (Notepad ++ kifayətdir)
  • Win32 disk axtarıcısı
  • Raspbian OS görüntüsü

Addım 1: Quraşdırma

Başlamaq üçün əvvəlcə etdiyim kod üçün Pi -ni qurmalıyıq.

İki şeyə ehtiyacınız olacaq:

  • Win32 Disk Görüntüleyicisi
  • Https://www.raspberrypi.org/downloads/raspbian/ saytından Raspbian OS görüntüsü

ZIP faylını yükləyin və istədiyiniz yerə çıxarın.

Quraşdırma

  1. Qovluq işarəsi ilə şəklinizi seçin
  2. Açılan menyudan SD kartınızı seçin
  3. Yazın üzərinə basın

İndi Pi -yə daxil ola biləcəyimiz üçün bəzi parametrlərlə əlavə bir iş görməliyik.

  1. SD kartın açılış qovluğuna gedin
  2. "Cmdline.txt" faylını açın
  3. İp = 169.254.10.1 əlavə edin uzun mətn sətirinin sonunda boşluqla ayrılmış (eyni sətirdə).
  4. Faylı qeyd edin.
  5. Eyni qovluqda uzantısı olmayan ssh adlı bir fayl yaradın

İndi SD kartı çıxarıb Pi -yə qoya bilərsiniz.

Bağlanır

İndi proqramı qurmalıyıq.

Əvvəlcə bir ucunu masaüstünüzdə/dizüstü kompüterinizdə, digər ucunuzda isə LAN kabelini bağlayın.

İndi Raspberry Pi -ni yükləyin.

  1. Https://www.putty.org/ saytından Putty quraşdırın
  2. IP qutusuna 169.254.10.1 daxil edin.
  3. SSH -nin seçildiyindən və 22 portunun doldurulduğundan əmin olun.
  4. Aç düyməsini basın
  5. İstifadəçi adını daxil edin: pi
  6. Şifrəni daxil edin: moruq

Raspi-konfiqurasiya

Raspi-config yardım proqramını açın:

sudo raspi-config

İnterfeyslər kateqoriyasında aşağıdakı variantları aktiv edin

  • 1-Tel
  • SPI

Yerləşdirmə kateqoriyasından istifadə edərək WiFi ölkənizi seçin.

Sonra, açılış seçimləri kateqoriyasında aşağıdakı variantları deaktiv edin

Sıçrayış ekranı

Nəhayət, açılış seçimləri kateqoriyasındakı Masaüstü/CLI parametrlərini Masaüstü Avtomatlaşdırma olaraq təyin edin.

WiFi

Güzgü üçün wifi bağlantımız olmalıdır, buna görə də WiFi məlumatlarınızın yaxın olduğundan əmin olun.

Kök rejiminə keçin

sudo -i

Bu xətti yapışdırın, ancaq SSID və Şifrənin doldurulduğundan əmin olun

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

WPA Müştəri daxil edin.

wpa_cli

Arayüzü seçin

wlan0 interfeysi

Konfiqurasiyanı yenidən yükləyin

yenidən qurmaq

Yazaraq düzgün bağlandığınızdan əmin olun …

ip a

… Və WLAN0 interfeyslərində IP -nin olub olmadığını görmək.

Paketlər

İndi İnternetə qoşulduqdan sonra bəzi paketlər quraşdırmalıyıq.

Əvvəlcə son siyahı üçün paket siyahılarını yeniləməliyik.

sudo apt yeniləmə

Python

Raspbianı Python 3 istifadə etməyə məcbur edəcəyik

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

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

MariaDB

Verilənlər bazasını qurmaq üçün aşağıdakı sətri yapışdırın.

sudo apt install mariadb-server

Sonra quraşdırmamızı təmin etməliyik.

mysql_secure_installation

Bizdən cari kök şifrənizi istəyəcək.

Daha sonra y istədiyimiz üçün y -də bir kök parol növü istəməyimizi soruşur.

Növbəti suallar üçün Y daxil edin.

Nəhayət, güzgü üçün istifadə edə biləcəyimiz bir istifadəçi yaradacağıq.

Bunu etməklə mysql qabığına daxil olun:

Özümüzü kök salmaq üçün qaldırırıq

sudo -i

Mysql qabığına daxil olun

mysql

Öz istifadəçi adınızla və eyni ilə dəyişdirin

güzgüdəki bütün imtiyazları verin.* ''@'%' ilə müəyyən edilən

İndi icazə cədvəlini yuyuruq.

FLUSH İSTİFADƏLƏRİ;

Apache veb server

Veb serveri qurmaq üçün aşağıdakı xətti işlədin.

sudo apt install apache2 -y

Python paketləri

Bu paketləri quraşdıracağıq

  • Şüşə
  • Flask-Cors
  • Flask-MySQL
  • Şüşə-SocketIO
  • PyMySQL
  • Şüşə-talisman
  • Gevent
  • Gevent-veb yuvası
  • Google-api-python müştəri
  • Google-auth
  • Google-auth-httplib2
  • Google-auth-oauthlib
  • Httplib2
  • Təqvim
  • Yaranma hadisələri
  • Oauthlib
  • Python yuvası
  • İstək
  • Wsaccel
  • Ujson

Etməklə

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

Dinamik quraşdırılması

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

İndi yenidən başlatmalıyıq, buna görə y düyməsini basın.

Ssenarini yenidən başladın

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

İndi ikinci dəfə yenidən başlamalıyıq

sudo yenidən başladın

Ekran (monitor)

Ekranınızın oriyentasiyasını necə istədiyinizdən asılı olaraq ekranı döndərmək istəyə bilərsiniz.

Ekranı döndərmək üçün açılış seçimlərinə daxil olmalıyıq:

sudo nano /boot/config.txt

Və sonra bu satırlardan birini konfiqurasiya faylına yapışdırın:

display_rotate = 0

display_rotate = 1

display_rotate = 2

display_rotate = 3

Birincisi, 0, normal konfiqurasiyadır. 1 90 dərəcə, 2 180 dərəcə, sonuncu isə 270 dərəcə olacaq.

Sonra yenidən başladın.

sudo yenidən başladın

Addım 2: Aynanın quraşdırılması

Güzgü quraşdırılması
Güzgü quraşdırılması

İndi kodumu yükləmək üçün bir yer quracağıq.

cd/ev/pi/

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

İndi bəzi qovluqları doğru yerə kopyalayacağıq

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

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

Verilənlər bazasının qurulması layihənin hazırlanması üçün zəruri bir addımdır.

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

Addım 3: Konfiqurasiya

Konfiqurasiya faylı burada yerləşir:

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

MYSQL istifadəçisini və şifrənizi daxil edin.

Bu, hazırladığımız mysql istifadəçisi olmalıdır.

Daha sonra keçəcəyimiz digər parametrlər bu təlimatlandırıcıdır.

Addım 4: API -lər

İndi Pi -nin quraşdırılmasını başa çatdırdıq, etmək istədiyiniz bəzi mövzuları əhatə edəcəyik.

Darkski

Https://darksky.net/dev vasitəsilə Darsky API açarı yaradın.

Qeydiyyatdan keçdiyiniz zaman API açarınızı İdarə Panosunda görəcəksiniz.

Bu açarı əvvəl qurduğunuz güzgü layihəsinin konfiqurasiya faylına daxil edin.

Təqvim

Varsayılan olaraq, təqviminizi görmək üçün yalnız ical urllərindən istifadə edə biləcəksiniz. Ancaq bu hissə, güzgünüzü Google Ekosistemi ilə necə əlaqələndirmək barədə olacaq. Bu ümumiyyətlə daha uzun və ağrılı bir prosesdir.

Mütləq ehtiyac duyacağınız şeylər

Bir domen adı

Bu hissədə quracağımız şeylər bunlardır

  • CloudFlare hesabı
  • Google Developer Hesabı
  • Google Developer Layihəsi
  • Calendar API qurun

Addım 5: Təqvim

Təqvim
Təqvim
Təqvim
Təqvim

Bulud parlaması

Https://cloudflare.com saytından bir cloudflare hesabı qurun və domen adınızı Cloudflare DNS -ə köçürmək üçün sihirbazı izləyin.

Moruq pi -yə işarə edən bir A qeydini özünüz yaratmağa ehtiyac yoxdur. Mənim Ayna kodum bunu sizin üçün edəcək. Əksər ev wifi -də IP statik olmadığından, yenidən başladıqdan sonra artıq işləməyə bilər. Kodumun avtomatik olaraq ipi yeniləməsi üçün hesabınızın API açarına ehtiyacınız olacaq.

  1. Sağ tərəfdəki tablosundakı API açarınızı alın düyməsini vurun. [Şəkil 1]
  2. Aşağı diyirləyin və Global API açarınızı görün. [Şəkil 2]

Bu açarı əvvəl qurduğunuz güzgü layihəsinin konfiqurasiya faylına daxil edin.

SSL Sertifikatının yaradılması

Google bizdən SSL bağlantısı tələb edir. Bu bölməyə başlamaq üçün Cloudflare DNS -ni düzgün qurduğunuzdan əmin olun.

Əvvəlcə depo əlavə edin.

sudo add-apt-repository ppa: certbot/certbot

Paket siyahısını yeniləyin.

sudo apt-get yeniləməsi

CertBot quraşdırın

sudo apt install python-certbot-apache

Sertifikat yaratmağa başlayın. Yenə düzgün domen adını doldurmalısınız.

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

Yaradıldıqdan sonra bütün əlaqələri SSL -ə yönləndirməyiniz lazım olduğunu soruşacaq. Yenidən yönləndirmə seçin.

İndi sizə alanınız üçün uğurla bir sertifikat yaratdığını söyləyəcək. Sizə verdiyi 2 yolu saxladığınızdan əmin olun.

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

İndi sertifikatları olan qovluğa keçin:

Example.com saytını doğru hosta dəyişdiyinizə əmin olun.

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

İndi bu məzmunu layihə qovluğumuza kopyalayaq.

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

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

Apache -ni domeninizə bağlayın

Apache -ni domeninizlə düzgün bir şəkildə konfiqurasiya etmək üçün bir konfiqurasiya faylı yaratmalıyıq. Domen adınızı doldurduğunuzdan əmin olun, məsələn funergydev.com.

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

Sonra bunu fayla yapışdırın. Example.com -u domen adınızla əvəz edin.

Sertifikatınızın və şəxsi açarınızın doğru yol olduğundan əmin olun. Onları əvvəllər biz yaratdığımız zaman, sonra certbot vasitəsilə saxladığınız yola təyin edin.

DocumentRoot "/var/www/html/" SSLEngine on SSLCertificateFile /home/pi/Mirror/resources/certs/cert.pem SSLCertificateKeyFile /home/pi/Mirror/resources/certs/privkey.pem # Buradakı digər direktivlər Options Indexes FollowSymLinks AllowOverOver Hamısı Tələb olunanların hamısı verilir

İndi bəzi dəyişiklikləri aktivləşdirməliyik və sonra Apache -ni konfiqurasiyanı yenidən yükləməyə məcbur etməliyik:

sudo a2enmod ssl

sudo a2enmod yenidən yazın

sudo systemctl apache2 yenidən yükləyin

İndi domen adınızla pi -yə keçə və standart apache səhifəsinə baxmalısınız.

Addım 6: Google API

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

Https://console.developers.google.com vasitəsilə geliştirici konsoluna gedin.

1 -ci hissə

Google API loqotipinin yanındakı düyməni və YENİ PROJE düyməsini tıklayaraq ilk layihənizi yaradın. Uyğun bir layihə adını daxil edin və yarad düyməsini basın. [Şəkil 1]

2 -ci hissə

İndi bu səhifəyə keçəcəksiniz. Kitabxana düyməsini basın. [Şəkil2]

Bu istifadə edə biləcəyiniz bütün API -lərin böyük bir siyahısıdır, ancaq Google Calendar API -ni axtaracağıq. Bunun üzərinə basın və ENABLE düyməsini basın. [Şəkil3]

Daha sonra Calendar API -yə ümumi baxış əldə edəcəksiniz. Layihənizə qayıtmaq üçün Google API -lərini vurun. [Şəkil4]

3 -cü hissə

Hər şeyi düzgün qurmaq üçün etimadnamə kateqoriyasına vurun və Domen yoxlama sekmesini seçin.

Burada domen adınızı təsdiqləməlisiniz.

  1. DOMAIN ADDD əlavə edin
  2. Domeninizi doldurun
  3. Daha sonra domeninizi təsdiq etməyinizi xahiş edəcək. Davam et düyməsini basın.
  4. Domen adı təminatçınızı seçin. [Şəkil 5]
  5. Prosesi izləyin
  6. İndi bunu Google API Konsolunda Domain Doğrulama Siyahısına bu şəkildə əlavə edə bilərsiniz. Domeninizin yoxlanıldığından əmin olun. [Şəkil6]

4 -cü hissə

İndi OAuth razılıq ekranı sekmesini seçin. [Şəkil7]

Tətbiqin adını daxil edin

Sonra razılıq ekranına sahələr əlavə edəcəyik. Bu, təqvim məlumatlarını güzgü ilə bölüşmək istədiklərini istifadəçi razılığı ekranında soruşacağımız deməkdir.

  1. Kapsam əlavə et və təqvim axtarın.
  2. ../Auth/calendar.readonly yoxlayın və əlavə et düyməsini basın. [Şəkil8]

Səlahiyyətli bir Alanı doldurun. Bu, doğruladığınız domen olmalıdır. [Şəkil 9]

İndi formanın altındakı böyük qeyd düyməsini basın.

5 -ci hissə

Nəhayət, etimadnaməsini yaratmalıyıq. Saxlama düyməsini basdığımız üçün etimadnamə nişanına yönləndirildik. Etimadnaməsini yaratmaq düyməsini basın və OAuth Müştəri Kimliyini seçin. [Şəkil 10]

Tətbiq növünü seçin: Veb Tətbiqi və ona bir ad verin.

Səlahiyyətli Yönləndirmə URI -lərinə aşağıdakı linki daxil edin və düzgün domeni doldurun.

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

Yarat düyməsini basın. Bu sizə bir popup göstərəcək, sadəcə OK düyməsini basın. İndi etdiyiniz etimadnamənizdəki yükləmə düyməsini basın

6 -cı hissə

İndi JSON faylını açın və məzmununu kopyalayın.

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

Onları bura yapışdırın.

7 -ci hissə

İndi konfiqurasiyada domenimizi təyin etməliyik:

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

Addım 7: Güzgü Dizaynı

Güzgü Dizaynı
Güzgü Dizaynı
Güzgü Dizaynı
Güzgü Dizaynı
Güzgü Dizaynı
Güzgü Dizaynı
Güzgü Dizaynı
Güzgü Dizaynı

Güzgünün dizaynı onu necə istədiyinizə bağlıdır. LCD -nin dəqiq ölçmələrini aparın və Mikrodalğalı hərəkət sensoru orada oturacağından aynanın bir tərəfində 2 santimetr boşluq buraxın. Heç bir metalın arxasında ola bilməz.

4 taxta taxtanı bir -birinə bağladım. Güzgünün gözəl bir ön tərəfinə sahib olmaq üçün bunları üyüddülər. Üst tərəfdə dinamikin səsini çıxartmaq üçün bir neçə deşik də qazdım. Güzgünün əks tərəfi, alt hissəsində kiçik bir düzbucaq kəsdim ki, elektrik naqillərini rahatlıqla edim. [Şəkil 1]

Bunlar, monitorun işə düşəcəyi 2 ədəd ucuz ağacdır. Dediyimdən, güzgü ilə qutu arasında təxminən 2 santimetr boşluğa ehtiyacımız olacaq. Mən də 3 kiçik taxta parçası əlavə edərək onları istirahət hissələrinə vidaladım. Beləliklə, monitor yerində qalacaq. [Şəkil2]

Sonda belə göründü. Bu istirahət parçaları ilə güzgü qabının önü arasında təxminən 3 mm boşluq var idi. 3 mm qalınlığında iki tərəfli aynanı içəri sala biləcəyim üçün kifayətdir. [Foto3]

Addım 8: Kabel çəkmə

Kabel çəkmə
Kabel çəkmə
Kabel çəkmə
Kabel çəkmə
Kabel çəkmə
Kabel çəkmə

Bu sxemlərdən birini düzgün yerinə yetirdiyinizə əmin olun.

Kabel bağladıqdan sonra ekranın arxasına iki tərəfli lentlə yapışdırdım. Güzgünü söküb digər layihələr üçün istifadə etmək istəsəm, asanlıqla silə bilərəm. Əminsinizsə, isti yapışqan tabancasından istifadə edib aynanın arxasına yapışdıra bilərsiniz.

Addım 9: Kodun işə salınması

Kodun işə salınması
Kodun işə salınması
Kodun işə salınması
Kodun işə salınması
Kodun işə salınması
Kodun işə salınması

LXSession

Əvvəlcə bir neçə qovluq yaradaq

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

İndi bir neçə başlanğıc parametri/əmri təyin edəcəyimiz bir fayl yaradacağıq.

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

Aşağıdakıları fayla yapışdırın.

@lxpanel-profil LXDE-pi

@pcmanfm-masa üstü-profil LXDE-pi @xscreensaver -siz-sıçrama @point-rpi @sh /home/pi/Mirror/init_mirror.sh @xset s noblank @xset s off @xset -dpms

Ev sahibimizə uyğun olaraq başlanğıc güzgü ekran skriptini yeniləyəcəyik.

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

Google təqvim və bir domen istifadə etmirsinizsə localhost seçin.

#!/bin/bash

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

İstifadə edirsinizsə, ev sahibinizi doldurun.

#!/bin/bash

yuxu 15 chromium-browser --incognito --kiosk

Xidmət

İndi ayna kodunun avtomatik işlədiyini quracağıq.

Kodu avtomatik olaraq bizim üçün başlatan bir xidmət yaradacağıq.

Getmək:

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

Və bunu fayla yapışdırın

[Bölmə]

Təsvir = Sonra Mirror Backend = network.target mariadb.service [Service] Type = simple User = root ExecStart =/bin/sh /home/pi/Mirror/init.sh [Install] WantedBy = multi-user.target

İndi systemd daemonunu yenidən yükləməli olacağıq:

sudo systemctl daemon-yenidən yüklə

Həm də xidmətin açılışda avtomatik başlamasını təmin edəcəyik.

sudo systemctl güzgünü aktivləşdirin

İndi söndürəcəyik.

sudo poweroff

Son parametrlər

Nəhayət, yalnız WiFi üzərində işləməsi üçün APIPA ipimizi çıxarmalıyıq.

  1. Kompüterinizdə SD kartın açılış qovluğuna gedin.
  2. "Cmdline.txt" faylını açın
  3. Uzun mətn sətrinin sonunda ip = 169.254.10.1 çıxarın.

Addım 10: Güzgüdən qaçın

Güzgüdən qaçmaq
Güzgüdən qaçmaq
Güzgüdən qaçmaq
Güzgüdən qaçmaq
Güzgüdən qaçmaq
Güzgüdən qaçmaq
Güzgüdən qaçmaq
Güzgüdən qaçmaq

Güzgü ekranındakı ipi ziyarət edin və ya google təqvimini qurmusunuzsa, domen adını doldurun.

İndi güzgü qura biləcəksiniz!

Güzgüdə SSL xətası alsanız, sertifikatlarınızı Chromium sertifikat mağazasına əlavə etmək istəyə bilərsiniz.

Tövsiyə: