Taula de continguts:
- Subministraments
- Pas 1: Configuració
- Pas 2: Instal·lació del mirall
- Pas 3: Configuració
- Pas 4: API
- Pas 5: el calendari
- Pas 6: API de Google
- Pas 7: el disseny del mirall
- Pas 8: fer el cablejat
- Pas 9: Inici del codi
- Pas 10: executar el mirall
Vídeo: Mirall intel·ligent multiusuari amb Google Calendar: 10 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:13
En aquest instructiu, crearem un mirall intel·ligent integrat amb Google Calendar. He fet aquest projecte perquè trobo que els miralls intel·ligents són realment genials, al matí són un regal de Déu. Però vaig decidir fer-ne un de zero perquè tots els altres tenen un defecte. Estan massa avançats i desordenats. Vaig decidir ser tan senzill.
Subministraments
Abans
començarem: aquestes són les coses que definitivament necessitareu per construir un Mirall com el meu. Aquests subministraments costaran entre 250 i 350 euros segons la vostra regió i els preus actuals.
Maquinari
Sensors
- Un sensor de temperatura per cable
- RWCL 0516 (sensor de moviment de microones)
- Potenciòmetre suau (Touchstrip de Sparkfun)
Informàtica
i IC’s
- Altaveu (3,2W a 4Ω O 1,8W a 8Ω)
- MCP3008
- Adafruit I2S 3W Classe D Amplificador Breakout - MAX98357A
- Raspberry Pi 3 B +
- Targeta SD (8 GB està bé)
- Resistència 4,7K Ohm
Diversos
- Jumperwires
- Taula de pa
- Mirall bidireccional acrílic (transmissió de llum del 15%)
- Monitor IPS (la mida depèn de la mida que vulgueu)
- Cable HDMI
- Fusta
Programari
- MASSETA
- Editor de codi (el Bloc de notes ++ és suficient)
- Imatge de disc Win32
- Imatge del sistema operatiu Raspbian
Pas 1: Configuració
Per començar, primer haurem de configurar el vostre Pi per al codi que he creat.
Necessitareu dues coses:
- Imatge de disc Win32 de
- Imatge del sistema operatiu Raspbian de
Baixeu-vos el fitxer ZIP i extraieu-lo on vulgueu.
La instal·lació
- Seleccioneu la vostra imatge mitjançant la icona de la carpeta
- Seleccioneu la vostra targeta SD mitjançant el menú desplegable
- Feu clic a escriure
Ara haurem de fer algunes modificacions addicionals amb algunes opcions per poder accedir al Pi.
- Aneu al directori d’arrencada de la targeta SD
- Obriu el fitxer "cmdline.txt"
- Afegiu ip = 169.254.10.1 Al final de la llarga línia de text separada amb un espai (a la mateixa línia).
- Deseu el fitxer.
- Creeu un fitxer anomenat ssh sense cap extensió al mateix directori
Ara podeu expulsar la targeta SD i posar-la al Pi.
Connectant
Ara haurem de configurar el programari.
Connecteu primer un cable LAN, un extrem a l’escriptori / portàtil i l’altre al Pi.
Ara arrenceu el Raspberry Pi.
- Instal·leu Putty des de
- Introduïu 169.254.10.1 al quadre IP.
- Assegureu-vos que SSH està seleccionat i que s’omple el port 22.
- Feu clic a obre
- Empleneu el nom d’usuari: pi
- Empleneu la contrasenya: gerd
Raspi-config
Obriu la utilitat Raspi-config mitjançant:
sudo raspi-config
Activeu les opcions següents a la categoria d'interfícies
- 1-Cable
- SPI
Trieu el vostre país WiFi mitjançant la categoria de localització.
A continuació, desactiveu les opcions següents a la categoria d'opcions d'arrencada
Pantalla de benvinguda
Per últim, configureu el paràmetre Escriptori / CLI a la categoria d’opcions d’arrencada a Autologin de l’escriptori.
WiFi
Per al mirall, hem de tenir una connexió wifi, així que assegureu-vos que teniu les vostres credencials wifi.
Aneu al mode arrel
sudo -i
Enganxeu aquesta línia però assegureu-vos que el SSID i la contrasenya estiguin emplenats
wpa_passphrase "SSID" "CONTRASENYA" >> /etc/wpa_supplicant/wpa_supplicant.conf
Introduïu el client WPA.
wpa_cli
Seleccioneu la interfície
interfície wlan0
Torneu a carregar la configuració
reconfigurar
Assegureu-vos que esteu connectat correctament escrivint …
ip a
… i veient si teniu una IP a les interfícies WLAN0.
Paquets
Ara que estem connectats a Internet haurem d’instal·lar alguns paquets.
Primer haurem d’actualitzar les llistes de paquets de la darrera.
actualització sudo apt
Python
Obligarem Raspbian a utilitzar Python 3
update-alternatives --install / usr / bin / python python /usr/bin/python2.7 1
actualització-alternatives --install / usr / bin / python python / usr / bin / python3 2
MariaDB
Enganxeu la línia següent per instal·lar la base de dades.
sudo apt install mariadb-server
Després haurem de protegir la nostra instal·lació.
mysql_secure_installation
Ens demanarà la contrasenya d’arrel actual, ja que no en tenim cap, només cal prémer Retorn.
A continuació, es pregunta si volem escriure una contrasenya root en y, ja que en volem una.
Per a les properes preguntes, introduïu Y.
Per últim, crearem un usuari que podrem utilitzar per al mirall.
Introduïu l'intèrpret d'ordres mysql fent:
Elevem-nos a l’arrel
sudo -i
Introduïu l'intèrpret d'ordres mysql
mysql
Substituïu-lo pel vostre propi nom d'usuari i el mateix amb
concedeix tots els privilegis al mirall. * a '' @ '%' identificat per '';
Ara buidem la taula de permisos.
PRIVILEGIS DE FLUSH;
Servidor web Apache
Per instal·lar el servidor web, executeu la línia següent.
sudo apt install apache2 -y
Paquets Python
Instal·larem aquests paquets
- Flascó
- Flask-Cors
- Flask-MySQL
- Flask-SocketIO
- PyMySQL
- Flascó-talismà
- Gevent
- Gevent-websocket
- Google-api-python-client
- Google-auth
- Google-auth-httplib2
- Google-auth-oauthlib
- Httplib2
- Icalendar
- Icalevents
- Oauthlib
- Python-socketio
- Sol·licituds
- Wsaccel
- Ujson
Fent-ho
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
Configuració dels altaveus
curl -sS https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/i2samp.sh | bash
Ara hem de reiniciar, així que premeu y.
Torneu a executar el guió
curl -sS https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/i2samp.sh | bash
Ara hem de reiniciar una segona vegada
sudo reiniciar
Pantalla (monitor)
Depenent de com vulgueu l'orientació de la pantalla, és possible que vulgueu girar la pantalla.
Per girar la pantalla, hem d’accedir a les opcions d’arrencada fent:
sudo nano /boot/config.txt
A continuació, enganxeu una d'aquestes línies al fitxer de configuració:
display_rotate = 0
display_rotate = 1
display_rotate = 2
display_rotate = 3
El primer, 0, és la configuració normal. 1 serà de 90 graus, 2 de 180 graus i l'últim serà de 270 graus.
A continuació, reinicieu.
sudo reiniciar
Pas 2: Instal·lació del mirall
Ara configurarem un lloc per descarregar el meu codi.
cd / home / pi /
git clone https://github.com/nielsdewulf/Mirror MirrorProject cd MirrorProject
Ara copiarem algunes carpetes a la destinació correcta
sudo cp -R frontend / mirror / / var / www / html / mirror /
sudo cp -R frontend / dashboard / / var / www / html / Sudo cp -R backend / / home / pi / Mirror /
Instal·lar la base de dades és un pas necessari per fer el projecte.
sudo mysql -u root -p << CREATEDATABASE.sql
Pas 3: Configuració
El fitxer de configuració es troba a:
sudo nano /home/pi/Mirror/resources/config.ini
Introduïu l’usuari i la contrasenya de MYSQL.
Aquest ha de ser l’usuari mysql que acabem de fer.
Les altres opcions de configuració les revisarem més endavant, és instructiva.
Pas 4: API
Ara hem acabat la instal·lació del Pi, tractarem alguns temes que potser voldreu fer.
Darksky
Creeu una clau API Darsky mitjançant
Quan us hàgiu registrat, veureu la vostra clau API al tauler.
Introduïu aquesta clau al fitxer de configuració del projecte mirror que heu instal·lat abans.
El calendari
Per defecte, només podreu utilitzar URL ical per veure el vostre calendari. Però aquesta part tractarà sobre com enllaçar el vostre mirall amb l'ecosistema de Google. Aquest és un procés generalment més llarg i dolorós.
Coses que definitivament necessiteu
Un nom de domini
Aquestes són les coses que configurarem durant aquesta part
- Compte CloudFlare
- Compte de desenvolupador de Google
- Projecte per a desenvolupadors de Google
- Configureu l'API Calendar
Pas 5: el calendari
Cloudflare
Configureu un compte cloudflare des de https://cloudflare.com i seguiu l’assistent per transferir el vostre nom de domini a Cloudflare DNS.
No cal crear un registre A que indiqui el raspberry pi. El codi My Mirror ho farà per vosaltres. Com que a la majoria de wifi domèstics, les IP no són estàtiques, de manera que després de reiniciar-les potser ja no funcionarà. Per tenir el meu codi actualitzat automàticament, necessitarà la clau de l'API del vostre compte.
- Feu clic al botó Obtén la clau de l'API al tauler de control de la part dreta. [Foto 1]
- Desplaceu-vos cap avall i visualitzeu la vostra clau API global. [Foto 2]
Introduïu aquesta clau al fitxer de configuració del projecte mirror que heu instal·lat abans.
Creació del certificat SSL
Google requereix que tinguem una connexió SSL. Per iniciar aquesta secció, assegureu-vos que heu configurat correctament el DNS de Cloudflare.
Primer afegiu el dipòsit.
sudo add-apt-repository ppa: certbot / certbot
Actualitzeu la llista de paquets.
sudo apt-get update
Instal·leu CertBot
sudo apt install python-certbot-apache
Inicieu la creació del certificat. Una vegada més, haureu d'omplir el nom de domini correcte.
sudo certbot --apache -d example.com -d www.example.com
Després de la creació, us preguntarà si ha de redirigir totes les connexions a SSL. Trieu la redirecció.
Ara us indicarà que ha creat amb èxit un certificat per al vostre domini. Assegureu-vos de desar els 2 camins que us proporciona.
- /etc/letsencrypt/live/example.com/cert.pem
- /etc/letsencrypt/live/example.com/privkey.pem
Ara aneu a la carpeta amb els certificats a través de:
Assegureu-vos de canviar example.com a l’amfitrió adequat.
cd /etc/letsencrypt/live/example.com/
Ara copiem aquests continguts a la nostra carpeta del projecte.
cp cert.pem /home/pi/Mirror/resources/certs/cert.pem
I
cp privkey.pem /home/pi/Mirror/resources/certs/privkey.pem
Connecteu Apache amb el vostre domini
Per configurar Apache correctament amb el vostre domini haurem de crear un fitxer de configuració. Assegureu-vos d'emplenar el vostre nom de domini, per exemple funergydev.com.
sudo nano /etc/apache2/sites-enabled/example.com.conf
A continuació, enganxeu-lo al fitxer. Substituïu example.com pel vostre nom de domini.
Assegureu-vos que el certificat i la clau privada siguin el camí correcte. Establiu-los al camí que heu desat abans quan el vam crear a través de certbot.
DocumentRoot "/ var / www / html /" SSLEngine on SSLCertificateFile /home/pi/Mirror/resources/certs/cert.pem SSLCertificateKeyFile /home/pi/Mirror/resources/certs/privkey.pem # Altres directives aquí Opcions Índexs FollowSymLinks AllowOverride Tots requereixen tots els concedits
Ara hem d’habilitar algunes modificacions i forçar Apache a tornar a carregar la configuració fent:
sudo a2enmod ssl
reescriure sudo a2enmod
sudo systemctl recarrega apache2
Ara hauríeu de poder anar a través del vostre nom de domini al vostre pi i veure la pàgina predeterminada de l'apache.
Pas 6: API de Google
Aneu a la consola per a desenvolupadors a través de
Part 1
Creeu el vostre primer projecte fent clic al costat del logotip de l'API de Google i fent clic al botó NOU PROJECTE. Empleneu el nom del projecte adequat i feu clic al botó de creació. [Foto1]
Part 2
Ara accedireu a aquesta pàgina. Feu clic al botó de la biblioteca. [Foto2]
Aquesta és una llista important de totes les API que podeu utilitzar, però anem a buscar l'API de Google Calendar. Feu-hi clic i premeu ENABLE. [Foto3]
A continuació, arribareu a una visió general de l'API de Calendar. Feu clic al logotip de les API de Google per tornar al vostre projecte. [Foto4]
Part 3
Per configurar-ho tot correctament, feu clic a la categoria de credencials i trieu la pestanya Verificació del domini.
Aquí haureu de verificar el vostre nom de domini.
- Feu clic a AFEGEIX UN DOMINI
- Empleneu el vostre domini
- A continuació, us demanarà que verifiqueu el vostre domini. Feu clic a Continua.
- Trieu el vostre proveïdor de noms de domini. [Foto5]
- Seguiu el procés
- Ara podreu afegir-lo a la llista de verificació de dominis de la consola API de Google així. Assegureu-vos que el vostre domini estigui marcat. [Foto6]
Part 4
Ara trieu la pestanya de la pantalla de consentiment d'OAuth. [Foto7]
Empleneu el nom de la sol·licitud
A continuació, afegirem àmbits a la pantalla de consentiment. Això vol dir que preguntarem a l’usuari a la pantalla de consentiment si vol compartir la informació del seu calendari amb el mirall.
- Feu clic a Afegeix abast i cerqueu el calendari.
- Comproveu../auth/calendar.readonly i premeu Afegeix. [Foto8]
Empleneu un domini autoritzat. Aquest hauria de ser el domini que acabeu de verificar. [Foto9]
Ara feu clic al botó Desa gran que hi ha a sota del formulari.
Part 5
Per últim, hem de crear les credencials. Com que hem premut el botó Desa, ens han redirigit a la pestanya de credencials. Feu clic a crear credencials i trieu Identificador de client OAuth. [Foto10]
Trieu Tipus d'aplicació: Aplicació web i doneu-li un nom.
Introduïu el següent enllaç als URI de redirecció autoritzats i empleneu el domini correcte.
example.com:5000/api/v1/setup/calendar/response
Feu clic a crear. Això us mostrarà una finestra emergent, feu clic a D'acord. Ara premeu el botó de baixada de les credencials que acabeu de fer
Part 6
Ara obriu el fitxer JSON i copieu el contingut.
sudo nano /home/pi/Mirror/resources/credentials/credentials.json
Enganxeu-los aquí.
Part 7
Ara hem de definir el nostre domini a la configuració fent:
sudo nano /home/pi/Mirror/resources/config.ini
Pas 7: el disseny del mirall
Dissenyar el mirall depèn de com ho desitgi. Feu mesures precises de la pantalla LCD i deixeu un espai de 2 centímetres a un costat del mirall, ja que el sensor de moviment de microones estarà assegut allà. No pot estar darrere de cap metall.
Vaig connectar 4 taulons de fusta junts. Aquests es van fresar per tenir un bonic frontal net del mirall. A la part superior també vaig perforar un parell de forats per deixar passar el so de l’altaveu. Al costat oposat del mirall, a la part inferior, vaig tallar un petit rectangle per poder fer fàcilment el cablejat elèctric. [Foto1]
Es tracta de 2 peces de fusta barata on el monitor es quedarà molt bé. Com ja he dit, necessitaríem un buit d’uns 2 centímetres entre el mirall i la caixa. També he afegit 3 trossets de fusta i els he cargolat en aquelles peces que descansaven. Per tant, el monitor es mantindria al seu lloc. [Foto2]
Al final semblava així. Tenia aproximadament un espai de 3 mm entre aquestes peces de descans i la part frontal de la caixa del mirall. N'hi ha prou per posar-hi el mirall bidireccional de 3 mm de gruix. [Foto3]
Pas 8: fer el cablejat
Assegureu-vos de seguir correctament un d’aquests esquemes.
Un cop vaig fer el cablejat, el vaig enganxar a la part posterior de la pantalla amb cinta de doble cara. Com que si alguna vegada volgués desmuntar el mirall i fer-lo servir per a altres projectes, podria eliminar-lo fàcilment. Si esteu segur, podeu utilitzar una pistola de cola calenta i enganxar-la a la part posterior del mirall.
Pas 9: Inici del codi
LXSession
Primer creem un parell de carpetes
mkdir -p /home/pi/.config/lxsession/LXDE-pi/
Ara crearem un fitxer on especificarem un parell de paràmetres / ordres d’inici.
sudo nano /home/pi/.config/lxsession/LXDE-pi/autostart
Enganxeu el següent al fitxer.
@lxpanel --profile 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
Actualitzarem l’escript de la pantalla de mirall d’inici perquè coincideixi amb el nostre amfitrió.
sudo nano /home/pi/Mirror/init_mirror.sh
Trieu localhost si no feu servir Google Calendar i un domini.
#! / bin / bash
dormir 15 Chrome-browser --incognito --kiosk https:// localhost / mirror
Si el feu servir, empleneu el vostre amfitrió.
#! / bin / bash
dormir 15 navegador de crom - incògnit --kiosk
Servei
Ara configurarem que el codi Mirror s'executi automàticament.
Crearem un servei que iniciarà automàticament el codi.
Anar a:
sudo nano /etc/systemd/system/mirror.service
I enganxeu-lo al fitxer
[Unitat]
Descripció = Mirall Backend After = network.target mariadb.service [Servei] Tipus = simple Usuari = root ExecStart = / bin / sh /home/pi/Mirror/init.sh [Instal·lar] WantedBy = multi-usuari.target
Ara haurem de tornar a carregar el dimoni systemd fent:
sudo systemctl daemon-recoad
I també habilitarem el servei per iniciar-se automàticament en arrencar.
sudo systemctl habilita la rèplica
Ara ens apagarem.
sudo poweroff
La configuració final
Finalment, hem d’eliminar la nostra IP APIPA perquè només funcioni amb WiFi.
- Aneu al directori d’arrencada de la targeta SD del vostre PC.
- Obriu el fitxer "cmdline.txt"
- Elimina ip = 169.254.10.1 Al final de la llarga línia de text.
Pas 10: executar el mirall
Visiteu la IP que apareix a la pantalla rèplica o si heu configurat el calendari de Google, empleneu el nom de domini.
Ara podreu configurar el vostre mirall.
Si obteniu un error SSL al vostre mirall, és possible que vulgueu afegir els vostres certificats al magatzem de certificats de Chromium.
Recomanat:
Llum LED d'escriptori intel·ligent - Il·luminació intel·ligent amb Arduino - Espai de treball Neopixels: 10 passos (amb imatges)
Llum LED d'escriptori intel·ligent | Il·luminació intel·ligent amb Arduino | Espai de treball de Neopixels: ara passem molt de temps a casa estudiant i treballant virtualment, per què no fer que el nostre espai de treball sigui més gran amb un sistema d’il·luminació personalitzat i intel·ligent basat en els LEDs Arduino i Ws2812b. Aquí us mostro com construir el vostre Smart Llum LED d'escriptori que
Converteix un telèfon intel·ligent no utilitzat en una pantalla intel·ligent: 6 passos (amb imatges)
Converteix un telèfon intel·ligent no utilitzat en una pantalla intel·ligent: el tutorial de Deze es troba a Engels, per a la versió del clàssic espanyol. Teniu un telèfon intel·ligent (antic) sense utilitzar? Convertiu-lo en una pantalla intel·ligent amb Fulls de càlcul de Google i paper i llapis seguint aquest senzill tutorial pas a pas. Quan hagis acabat
Làmpada LED intel·ligent controlada per telèfon intel·ligent Bluetooth: 7 passos
Làmpada LED intel·ligent controlada per telèfon intel·ligent Bluetooth: sempre somio amb controlar els meus aparells d’il·luminació. Aleshores algú va fabricar una increïble llum LED de colors. Fa poc em vaig trobar amb una làmpada LED de Joseph Casha a Youtube. Inspirant-me en ell, vaig decidir afegir diverses funcions mantenint la comoditat
Rellotge despertador intel·ligent: un despertador intel·ligent fabricat amb Raspberry Pi: 10 passos (amb imatges)
Rellotge despertador intel·ligent: un rellotge despertador intel·ligent fet amb Raspberry Pi: Heu volgut mai un rellotge intel·ligent? Si és així, aquesta és la solució per a vosaltres. He creat Smart Alarm Clock (Rellotge despertador intel·ligent), aquest és un rellotge que permet canviar l’hora de l’alarma segons el lloc web. Quan l’alarma s’activi, hi haurà un so (brunzidor) i 2 llums
Com controlar l'interruptor intel·ligent bàsic Sonoff basat en ESP8266 amb un telèfon intel·ligent: 4 passos (amb imatges)
Com controlar el commutador intel·ligent bàsic de Sonoff basat en ESP8266 amb un telèfon intel·ligent: Sonoff és una línia de dispositius per a Smart Home desenvolupada per ITEAD. Un dels dispositius més flexibles i econòmics d’aquesta línia és Sonoff Basic. És un commutador habilitat per Wi-Fi basat en un gran xip, ESP8266. En aquest article es descriu com configurar el Cl