Sommario:

Specchio intelligente multiutente con Google Calendar: 10 passaggi
Specchio intelligente multiutente con Google Calendar: 10 passaggi

Video: Specchio intelligente multiutente con Google Calendar: 10 passaggi

Video: Specchio intelligente multiutente con Google Calendar: 10 passaggi
Video: Представлен прототип умного зеркала ProjectFairytale 2024, Dicembre
Anonim
Specchio intelligente multiutente con Google Calendar
Specchio intelligente multiutente con Google Calendar
Specchio intelligente multiutente con Google Calendar
Specchio intelligente multiutente con Google Calendar

In questo tutorial creeremo uno specchio intelligente integrato con Google Calendar. Ho realizzato questo progetto perché trovo gli specchi intelligenti davvero fantastici, sono una manna dal cielo al mattino. Ma ho deciso di farne uno da zero perché tutti gli altri hanno 1 difetto. Sono troppo avanzati e disordinati. Ho deciso di mantenere questo semplice.

Forniture

Prima

inizieremo queste sono le cose di cui avrai sicuramente bisogno per costruire uno Specchio come il mio. Queste forniture costeranno da 250 a 350 euro a seconda della regione e dei prezzi correnti.

Hardware

Sensori

  • Un sensore di temperatura a filo
  • RWCL 0516 (Sensore di movimento a microonde)
  • Potenziometro morbido (Touchstrip di Sparkfun)

informatica

e IC

  • Altoparlante (3,2 W a 4 O 1,8 W a 8)
  • MCP3008
  • Adafruit I2S 3W Amplificatore Classe D Breakout - MAX98357A
  • Raspberry Pi 3 B+
  • Scheda SD (8 GB va bene)
  • Resistenza 4,7K Ohm

Varie

  • Ponticelli
  • tagliere
  • Specchio bidirezionale acrilico (trasmissione luminosa 15%)
  • Monitor IPS (la dimensione dipende da quanto grande lo vuoi)
  • Cavo HDMI
  • Legna

Software

  • PuTTY
  • Editor di codice (Notepad++ è sufficiente)
  • Imager disco Win32
  • Immagine del sistema operativo Raspbian

Passaggio 1: configurazione

Per iniziare, dovremo prima configurare il tuo Pi per il codice che ho creato.

Avrai bisogno di due cose:

  • Win32 Disk Imager da
  • Immagine del sistema operativo Raspbian da

Scarica il file ZIP ed estrailo dove vuoi.

L'installazione

  1. Seleziona la tua immagine tramite l'icona della cartella
  2. Seleziona la tua scheda SD tramite il menu a discesa
  3. Clicca su scrivi

Ora dovremo fare qualche ritocco extra con alcune impostazioni in modo da poter accedere al Pi.

  1. Vai alla directory di avvio della scheda SD
  2. Apri il file "cmdline.txt"
  3. Aggiungi ip=169.254.10.1 Alla fine della lunga riga di testo separata da uno spazio (sulla stessa riga).
  4. Salva il file.
  5. Crea un file chiamato ssh senza estensione nella stessa directory

Ora puoi espellere la scheda SD e inserirla nel tuo Pi.

Collegamento

Ora dovremo configurare il software.

Innanzitutto collega un cavo LAN, un'estremità nel desktop/laptop e l'altra nel Pi.

Ora avvia il Raspberry Pi.

  1. Installa Putty da
  2. Immettere 169.254.10.1 nella casella IP.
  3. Assicurati che SSH sia selezionato e che la porta 22 sia compilata.
  4. Fare clic su Apri
  5. Inserisci il nome utente: pi
  6. Inserisci la password: lampone

Raspi-config

Apri l'utility Raspi-config usando:

sudo raspi-config

Abilita le seguenti opzioni nella categoria interfacce

  • 1-filo
  • SPI

Scegli il tuo paese WiFi tramite la categoria di localizzazione.

Quindi, disabilita le seguenti opzioni nella categoria delle opzioni di avvio

Schermata iniziale

Infine, imposta l'impostazione Desktop/CLI nella categoria delle opzioni di avvio su Desktop Autologin.

Wifi

Per il mirror abbiamo bisogno di una connessione wifi quindi assicurati di avere le tue credenziali wifi vicine.

Vai in modalità root

sudo -i

Incolla questa riga ma assicurati che SSID e Password siano entrambi compilati

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

Entra nel client WPA.

wpa_cli

Seleziona l'interfaccia

interfaccia wlan0

Ricarica la configurazione

riconfigurare

Assicurati di essere connesso correttamente digitando…

ip a

…e vedere se hai un IP sulle interfacce WLAN0.

Pacchetti

Ora che siamo connessi a Internet dovremo installare alcuni pacchetti.

