Innehållsförteckning:

Multi User Smart Mirror Med Google Kalender: 10 steg
Multi User Smart Mirror Med Google Kalender: 10 steg

Video: Multi User Smart Mirror Med Google Kalender: 10 steg

Video: Multi User Smart Mirror Med Google Kalender: 10 steg
Video: seeing wife face for first time #shorts 2024, November
Anonim
Multi User Smart Mirror Med Google Kalender
Multi User Smart Mirror Med Google Kalender
Multi User Smart Mirror Med Google Kalender
Multi User Smart Mirror Med Google Kalender

I den här instruktören skapar vi en smart spegel integrerad med Google Kalender. Jag gjorde det här projektet eftersom jag tycker att smarta speglar är riktigt coola, de är en gåva på morgonen. Men jag bestämde mig för att göra en själv från noll eftersom alla andra har 1 fel. De är för avancerade och röriga. Jag bestämde mig för att hålla det här enkelt.

Tillbehör

Innan

vi börjar det här är de saker du definitivt behöver för att bygga en spegel som min. Dessa leveranser kommer att kosta cirka 250 till 350 euro beroende på din region och aktuella priser.

Hårdvara

Sensorer

  • En tråd temperatursensor
  • RWCL 0516 (Mikrovågsrörelsessensor)
  • Mjuk potentiometer (Touchstrip från Sparkfun)

Datoranvändning

och IC: er

  • Högtalare (3,2W vid 4Ω ELLER 1,8W vid 8Ω)
  • MCP3008
  • Adafruit I2S 3W klass D förstärkare Breakout - MAX98357A
  • Raspberry Pi 3 B+
  • SD -kort (8 GB är bra)
  • Motstånd 4,7K Ohm

Olika

  • Jumperwires
  • Bakbord
  • Akryl tvåvägs spegel (15% ljusöverföring)
  • IPS -skärm (storlek beror på hur stor du vill ha den)
  • HDMI -kabel
  • Trä

programvara

  • Spackel
  • Kodredigerare (anteckningsblock ++ är tillräckligt)
  • Win32 Disk Imager
  • Raspbian OS -bild

Steg 1: Inställning

För att komma igång måste vi först konfigurera din Pi för koden jag skapade.

Du behöver två saker:

  • Win32 Disk Imager från
  • Raspbian OS -bild från

Ladda ner ZIP -filen och extrahera den till var du vill.

Installationen

  1. Välj din bild via mappikonen
  2. Välj ditt SD -kort via rullgardinsmenyn
  3. Klicka på skriv

Nu måste vi pyssla lite med några inställningar så att vi kommer åt Pi.

  1. Gå till SD -kortets startkatalog
  2. Öppna filen "cmdline.txt"
  3. Lägg till ip = 169.254.10.1 I slutet av den långa raden text separerad med ett mellanslag (på samma rad).
  4. Spara filen.
  5. Skapa en fil som heter ssh utan tillägg i samma katalog

Nu kan du mata ut SD -kortet och sätta det i din Pi.

Ansluter

Nu måste vi installera programvaran.

Anslut först en LAN -kabel, ena änden på din stationära/bärbara dator och den andra i din Pi.

Starta nu Raspberry Pi.

  1. Installera Putty från
  2. Ange 169.254.10.1 i rutan IP.
  3. Se till att SSH är valt och att port 22 är fylld.
  4. Klicka på öppna
  5. Fyll i användarnamnet: pi
  6. Fyll i lösenordet: hallon

Raspi-config

Öppna verktyget Raspi-config med:

sudo raspi-config

Aktivera följande alternativ i kategorin gränssnitt

  • 1-tråd
  • SPI

Välj ditt WiFi -land via lokaliseringskategorin.

Inaktivera sedan följande alternativ i kategorin startalternativ

Startbild

Sätt slutligen Desktop/CLI -inställningen i kategorin startalternativ till Desktop Autologin.

WiFi

För spegeln måste vi ha en wifi -anslutning så se till att du har din wifi -referens nära.

Gå in i rotläge

sudo -i

Klistra in den här raden men se till att både SSID och lösenord är ifyllda

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

Ange WPA -klienten.

wpa_cli

Välj gränssnittet

gränssnitt wlan0

Ladda om konfigurationen

omkonfigurera

Se till att du är korrekt ansluten genom att skriva …

ip a

… och se om du har en IP på WLAN0 -gränssnitten.

Paket

Nu när vi är anslutna till internet måste vi installera några paket.

Först måste vi uppdatera paketlistorna för den senaste.

sudo apt uppdatering

Pytonorm

Vi tvingar Raspbian att använda Python 3

