Cuprins:
- Provizii
- Pasul 1: Configurare
- Pasul 2: Instalarea oglinzii
- Pasul 3: Configurare
- Pasul 4: API-uri
- Pasul 5: Calendarul
- Pasul 6: API Google
- Pasul 7: Proiectarea oglinzii
- Pasul 8: Efectuarea cablării
- Pasul 9: Pornirea codului
- Pasul 10: Rularea oglinzii
Video: Oglindă inteligentă multi-utilizator cu Google Calendar: 10 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:43
În acest instructable vom crea o oglindă inteligentă integrată cu Google Calendar. Am făcut acest proiect pentru că mi se par foarte frumoase oglinzile inteligente, dimineața sunt un dar de la Dumnezeu. Dar am decis să fac unul singur de la zero pentru că toate celelalte au un defect. Sunt prea avansați și aglomerați. Am decis să păstrez acest lucru simplu.
Provizii
Inainte de
vom începe acestea sunt lucrurile de care cu siguranță veți avea nevoie pentru a construi o oglindă ca a mea. Aceste consumabile vor costa în jur de 250-350 de euro, în funcție de regiune și de prețurile curente.
Hardware
Senzori
- Senzor de temperatură cu un fir
- RWCL 0516 (senzor de mișcare cu microunde)
- Potențiometru moale (Touchstrip de la Sparkfun)
Tehnica de calcul
și IC’s
- Difuzor (3,2W la 4Ω SAU 1,8W la 8Ω)
- MCP3008
- Adafruit I2S 3W Clasa D Amplificator Breakout - MAX98357A
- Raspberry Pi 3 B +
- Card SD (8 GB este bine)
- Rezistor 4.7K Ohm
Variat
- Jumperwires
- Pană de pâine
- Oglindă acrilică bidirecțională (15% transmisie de lumină)
- Monitor IPS (dimensiunea depinde de cât de mare îl doriți)
- Cablu HDMI
- Lemn
Software
- MASTIC
- Editor de cod (Notepad ++ este suficient)
- Win32 Disk Imager
- Imagine Raspbian OS
Pasul 1: Configurare
Pentru a începe, va trebui mai întâi să vă configurăm Pi-ul pentru codul pe care l-am creat.
Veți avea nevoie de două lucruri:
- Win32 Disk Imager de la
- Imagine Raspbian OS de la
Descărcați fișierul ZIP și extrageți-l oriunde doriți.
Instalatia
- Selectați imaginea dvs. prin pictograma dosar
- Selectați cardul SD prin meniul derulant
- Faceți clic pe scrie
Acum va trebui să facem câteva modificări suplimentare cu unele setări, astfel încât să putem accesa Pi.
- Accesați directorul de pornire al cardului SD
- Deschideți fișierul „cmdline.txt”
- Adăugați ip = 169.254.10.1 La sfârșitul liniei lungi de text separate cu un spațiu (pe aceeași linie).
- Salvați fișierul.
- Creați un fișier numit ssh fără nicio extensie în același director
Acum puteți scoate cardul SD și îl puteți pune în Pi.
Conectarea
Acum va trebui să configurăm software-ul.
Conectați mai întâi un cablu LAN, un capăt în desktop / laptop și celălalt în Pi.
Acum porniți Raspberry Pi.
- Instalați Putty de pe
- Introduceți 169.254.10.1 în caseta IP.
- Asigurați-vă că este selectat SSH și că portul 22 este completat.
- Faceți clic pe Deschidere
- Completați numele de utilizator: pi
- Completați parola: zmeură
Raspi-config
Deschideți utilitarul Raspi-config utilizând:
sudo raspi-config
Activați următoarele opțiuni în categoria interfețe
- 1-fir
- SPI
Alegeți țara dvs. WiFi prin categoria de localizare.
Apoi, dezactivați următoarele opțiuni din categoria opțiuni de încărcare
Ecran splash
În cele din urmă, setați setarea Desktop / CLI din categoria de opțiuni de încărcare la Desktop Autologin.
Wifi
Pentru oglindă trebuie să avem o conexiune wifi, deci asigurați-vă că aveți acreditările dvs. wifi aproape.
Accesați modul root
sudo -i
Lipiți această linie, dar asigurați-vă că SSID și parola sunt completate ambele
wpa_passphrase "SSID" "PASSWORD" >> /etc/wpa_supplicant/wpa_supplicant.conf
Introduceți clientul WPA.
wpa_cli
Selectați interfața
interfață wlan0
Reîncărcați config
reconfigura
Asigurați-vă că sunteți conectat corect tastând …
ip a
… Și văd dacă aveți un IP pe interfețele WLAN0.
Pachete
Acum că suntem conectați la internet va trebui să instalăm câteva pachete.
Mai întâi va trebui să reîmprospătăm listele de pachete pentru cea mai recentă.
actualizare sudo apt
Piton
Vom forța Raspbian să folosească 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
Lipiți următoarea linie pentru a instala baza de date.
sudo apt instalați mariadb-server
Apoi va trebui să ne asigurăm instalarea.
mysql_secure_installation
Ne va cere parola curentă de root, deoarece nu avem una, doar apăsați Enter.
Apoi se întreabă dacă vrem o parolă de tip root în y, deoarece vrem una.
Pentru următoarele întrebări, introduceți doar Y.
În cele din urmă, vom crea un utilizator pe care îl vom putea folosi pentru oglindă.
Introduceți shell-ul mysql făcând:
Ridicați-ne la rădăcină
sudo -i
Introduceți shell-ul mysql
mysql
Înlocuiți cu propriul dvs. nume de utilizator și la fel cu
acordă toate privilegiile pe oglindă. * către '' @ '%' identificat prin '';
Acum eliminăm tabelul de permisiuni.
PRIVILEGII DE FLUSH;
Apache Webserver
Pentru a instala Webserver rulați linia de mai jos.
sudo apt instalează apache2 -y
Pachete Python
Vom instala aceste pachete
- Balon
- Flask-Cors
- Flask-MySQL
- Flask-SocketIO
- PyMySQL
- Balon-talisman
- Gevent
- Gevent-websocket
- Google-api-python-client
- Google-auth
- Google-auth-httplib2
- Google-auth-oauthlib
- Httplib2
- Icalendar
- Icalevents
- Oauthlib
- Python-socketio
- Cereri
- Wsaccel
- Ujson
Facand
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-socketio requests wsaccel uj
Configurarea difuzoarelor
curl -sS https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/i2samp.sh | bash
Acum trebuie să repornim, așa că apăsați pe y.
Executați din nou scenariul
curl -sS https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/i2samp.sh | bash
Acum trebuie să repornim a doua oară
sudo reboot
Ecran (monitor)
În funcție de modul în care doriți orientarea ecranului, poate doriți să rotiți ecranul.
Pentru rotirea ecranului, trebuie să accesăm opțiunile de pornire procedând astfel:
sudo nano /boot/config.txt
Și apoi lipiți una dintre aceste linii în fișierul de configurare:
display_rotate = 0
display_rotate = 1
display_rotate = 2
display_rotate = 3
Primul, 0, este configurația normală. 1 Va fi de 90 de grade, 2 sunt de 180 de grade și ultimul va fi de 270 de grade.
Apoi reporniți.
sudo reboot
Pasul 2: Instalarea oglinzii
Acum vom configura un loc pentru descărcarea codului meu.
cd / home / pi /
git clone https://github.com/nielsdewulf/Mirror MirrorProject cd MirrorProject
Acum vom copia câteva dosare la destinația corectă
sudo cp -R frontend / mirror / / var / www / html / mirror /
sudo cp -R frontend / dashboard / / var / www / html / Sudo cp -R backend / / home / pi / Mirror /
Instalarea bazei de date este un pas necesar în realizarea proiectului.
sudo mysql -u root -p << CREATEDATABASE.sql
Pasul 3: Configurare
Fișierul de configurare se află la:
sudo nano /home/pi/Mirror/resources/config.ini
Introduceți utilizatorul și parola MYSQL.
Acesta trebuie să fie utilizatorul mysql pe care tocmai l-am făcut.
Celelalte setări le vom trece mai târziu la această instrucțiune.
Pasul 4: API-uri
Acum am terminat instalarea Pi, vom acoperi câteva subiecte pe care poate doriți să le faceți.
Cer intunecat
Creați o cheie API Darsky prin
După ce vă înregistrați, veți vedea cheia API pe tabloul de bord.
Introduceți această cheie în fișierul de configurare al proiectului oglindă instalat anterior.
Calendarul
În mod implicit, veți putea utiliza numai adrese URL ical pentru a vă vizualiza calendarul. Dar această parte va fi despre cum să vă legați oglinda de Google Ecosystem. Acesta este un proces în general mai lung și mai dureros.
Lucruri cu siguranță de care ai nevoie
Un nume de domeniu
Acestea sunt lucrurile pe care le vom configura în timpul acestei părți
- Cont CloudFlare
- Cont de dezvoltator Google
- Google Developer Project
- Configurați API-ul Calendar
Pasul 5: Calendarul
Cloudflare
Configurați un cont cloudflare de pe https://cloudflare.com și urmați expertul pentru a transfera numele dvs. de domeniu la Cloudflare DNS.
Nu este nevoie să creați singur o înregistrare A care să indice zmeura pi. Codul meu Mirror va face asta pentru dvs. Deoarece în majoritatea rețelelor Wi-Fi de uz casnic IP-urile nu sunt statice, deci după repornire este posibil să nu mai funcționeze. Pentru ca codul meu să actualizeze automat IP-ul, va fi nevoie de cheia API a contului dvs.
- Faceți clic pe butonul Obțineți cheia API pe tabloul de bord din partea dreaptă. [Foto 1]
- Derulați în jos și vizualizați cheia API globală. [Foto 2]
Introduceți această cheie în fișierul de configurare al proiectului oglindă instalat anterior.
Crearea certificatului SSL
Google ne cere să avem o conexiune SSL. Pentru a porni această secțiune, asigurați-vă că ați configurat corect Cloudflare DNS.
Mai întâi adăugați depozitul.
sudo add-apt-repository ppa: certbot / certbot
Actualizați lista de pachete.
sudo apt-get update
Instalați CertBot
sudo apt instalează python-certbot-apache
Porniți crearea certificatului. Din nou, va trebui să completați numele de domeniu corect.
sudo certbot --apache -d example.com -d www.example.com
După creație, vă va întreba dacă ar trebui să redirecționeze toate conexiunile către SSL. Alegeți redirecționarea.
Acum vă va spune că a creat cu succes un certificat pentru domeniul dvs. Asigurați-vă că salvați cele 2 căi pe care vi le oferă.
- /etc/letsencrypt/live/example.com/cert.pem
- /etc/letsencrypt/live/example.com/privkey.pem
Acum accesați dosarul cu certificatele prin:
Asigurați-vă că schimbați example.com la gazda potrivită.
cd /etc/letsencrypt/live/example.com/
Acum, să copiem conținutul respectiv în folderul nostru de proiect.
cp cert.pem /home/pi/Mirror/resources/certs/cert.pem
Și
cp privkey.pem /home/pi/Mirror/resources/certs/privkey.pem
Conectați Apache cu domeniul dvs.
Pentru a configura Apache corect cu domeniul dvs. va trebui să creăm un fișier de configurare. Asigurați-vă că completați numele domeniului dvs., de exemplu funergydev.com.
sudo nano /etc/apache2/sites-enabled/example.com.conf
Apoi lipiți acest lucru în fișier. Înlocuiți example.com cu numele dvs. de domeniu.
Asigurați-vă că certificatul și cheia privată sunt calea corectă. Setați-le pe calea pe care ați salvat-o mai devreme când am creat apoi prin certbot.
DocumentRoot "/ var / www / html /" SSLEngine on SSLCertificateFile /home/pi/Mirror/resources/certs/cert.pem SSLCertificateKeyFile /home/pi/Mirror/resources/certs/privkey.pem # Alte directive aici Opțiuni Index FollowSymLinks AllowOverride Toate necesită toate acordate
Acum trebuie să activăm unele modificări și apoi să forțăm Apache să reîncarce configul făcând:
sudo a2enmod ssl
sudo a2enmod rewrite
sudo systemctl reîncarcă apache2
Acum ar trebui să puteți merge prin numele dvs. de domeniu la pi și să vedeți pagina implicită apache.
Pasul 6: API Google
Accesați consola pentru dezvoltatori prin
Partea 1
Creați primul dvs. proiect făcând clic lângă sigla Google API și făcând clic pe butonul NOU PROIECT. Completați un nume de proiect adecvat și faceți clic pe butonul de creare. [Foto1]
Partea 2
Acum veți ajunge la această pagină. Faceți clic pe butonul bibliotecă. [Foto2]
Aceasta este o listă mare cu toate API-urile pe care le-ați putea folosi, dar vom căuta API-ul Google Calendar. Faceți clic pe el și apăsați ENABLE. [Foto3]
Veți ajunge apoi la o prezentare generală a API-ului Calendar. Faceți clic pe sigla API-urilor Google pentru a reveni la proiectul dvs. [Foto4]
Partea 3
Pentru a configura totul corect, faceți clic pe categoria acreditări și alegeți fila Verificare domeniu.
Aici va trebui să vă verificați numele de domeniu.
- Faceți clic pe ADĂUGARE DOMENIU
- Completați domeniul dvs.
- Apoi va cere să vă confirmați domeniul. Faceți clic pe Continuați.
- Alegeți furnizorul dvs. de nume de domeniu. [Foto5]
- Urmați procesul
- Acum îl veți putea adăuga în lista de verificare a domeniului de pe consola Google API astfel. Asigurați-vă că domeniul dvs. este verificat. [Foto6]
Partea 4
Acum alegeți fila ecranului de consimțământ OAuth. [Foto7]
Completați numele aplicației
În continuare vom adăuga scopuri pe ecranul de consimțământ. Aceasta înseamnă că vom întreba utilizatorul pe ecranul de consimțământ dacă dorește să împărtășească informațiile despre calendar cu oglinda.
- Faceți clic pe adăugați domeniul de aplicare și căutați calendarul.
- Verificați../auth/calendar.readonly și apăsați adăugare. [Foto8]
Completați un domeniu autorizat. Acesta ar trebui să fie domeniul pe care tocmai l-ați verificat. [Foto9]
Acum faceți clic pe butonul mare de salvare de sub formular.
Partea 5
În cele din urmă, trebuie să creăm acreditările. Deoarece am apăsat butonul de salvare am fost redirecționați la fila acreditări. Faceți clic pe creați acreditări și alegeți ID client OAuth. [Foto10]
Alegeți Tip aplicație: Aplicație Web și dați-i un nume.
Introduceți următorul link în URI-urile de redirecționare autorizate și completați domeniul corect.
example.com:5000/api/v1/setup/calendar/response
Faceți clic pe creați. Acest lucru vă va afișa un popup, faceți clic pe OK. Acum apăsați butonul de descărcare pe acreditările pe care tocmai le-ați făcut
Partea 6
Acum deschideți fișierul JSON și copiați conținutul.
sudo nano /home/pi/Mirror/resources/credentials/credentials.json
Inserați-le aici.
Partea 7
Acum trebuie să ne definim domeniul în config făcând:
sudo nano /home/pi/Mirror/resources/config.ini
Pasul 7: Proiectarea oglinzii
Proiectarea oglinzii dvs. depinde de modul în care doriți. Faceți măsurători precise ale ecranului LCD și lăsați un spațiu de 2 centimetri pe o parte a oglinzii, deoarece senzorul de mișcare al microundelor va sta acolo. Nu poate fi în spatele niciunui metal.
Am conectat 4 scânduri de lemn împreună. Acestea au fost măcinate pentru a avea o față frumoasă și curată a oglinzii. În partea de sus, am făcut și câteva găuri pentru a lăsa sunetul difuzorului să treacă. Partea opusă a oglinzii, partea de jos, am tăiat un mic dreptunghi, astfel încât să pot face cu ușurință cablajul electric. [Foto1]
Acestea sunt 2 bucăți de lemn ieftin pe care monitorul se va bucura. Din moment ce am spus că vom avea nevoie de un spațiu de 2 centimetri între oglindă și carcasă. Am adăugat și 3 bucăți mici de lemn și le-am înșurubat pe acele bucăți de odihnă. Deci monitorul ar rămâne la locul său. [Foto2]
Până la urmă a arătat așa. Am avut o distanță de aproximativ 3 mm între acele piese de odihnă și partea din față a carcasei oglinzii. Suficient pentru a putea pune oglinda bidirecțională de 3 mm grosime. [Foto3]
Pasul 8: Efectuarea cablării
Asigurați-vă că urmați corect una dintre aceste scheme.
Odată ce am făcut cablajul, l-am lipit pe spatele ecranului cu bandă dublă. De vreme ce, dacă aș vrea vreodată să demontez oglinda și să o folosesc pentru alte proiecte, aș putea să o îndepărtez cu ușurință. Dacă sunteți sigur că puteți folosi un pistol de lipit fierbinte și îl puteți lipi pe spatele oglinzii.
Pasul 9: Pornirea codului
LXSession
Să creăm mai întâi câteva foldere
mkdir -p /home/pi/.config/lxsession/LXDE-pi/
Acum vom crea un fișier în care vom specifica câțiva parametri / comenzi de pornire.
sudo nano /home/pi/.config/lxsession/LXDE-pi/autostart
Lipiți următoarele în fișier.
@lxpanel --profil 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
Vom actualiza scriptul ecranului de pornire oglindă pentru a se potrivi cu gazda noastră.
sudo nano /home/pi/Mirror/init_mirror.sh
Alegeți localhost dacă nu utilizați Google Calendar și un domeniu.
#! / bin / bash
sleep 15 chromium-browser --incognito --kiosk https:// localhost / mirror
Dacă îl utilizați, completați gazda.
#! / bin / bash
dormi 15 browser cu crom - incognito --kiosk
Serviciu
Acum vom configura că codul Mirror rulează automat.
Vom crea un serviciu care pornește automat codul pentru noi.
Mergi la:
sudo nano /etc/systemd/system/mirror.service
Și lipiți acest lucru în fișier
[Unitate]
Descriere = Mirror Backend After = network.target mariadb.service [Service] Type = simplu User = root ExecStart = / bin / sh /home/pi/Mirror/init.sh [Install] WantedBy = multi-user.target
Acum va trebui să reîncărcăm demonul systemd procedând astfel:
sudo systemctl daemon-reload
Și vom permite, de asemenea, serviciul să pornească automat la pornire.
sudo systemctl activate mirror
Acum vom opri.
sudo poweroff
Setările finale
În cele din urmă, trebuie să ne eliminăm ip-ul APIPA, astfel încât să funcționeze doar pe WiFi.
- Accesați directorul de pornire al cardului SD de pe computer.
- Deschideți fișierul „cmdline.txt”
- Eliminați ip = 169.254.10.1 La sfârșitul liniei lungi de text.
Pasul 10: Rularea oglinzii
Accesați ip-ul care apare pe ecranul oglindă sau, dacă ați configurat calendarul Google, completați numele domeniului.
Acum veți putea să vă configurați oglinda!
Dacă primiți o eroare SSL pe oglindă, vă recomandăm să adăugați certificatele dvs. în magazinul de certificate Chromium.
Recomandat:
C.Q: o oglindă inteligentă DIY: 5 pași
C.Q: a DIY Smart Mirror: Suntem Katrina Concepcion și Adil Qaiser, ambii studenți de la WBASD STEM Academy. Acesta este proiectul pe care l-am fi colaborat și realizat pentru cel mai bun premiu din acest an. Când am decis să facem acest proiect, am avut în vedere „care ar fi cel mai mult e
Cum să creați o oglindă portabilă inteligentă / să faceți o cutie combinată: 8 pași
Cum să creez o oglindă portabilă inteligentă / compuneți o cutie combinată: Ca proiect final pentru capstone-ul meu de la Davis & Colegiul Elkins, mi-am propus să proiectez și să creez o cutie de călătorie, împreună cu o oglindă mai mare și utilizarea unui pi zmeură și a platformei software oglindă magică, care ar funcționa ca un port
Cum să construiești o oglindă inteligentă cu Raspberry Pi 4: 10 pași
Cum să construiți o oglindă inteligentă cu Raspberry Pi 4: În acest ghid vom vedea cum să construiți o oglindă inteligentă folosind piese reciclate, cum ar fi o ramă, un monitor vechi și o sticlă. Pentru componentele electronice pe care le-am achiziționat de aici www.lcsc .com
Oglindă inteligentă: 5 pași
Oglindă inteligentă: această instrucțiune vă va învăța cum să creați o oglindă inteligentă care să afișeze căsuța de e-mail, cele mai recente știri și actualizări de pe The New York Times și data și ora pe un fundal de la Unsplash. Link-ul funcționării: consumabile necesare: un cadru pentru
Cum să faci o oglindă inteligentă DIY: 12 pași (cu imagini)
Cum se face o oglindă inteligentă DIY: o „Oglindă inteligentă” este o oglindă bidirecțională cu un afișaj în spate care este de obicei folosit pentru a afișa informații utile precum ora și data, vremea, calendarul dvs. și tot felul de alte lucruri! Oamenii le folosesc în tot felul de scopuri