Per prima cosa dovremo aggiornare gli elenchi dei pacchetti per l'ultimo.

sudo apt update

Pitone

Obbligheremo Raspbian a usare 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

Maria DB

Incolla la seguente riga per installare il database.

sudo apt install mariadb-server

Quindi dovremo rendere sicura la nostra installazione.

mysql_secure_installation

Ci chiederà la password di root corrente poiché non ne abbiamo una, basta premere invio.

Successivamente viene chiesto se vogliamo un tipo di password di root in y poiché ne vogliamo uno.

Per le prossime domande basta inserire Y.

Infine creeremo un utente che potremo usare per il mirror.

Entra nella shell mysql facendo:

Elevarci alla radice

sudo -i

Entra nella shell di mysql

mysql

Sostituisci con il tuo nome utente e lo stesso con

concedere tutti i privilegi su mirror.* a ''@'%' identificato da '';

Ora svuotiamo la tabella dei permessi.

PRIVILEGI DI SCARICO;

Server Web Apache

Per installare il Webserver eseguire la riga sottostante.

sudo apt install apache2 -y

Pacchetti Python

Stiamo per installare questi pacchetti

  • Borraccia
  • Flask-Cors
  • Flask-MySQL
  • Flask-SocketIO
  • PyMySQL
  • Pallone-talismano
  • Gevent
  • Gevent-websocket
  • Google-api-python-client
  • Google-auth
  • Google-auth-httplib2
  • Google-auth-oauthlib
  • Httplib2
  • calendario
  • Icalevents
  • Oauthlib
  • Python-socketio
  • Richieste
  • Wsaccel
  • Ujson

Facendo

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 oauthacceio python richiestej

Configurazione degli altoparlanti

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

Ora dobbiamo riavviare, quindi premi y.

Riesegui lo script

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

Ora dobbiamo riavviare una seconda volta

sudo reboot

Schermo (monitor)

A seconda di come desideri l'orientamento dello schermo, potresti voler ruotare lo schermo.

Per ruotare lo schermo dobbiamo accedere alle opzioni di avvio facendo:

sudo nano /boot/config.txt

E poi incollando una di queste righe nel file di configurazione:

display_rotate=0

display_rotate=1

display_rotate=2

display_rotate=3

Il primo, 0, è la configurazione normale. 1 sarà di 90 gradi, 2 è di 180 gradi e l'ultimo sarà di 270 gradi.

Quindi riavviare.

sudo reboot

Passaggio 2: installazione dello specchio

Installazione dello specchio
Installazione dello specchio

Ora imposteremo un posto dove scaricare il mio codice.

cd /home/pi/

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

Ora copieremo alcune cartelle nella destinazione corretta

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

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

L'installazione del database è un passaggio necessario per realizzare il progetto.

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

Passaggio 3: configurazione

Il file di configurazione si trova in:

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

Immettere l'utente e la password MYSQL.

Questo deve essere l'utente mysql che abbiamo appena creato.

Le altre impostazioni che esamineremo più avanti in questa istruzione.

Passaggio 4: API

Ora che abbiamo terminato l'installazione del Pi tratteremo alcuni argomenti che potresti voler fare.

Cielo scuro

Crea una chiave API Darsky tramite

Quando ti sarai registrato vedrai la tua chiave API sulla Dashboard.

Inserisci questa chiave nel file di configurazione del progetto mirror che hai installato in precedenza.

Il calendario

Per impostazione predefinita sarai in grado di utilizzare solo gli URL ical da cui visualizzare il tuo calendario. Ma questa parte riguarderà come collegare il tuo mirror all'ecosistema di Google. Questo è un processo generalmente più lungo e più doloroso.

Cose di cui avrai sicuramente bisogno

Un nome di dominio

Queste sono le cose che imposteremo durante questa parte

  • Account CloudFlare
  • Account sviluppatore Google
  • Progetto per sviluppatori Google
  • Imposta l'API del calendario

Passaggio 5: il calendario

Il calendario
Il calendario
Il calendario
Il calendario

Cloudflare

Configura un account cloudflare da https://cloudflare.com e segui la procedura guidata per trasferire il tuo nome di dominio a Cloudflare DNS.

Non c'è bisogno di creare un record A che punti al lampone pi. Il mio codice Mirror lo farà per te. Poiché nella maggior parte dei wifi domestici gli IP non sono statici, quindi dopo il riavvio potrebbe non funzionare più. Per fare in modo che il mio codice aggiorni automaticamente l'ip, sarà necessaria la chiave API del tuo account.

  1. Fai clic sul pulsante Ottieni la tua chiave API nella dashboard sul lato destro. [Foto 1]
  2. Scorri verso il basso e visualizza la tua chiave API globale. [Foto 2]