uppdateringsalternativ-installera/usr/bin/python python /usr/bin/python2.7 1

uppdateringsalternativ-installera/usr/bin/python python/usr/bin/python3 2

MariaDB

Klistra in följande rad för att installera databasen.

sudo apt installera mariadb-server

Då måste vi säkra vår installation.

mysql_secure_installation

Det kommer att be oss om det aktuella rotlösenordet eftersom vi inte har ett, tryck bara på enter.

Därefter frågar vi om vi vill ha en root -lösenordstyp i y eftersom vi vill ha en.

För nästa frågor, skriv bara Y.

Slutligen skapar vi en användare som vi kan använda för spegeln.

Ange mysql -skalet genom att göra:

Lyft oss till rot

sudo -i

Ange mysql -skalet

mysql

Ersätt med ditt eget användarnamn och samma med

bevilja alla privilegier på spegeln.* till ''@'%' identifierat med '';

Nu spolar vi behörighetstabellen.

FLUSH PRIVILEGER;

Apache webbserver

Kör raden nedan för att installera webbservern.

sudo apt installera apache2 -y

Python -paket

Vi ska installera dessa paket

  • Flaska
  • Kolv-Cors
  • Kolv-MySQL
  • Flask-SocketIO
  • PyMySQL
  • Kolv-talisman
  • Gevent
  • Gevent-websocket
  • Google-api-python-klient
  • Google-autentisering
  • Google-auth-httplib2
  • Google-auth-oauthlib
  • Httplib2
  • Icalendar
  • Icalevents
  • Oauthlib
  • Python-socketio
  • Förfrågningar
  • Wsaccel
  • Ujson

Genom att göra

pip installera Flask Flask-Cors Flask-MySQL Flask-SocketIO PyMySQL Flask-Talisman har gett gevent-websocket google-api-python-klient google-auth google-auth-httplib2 google-auth-oauthlib httplib2 icalendar icalevents oauthlib python-socketio förfrågningar wsaccel

Högtalarinställning

curl -sS https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/i2samp.sh | våldsamt slag

Nu måste vi starta om så tryck på y.

Kör skriptet igen

curl -sS https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/i2samp.sh | våldsamt slag

Nu måste vi starta om en andra gång

sudo starta om

Skärm (bildskärm)

Beroende på hur du vill ha skärmens orientering kanske du vill rotera skärmen.

För att rotera skärmen måste vi komma åt startalternativen genom att göra:

sudo nano /boot/config.txt

Och sedan klistra in en av dessa rader i konfigurationsfilen:

display_rotate = 0

display_rotate = 1

display_rotate = 2

display_rotate = 3

Den första, 0, är den normala konfigurationen. 1 Kommer att vara 90 grader, 2 är 180 grader och den sista kommer att vara 270 grader.

Starta sedan om.

sudo starta om

Steg 2: Installera spegeln

Installera spegeln
Installera spegeln

Nu ska vi ställa in en plats för att ladda ner min kod.

cd/home/pi/

git -klon https://github.com/nielsdewulf/Mirror MirrorProject cd MirrorProject

Nu ska vi kopiera några mappar till rätt destination

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

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

Att installera databasen är ett nödvändigt steg i projektet.

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

Steg 3: Konfiguration

Konfigurationsfilen finns på:

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

Ange MYSQL -användaren och lösenordet.

Detta måste vara mysql -användaren vi just gjorde.

De andra inställningarna kommer vi att gå över senare detta instruerbara.

Steg 4: API: er

Nu har vi avslutat installationen av Pi, vi kommer att täcka några ämnen du kanske vill göra.

Mörk himmel

Skapa en Darsky API -nyckel via

När du har registrerat ser du din API -nyckel på instrumentpanelen.

Ange den här nyckeln i konfigurationsfilen för det spegelprojekt du installerade tidigare.

Kalendern

Som standard kommer du bara att kunna använda ical -webbadresser för att se din kalender från. Men den här delen kommer att handla om hur du kopplar din spegel till Googles ekosystem. Detta är en generellt längre och smärtsam process.

Saker du definitivt behöver

Ett domännamn

Det här är de saker vi kommer att konfigurera under den här delen

  • CloudFlare -konto
  • Googles utvecklarkonto
  • Google Developer Project
  • Konfigurera kalender -API: et

Steg 5: Kalendern

Kalendern
Kalendern
Kalendern
Kalendern

Cloudflare

Skapa ett cloudflare -konto från https://cloudflare.com och följ guiden för att överföra ditt domännamn till Cloudflare DNS.

Du behöver inte skapa en A -skiva själv som pekar på hallon pi. Min spegelkod kommer att göra det åt dig. Eftersom IP -adresserna i de flesta hushålls -wifi inte är statiska så efter omstart kan det inte fungera längre. För att min kod ska uppdatera ip: en automatiskt krävs det ditt kontos API -nyckel.

  1. Klicka på knappen Hämta din API -nyckel på instrumentpanelen på höger sida. [Foto 1]
  2. Rulla ner och se din globala API -nyckel. [Foto 2]

Ange den här nyckeln i konfigurationsfilen för det spegelprojekt du installerade tidigare.

Skapa SSL -certifikat

Google kräver att vi har en SSL -anslutning. För att starta det här avsnittet, se till att du har konfigurerat Cloudflare DNS korrekt.

Lägg först till förvaret.

sudo add-apt-repository ppa: certbot/certbot

Uppdatera paketlistan.

sudo apt-get uppdatering

Installera CertBot

sudo apt installera python-certbot-apache

Börja skapa certifikatet. Återigen måste du fylla i rätt domännamn.

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

Efter skapelsen kommer den att fråga dig om den ska omdirigera alla anslutningar till SSL. Välj omdirigering.

Nu kommer det att berätta att det har skapat ett certifikat för din domän. Se till att spara de två sökvägarna som det ger dig.

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

Gå nu till mappen med certifikaten i via:

Var noga med att ändra exempel.com till rätt värd.

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

Låt oss nu kopiera innehållet till vår projektmapp.

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

Och

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

Anslut Apache med din domän

För att konfigurera Apache korrekt med din domän måste vi skapa en konfigurationsfil. Se till att fylla i ditt domännamn till exempel funergydev.com.

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

Klistra sedan in detta i filen. Ersätt example.com med ditt domännamn.

Se till att ditt cert och den privata nyckeln är rätt väg. Ställ in dem på sökvägen som du sparade tidigare när vi skapade den sedan via certbot.

DocumentRoot "/var/www/html/" SSLEngine on SSLCertificateFile /home/pi/Mirror/resources/certs/cert.pem SSLCertificateKeyFile /home/pi/Mirror/resources/certs/privkey.pem # Andra direktiv här Alternativ Indexer FollowSymLinks AllowOverride Alla Kräver allt beviljat

Nu måste vi aktivera några ändringar och sedan tvinga Apache att ladda om konfigurationen genom att göra:

sudo a2enmod ssl

sudo a2enmod skriva om

sudo systemctl ladda om apache2

Nu ska du kunna gå via ditt domännamn till din pi och se standard apache -sidan.

Steg 6: Google API

Googles API
Googles API
Googles API
Googles API
Googles API
Googles API

Gå till utvecklarkonsolen via

Del 1

Skapa ditt första projekt genom att klicka bredvid Google API -logotypen och klicka på knappen NYTT PROJEKT. Fyll i ett lämpligt projektnamn och klicka på knappen Skapa. [Foto1]

Del 2

Nu kommer du till den här sidan. Klicka på biblioteksknappen. [Foto2]

Detta är en stor lista över alla API: er du kan använda men vi kommer att söka efter Google Kalender API. Klicka på den och tryck på ENABLE. [Foto3]

Du får då en översikt över Kalender -API: et. Klicka på Googles API -logotyp för att gå tillbaka till ditt projekt. [Foto4]

Del 3

För att konfigurera allt korrekt klickar du på kategorin autentiseringsuppgifter och väljer fliken Domänverifiering.

Här måste du verifiera ditt domännamn.

  1. Klicka på ADD DOMAIN
  2. Fyll i din domän
  3. Den kommer då att be om att verifiera din domän. Klicka på Fortsätt.
  4. Välj din domännamnsleverantör. [Foto5]
  5. Följ processen
  6. Nu kan du lägga till den på domänverifieringslistan på Google API -konsolen så här. Se till att din domän är markerad. [Foto6]

Del 4

Välj nu fliken OAuth -samtycke. [Foto7]

Fyll i ansökans namn

Därefter lägger vi till omfattningar på samtyckeskärmen. Det betyder att vi kommer att fråga användaren på samtyckeskärmen om de vill dela sin kalenderinformation med spegeln.

  1. Klicka på lägg till omfång och sök efter kalender.
  2. Kontrollera../auth/calendar.readonly och tryck på lägg till. [Foto8]

Fyll i en auktoriserad domän. Detta bör vara domänen du just verifierade. [Foto9]

Klicka nu på den stora spara -knappen under formuläret.

Del 5

Slutligen måste vi skapa referenser. Eftersom vi tryckte på spara -knappen omdirigerades vi till fliken referenser. Klicka på skapa referenser och välj OAuth -klient -ID. [Foto10]

Välj programtyp: webbapplikation och ge den ett namn.

Ange följande länk i de auktoriserade omdirigerings -URI: erna och fyll i rätt domän.

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

Klicka på skapa. Detta visar dig en popup, klicka bara på OK. Tryck nu på nedladdningsknappen på de referenser du just gjort

Del 6

Öppna nu JSON -filen och kopiera innehållet.

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

Klistra in dem här.

Del 7

Nu måste vi definiera vår domän i konfigurationen genom att göra:

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

Steg 7: Spegeldesignen

Spegelns design
Spegelns design
Spegelns design
Spegelns design
Spegelns design
Spegelns design
Spegelns design
Spegelns design

Att utforma din spegel beror på hur du vill ha det. Gör noggranna mätningar av LCD -skärmen och lämna ett mellanrum på 2 centimeter på ena sidan av spegeln eftersom mikrovågsrörelsessensorn sitter där. Det kan inte ligga bakom någon metall.

Jag kopplade ihop 4 träplankor. Dessa blev frästa för att få en fin ren spegel. På toppen borrade jag också ett par hål för att låta högtalarens ljud gå igenom. Spegelns motsatta sida, botten, skär jag en liten rektangel så att jag enkelt kunde göra de elektriska ledningarna. [Foto1]

Det här är två bitar av billigt trä där skärmen kommer att skada. Eftersom jag sa att vi skulle behöva ungefär 2 centimeter mellanrum mellan spegeln och fodralet. Jag la också till 3 små träbitar och skruvade in dem på vilobitarna. Så monitorn skulle sitta kvar. [Foto2]

Till slut såg det ut så här. Jag hade ungefär 3 mm mellanrum mellan de vilande bitarna och spegelhusets framsida. Lagom så att jag kunde sätta in den 3 mm tjocka tvåvägs spegeln. [Foto3]

Steg 8: Anslutning

Gör ledningarna
Gör ledningarna
Gör ledningarna
Gör ledningarna
Gör ledningarna
Gör ledningarna

Se till att följa ett av dessa scheman ordentligt.

När jag gjorde kablarna la jag fast den på baksidan av skärmen med dubbelsidig tejp. Eftersom om jag någonsin ville demontera spegeln och använda den för andra projekt kunde jag enkelt ta bort den. Om du är säker kan du använda en varm limpistol och limma den på baksidan av spegeln.

Steg 9: Starta koden

Starta koden
Starta koden
Starta koden
Starta koden
Starta koden
Starta koden

LXSession

Låt oss först skapa ett par mappar

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

Nu skapar vi en fil där vi kommer att ange ett par startparametrar/kommandon.

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

Klistra in följande i filen.

@lxpanel --profil LXDE-pi

@pcmanfm --desktop --profil LXDE-pi @xscreensaver -no-splash @point-rpi @sh /home/pi/Mirror/init_mirror.sh @xset s noblank @xset s off @xset -dpms

Vi uppdaterar startspegelns skärmskript för att matcha vår värd.

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

Välj localhost om du inte använder google kalender och en domän.

#!/bin/bash

sova 15 krom-webbläsare-inkognito-kiosk https:// localhost/mirror

Om du använder det fyller du i din värd.

#!/bin/bash

sova 15 krom-webbläsare-inkognito-kiosk

Service

Nu ska vi konfigurera att spegelkoden körs automatiskt.

Vi skapar en tjänst som automatiskt startar koden för oss.

Gå till:

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

Och klistra in detta i filen

[Enhet]

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

Nu måste vi ladda om systemdemonet genom att göra:

sudo systemctl daemon-reload

Och vi kommer också att göra det möjligt för tjänsten att starta automatiskt vid start.

sudo systemctl aktivera spegel

Nu stänger vi av.

sudo poweroff

De sista inställningarna

Slutligen måste vi ta bort vår APIPA ip så att den bara fungerar på WiFi.

  1. Gå till SD -kortets startkatalog på din dator.
  2. Öppna filen "cmdline.txt"
  3. Ta bort ip = 169.254.10.1 I slutet av den långa raden med text.

Steg 10: Kör spegeln

Kör spegeln
Kör spegeln
Kör spegeln
Kör spegeln
Kör spegeln
Kör spegeln
Kör spegeln
Kör spegeln

Besök IP: n som finns på spegelskärmen eller om du har konfigurerat Google Kalender fyll i domännamnet.

Nu kan du ställa in din spegel!

Om du får ett SSL -fel på din spegel kanske du vill lägga till dina certifikat i Chromium -certifikatbutiken.

Rekommenderad: