Innehållsförteckning:
- Tillbehör
- Steg 1: Inställning
- Steg 2: Installera spegeln
- Steg 3: Konfiguration
- Steg 4: API: er
- Steg 5: Kalendern
- Steg 6: Google API
- Steg 7: Spegeldesignen
- Steg 8: Anslutning
- Steg 9: Starta koden
- Steg 10: Kör spegeln
Video: Multi User Smart Mirror Med Google Kalender: 10 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:44
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
- Välj din bild via mappikonen
- Välj ditt SD -kort via rullgardinsmenyn
- Klicka på skriv
Nu måste vi pyssla lite med några inställningar så att vi kommer åt Pi.
- Gå till SD -kortets startkatalog
- Öppna filen "cmdline.txt"
- Lägg till ip = 169.254.10.1 I slutet av den långa raden text separerad med ett mellanslag (på samma rad).
- Spara filen.
- 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.
- Installera Putty från
- Ange 169.254.10.1 i rutan IP.
- Se till att SSH är valt och att port 22 är fylld.
- Klicka på öppna
- Fyll i användarnamnet: pi
- 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
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
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.
- Klicka på knappen Hämta din API -nyckel på instrumentpanelen på höger sida. [Foto 1]
- 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
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.
- Klicka på ADD DOMAIN
- Fyll i din domän
- Den kommer då att be om att verifiera din domän. Klicka på Fortsätt.
- Välj din domännamnsleverantör. [Foto5]
- Följ processen
- 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.
- Klicka på lägg till omfång och sök efter kalender.
- 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
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
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
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-kioskService
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.
- Gå till SD -kortets startkatalog på din dator.
- Öppna filen "cmdline.txt"
- Ta bort ip = 169.254.10.1 I slutet av den långa raden med text.
Steg 10: 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:
Z80-mbc2 Z80 Code Flash User LED: 3 Steg
Z80-mbc2 Z80 Code Flash User LED: Detta är ett exempel på användar-LED-program skrivet i Z80 assembler för z80-mbc2-datorn.Jag gjorde detta en test- och revisionsövning för mig, detta är mitt första Z80-program på över 35 år.Njut
Veckodag, kalender, tid, luftfuktighet/temperatur med batterisparläge: 10 steg (med bilder)
Veckodag, kalender, tid, luftfuktighet/temperatur med batterisparläge: Energisparläget här är det som skiljer denna instruktör från andra exempel som visar veckodag, månad, dag i månaden, tid, luftfuktighet och temperatur. Det är denna förmåga som gör att detta projekt kan köras från ett batteri, utan
Wifi Wheelie Bins & Google Kalender: 4 steg
Wifi Wheelie Bins & Google Calendar: Detta projekt är inspirerat av videor av Andreas Spiess (You Tube).#185 ESP8266 - Påminnelse om Google Kalender: Hur man gör din fru/flickvän glad (Arduino) & # 189, en uppdaterad version.Följ dessa länkar: Andreas Spiess & Andreas Spiess Ver 2
5 $ PCB -KALENDER MED BINÄR KLOCKA: 7 steg (med bilder)
5 $ PCB -KALENDER MED BINÄR KLOCKA: Hej! Jag gjorde denna PCB -kalender och binära klocka med Eagle CAD. Jag använde ATMEGA328P MCU (från Arduino) och 9x9 LED -matris. Mått för mitt bräde är 8 cm x 10 cm (3,14 tum x 3,34 tum). Det är lite för litet men först: gratisversionen av Eagle CAD tillåter 80 cm^2
Arduino Outlet Box Control Center med Google Kalender: 4 steg
Arduino Outlet Box Control Center med Google Kalender: I den här instruktionsboken lär du dig hur du bygger ett kontrollcenter för ditt hem med en Adafruit Power Relay Module 4-Outlet. Du behöver ett Arduino -kort med en wifi -modul som Adafruit Feather Huzzah och en Adafruit Power Relay Module 4