Inserisci questa chiave nel file di configurazione del progetto mirror che hai installato in precedenza.

Creazione del certificato SSL

Google ci richiede di avere una connessione SSL. Per iniziare questa sezione assicurati di aver configurato correttamente il DNS di Cloudflare.

Per prima cosa aggiungi il repository.

sudo add-apt-repository ppa:certbot/certbot

Aggiorna l'elenco dei pacchetti.

sudo apt-get update

Installa CertBot

sudo apt install python-certbot-apache

Avvia la creazione del certificato. Anche in questo caso dovrai inserire il nome di dominio corretto.

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

Dopo la creazione ti chiederà se deve reindirizzare tutte le connessioni a SSL. Scegli reindirizzamento.

Ora ti dirà che ha creato con successo un certificato per il tuo dominio. Assicurati di salvare i 2 percorsi che ti dà.

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

Ora vai alla cartella con i certificati in via:

Assicurati di cambiare example.com con l'host giusto.

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

Ora copiamo quei contenuti nella nostra cartella del progetto.

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

e

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

Connetti Apache con il tuo dominio

Per configurare correttamente Apache con il tuo dominio dovremo creare un file di configurazione. Assicurati di inserire il tuo nome di dominio, ad esempio funergydev.com.

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

Quindi incollalo nel file. Sostituisci example.com con il tuo nome di dominio.

Assicurati che il tuo certificato e la chiave privata siano il percorso corretto. Impostali sul percorso che hai salvato in precedenza quando li abbiamo creati, quindi tramite certbot.

DocumentRoot "/var/www/html/" SSLEngine on SSLCertificateFile /home/pi/Mirror/resources/certs/cert.pem SSLCertificateKeyFile /home/pi/Mirror/resources/certs/privkey.pem # Altre direttive qui Opzioni Indici FollowSymLinks AllowOverride Tutto richiede tutto concesso

Ora dobbiamo abilitare alcune modifiche e quindi forzare Apache a ricaricare la configurazione facendo:

sudo a2enmod ssl

sudo a2enmod riscrivi

sudo systemctl ricarica apache2

Ora dovresti essere in grado di andare tramite il tuo nome di dominio al tuo pi e vedere la pagina di apache predefinita.

Passaggio 6: API di Google

API di Google
API di Google
API di Google
API di Google
API di Google
API di Google

Vai alla console per sviluppatori tramite

Parte 1

Crea il tuo primo progetto facendo clic accanto al logo API di Google e facendo clic sul pulsante NUOVO PROGETTO. Inserisci un nome di progetto appropriato e fai clic sul pulsante Crea. [Foto1]

Parte 2

Ora arriverai a questa pagina. Fare clic sul pulsante della libreria. [Foto2]

Questo è un lungo elenco di tutte le API che potresti utilizzare, ma cercheremo l'API di Google Calendar. Fare clic su di esso e premere ABILITA. [Foto3]

Raggiungerai quindi una panoramica dell'API del calendario. Fai clic sul logo delle API di Google per tornare al tuo progetto. [Foto4]

Parte 3

Per impostare tutto correttamente clicca sulla categoria credenziali e scegli la scheda Verifica dominio.

Qui dovrai verificare il tuo nome di dominio.

  1. Fare clic su AGGIUNGI DOMINIO
  2. Compila il tuo dominio
  3. Ti chiederà quindi di verificare il tuo dominio. Fare clic su Procedi.
  4. Scegli il tuo provider di nomi di dominio. [Foto5]
  5. Segui il processo
  6. Ora sarai in grado di aggiungerlo all'elenco di verifica del dominio sulla console API di Google in questo modo. Assicurati che il tuo dominio sia selezionato. [Foto6]

Parte 4

Ora scegli la scheda della schermata di consenso OAuth. [Foto7]

Compila il nome dell'applicazione

Successivamente aggiungeremo ambiti alla schermata di consenso. Ciò significa che chiederemo all'utente nella schermata di consenso se desidera condividere le informazioni del proprio calendario con il mirror.

  1. Fare clic su aggiungi ambito e cercare il calendario.
  2. Controlla../auth/calendar.readonly e premi aggiungi. [Foto8]

Compila un dominio autorizzato. Questo dovrebbe essere il dominio che hai appena verificato. [Foto9]

Ora fai clic sul grande pulsante di salvataggio sotto il modulo.

Parte 5

Infine dobbiamo creare le credenziali. Poiché abbiamo premuto il pulsante di salvataggio, siamo stati reindirizzati alla scheda delle credenziali. Fare clic su Crea credenziali e scegliere ID client OAuth. [Foto10]

Scegli Tipo di applicazione: Applicazione Web e assegnagli un nome.

Inserisci il seguente link negli URI di reindirizzamento autorizzato e inserisci il dominio corretto.

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

Fare clic su Crea. Questo ti mostrerà un popup, fai clic su OK. Ora premi il pulsante di download sulle credenziali che hai appena creato

Parte 6

Ora apri il file JSON e copia il contenuto.

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

Incollali qui.

Parte 7

Ora dobbiamo definire il nostro dominio nella configurazione facendo:

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

Passaggio 7: il design dello specchio

Il design dello specchio
Il design dello specchio
Il design dello specchio
Il design dello specchio
Il design dello specchio
Il design dello specchio
Il design dello specchio
Il design dello specchio

La progettazione del tuo specchio dipende da come lo vuoi. Effettua misurazioni accurate del display LCD e lascia uno spazio di 2 centimetri su un lato dello specchio poiché il sensore di movimento a microonde sarà posizionato lì. Non può essere dietro a nessun metallo.

Ho collegato 4 assi di legno insieme. Questi sono stati fresati per avere una bella parte anteriore pulita dello specchio. Sulla parte superiore ho anche praticato un paio di fori per far passare il suono dell'altoparlante. Sul lato opposto dello specchio, quello in basso, ho ritagliato un piccolo rettangolo in modo da poter fare facilmente i collegamenti elettrici. [Foto1]

Questi sono 2 pezzi di legno scadente su cui si appoggierà il monitor. Dato che ho detto che avremmo avuto bisogno di uno spazio di circa 2 centimetri tra lo specchio e la custodia. Ho anche aggiunto 3 piccoli pezzi di legno e li ho avvitati su quei pezzi di riposo. Quindi il monitor rimarrebbe al suo posto. [Foto2]

Alla fine sembrava così. Avevo uno spazio di circa 3 mm tra quei pezzi di riposo e la parte anteriore della custodia dello specchio. Quanto basta per poter inserire lo specchio bidirezionale da 3 mm di spessore. [Foto3]

Passaggio 8: eseguire il cablaggio

Fare il cablaggio
Fare il cablaggio
Fare il cablaggio
Fare il cablaggio
Fare il cablaggio
Fare il cablaggio

Assicurati di seguire correttamente uno di questi schemi.

Una volta fatto il cablaggio l'ho incollato sul retro dello schermo con del nastro biadesivo. Dato che se mai volessi smontare lo specchio e usarlo per altri progetti potrei rimuoverlo facilmente. Se sei sicuro puoi usare una pistola per colla a caldo e incollarla sul retro dello specchio.

Passaggio 9: avvio del codice

Iniziare il codice
Iniziare il codice
Iniziare il codice
Iniziare il codice
Iniziare il codice
Iniziare il codice

LXSession

Creiamo prima un paio di cartelle

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

Ora creeremo un file in cui specificheremo un paio di parametri/comandi di avvio.

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

Incolla quanto segue nel file.

@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

Aggiorneremo lo script dello schermo mirror di avvio in modo che corrisponda al nostro host.

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

Scegli localhost se non stai utilizzando Google Calendar e un dominio.

#!/bin/bash

sleep 15 chromium-browser --incognito --kiosk

Se lo stai usando, inserisci il tuo host.

#!/bin/bash

sleep 15 chromium-browser --incognito --kiosk

Servizio

Ora imposteremo l'esecuzione automatica del codice Mirror.

Creeremo un servizio che avvia automaticamente il codice per noi.

Vai a:

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

E incollalo nel file

[Unità]

Description=Mirror Backend After=network.target mariadb.service [Service] Type=semplice Utente=root ExecStart=/bin/sh /home/pi/Mirror/init.sh [Install] WantedBy=multi-user.target

Ora dovremo ricaricare il demone systemd facendo:

sudo systemctl demone-reload

E abiliteremo anche l'avvio automatico del servizio all'avvio.

sudo systemctl abilita mirror

Ora spegneremo.

sudo poweroff

Le impostazioni finali

Infine dobbiamo rimuovere il nostro IP APIPA in modo che funzioni solo su WiFi.

  1. Vai alla directory di avvio della scheda SD sul tuo PC.
  2. Apri il file "cmdline.txt"
  3. Rimuovi ip=169.254.10.1 Alla fine della lunga riga di testo.

Passaggio 10: eseguire lo specchio

Correre allo specchio
Correre allo specchio
Correre allo specchio
Correre allo specchio
Correre allo specchio
Correre allo specchio
Correre allo specchio
Correre allo specchio

Visita l'ip che si trova sullo schermo mirror o se hai impostato il calendario di Google, inserisci il nome del dominio.

Ora sarai in grado di configurare il tuo specchio!

Se ricevi un errore SSL sul tuo mirror, potresti voler aggiungere i tuoi certificati all'archivio certificati di Chromium.

Consigliato: