Taula de continguts:

Mirall intel·ligent multiusuari amb Google Calendar: 10 passos
Mirall intel·ligent multiusuari amb Google Calendar: 10 passos

Vídeo: Mirall intel·ligent multiusuari amb Google Calendar: 10 passos

Vídeo: Mirall intel·ligent multiusuari amb Google Calendar: 10 passos
Vídeo: XMAX Family 2023 New Yamaha XMAX 125 & XMAX 300 Tech Max 2024, Desembre
Anonim
Mirall intel·ligent multiusuari amb Google Calendar
Mirall intel·ligent multiusuari amb Google Calendar
Mirall intel·ligent multiusuari amb Google Calendar
Mirall intel·ligent multiusuari amb Google Calendar

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ó

  1. Seleccioneu la vostra imatge mitjançant la icona de la carpeta
  2. Seleccioneu la vostra targeta SD mitjançant el menú desplegable
  3. Feu clic a escriure

Ara haurem de fer algunes modificacions addicionals amb algunes opcions per poder accedir al Pi.

  1. Aneu al directori d’arrencada de la targeta SD
  2. Obriu el fitxer "cmdline.txt"
  3. Afegiu ip = 169.254.10.1 Al final de la llarga línia de text separada amb un espai (a la mateixa línia).
  4. Deseu el fitxer.
  5. 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.

  1. Instal·leu Putty des de
  2. Introduïu 169.254.10.1 al quadre IP.
  3. Assegureu-vos que SSH està seleccionat i que s’omple el port 22.
  4. Feu clic a obre
  5. Empleneu el nom d’usuari: pi
  6. 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

Instal·lació del mirall
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

El calendari
El calendari
El calendari
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.

  1. Feu clic al botó Obtén la clau de l'API al tauler de control de la part dreta. [Foto 1]
  2. 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

API de Google
API de Google
API de Google
API de Google
API de Google
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.

  1. Feu clic a AFEGEIX UN DOMINI
  2. Empleneu el vostre domini
  3. A continuació, us demanarà que verifiqueu el vostre domini. Feu clic a Continua.
  4. Trieu el vostre proveïdor de noms de domini. [Foto5]
  5. Seguiu el procés
  6. 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.

  1. Feu clic a Afegeix abast i cerqueu el calendari.
  2. 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

El disseny del mirall
El disseny del mirall
El disseny del mirall
El disseny del mirall
El disseny del mirall
El disseny del mirall
El disseny del mirall
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

Fent el cablejat
Fent el cablejat
Fent el cablejat
Fent el cablejat
Fent el cablejat
Fent 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

Inici del codi
Inici del codi
Inici del codi
Inici del codi
Inici del codi
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.

  1. Aneu al directori d’arrencada de la targeta SD del vostre PC.
  2. Obriu el fitxer "cmdline.txt"
  3. Elimina ip = 169.254.10.1 Al final de la llarga línia de text.

Pas 10: executar el mirall

Executant el mirall
Executant el mirall
Executant el mirall
Executant el mirall
Executant el mirall
Executant el mirall
Executant el mirall
Executant 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: