Innholdsfortegnelse:
- Rekvisita
- Trinn 1: Oppsett
- Trinn 2: Installere speilet
- Trinn 3: Konfigurasjon
- Trinn 4: APIer
- Trinn 5: Kalenderen
- Trinn 6: Google API
- Trinn 7: Speildesignet
- Trinn 8: Gjør ledningene
- Trinn 9: Start koden
- Trinn 10: Kjøre speilet
Video: Multi User Smart Mirror With Google Calendar: 10 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:22
I denne instruksen skal vi lage et smart speil integrert med Google Kalender. Jeg laget dette prosjektet fordi jeg synes smarte speil er veldig kule, de er en gave fra morgenen. Men jeg bestemte meg for å lage en selv fra null fordi alle de andre har 1 feil. De er for avanserte og rotete. Jeg bestemte meg for å holde dette enkelt.
Rekvisita
Før
vi begynner med disse tingene du definitivt trenger for å bygge et speil som mitt. Disse forsyningene vil koste rundt 250 til 350 euro, avhengig av din region og gjeldende priser.
Maskinvare
Sensorer
- En tråd temperatur sensor
- RWCL 0516 (mikrobølge bevegelsessensor)
- Mykt potensiometer (Touchstrip fra Sparkfun)
Datamaskin
og IC -er
- Høyttaler (3,2W ved 4Ω ELLER 1,8W ved 8Ω)
- MCP3008
- Adafruit I2S 3W klasse D forsterker breakout - MAX98357A
- Bringebær Pi 3 B+
- SD -kort (8 GB er greit)
- Motstand 4,7K Ohm
Diverse
- Jumperwires
- Brødbrett
- Akryl toveis speil (15% lysoverføring)
- IPS -skjerm (størrelsen avhenger av hvor stor du vil ha den)
- HDMI -kabel
- Tre
Programvare
- PuTTY
- Koderedigerer (Notisblokk ++ er nok)
- Win32 Disk Imager
- Raspbian OS -bilde
Trinn 1: Oppsett
For å komme i gang må vi først sette opp Pi for koden jeg laget.
Du trenger to ting:
- Win32 Disk Imager fra
- Raspbian OS -bilde fra
Last ned ZIP -filen og pakk den ut hvor du vil.
Installasjonen
- Velg bildet ditt via mappeikonet
- Velg SD -kortet ditt via rullegardinmenyen
- Klikk på skrive
Nå må vi gjøre litt ekstra ting med noen innstillinger, slik at vi får tilgang til Pi.
- Gå til SD -kortets oppstartskatalog
- Åpne filen "cmdline.txt"
- Legg til ip = 169.254.10.1 På slutten av den lange tekstlinjen atskilt med et mellomrom (på samme linje).
- Lagre filen.
- Lag en fil som heter ssh uten utvidelse i den samme katalogen
Nå kan du kaste ut SD -kortet og sette det i Pi.
Kobler til
Nå må vi konfigurere programvaren.
Koble først til en LAN -kabel, den ene enden på skrivebordet/den bærbare datamaskinen og den andre i din Pi.
Start nå Raspberry Pi.
- Installer Putty fra
- Skriv inn 169.254.10.1 i IP -boksen.
- Sørg for at SSH er valgt og at port 22 er fylt ut.
- Klikk på åpne
- Fyll ut brukernavnet: pi
- Fyll ut passordet: bringebær
Raspi-konfigurasjon
Åpne Raspi-config-verktøyet ved å bruke:
sudo raspi-config
Aktiver følgende alternativer i kategorien grensesnitt
- 1-Wire
- SPI
Velg WiFi -landet ditt via lokaliseringskategorien.
Deretter deaktiverer du følgende alternativer i kategorien oppstartsalternativer
Sprutskjerm
Angi til slutt Desktop/CLI -innstillingen i kategorien oppstartsalternativer til Desktop Autologin.
WiFi
For speilet må vi ha en wifi -tilkobling, så sørg for at du har wifi -legitimasjonen din i nærheten.
Gå inn i rotmodus
sudo -i
Lim inn denne linjen, men sørg for at SSID og passord begge er fylt ut
wpa_passphrase "SSID" "PASSWORD" >> /etc/wpa_supplicant/wpa_supplicant.conf
Skriv inn WPA -klienten.
wpa_cli
Velg grensesnittet
grensesnitt wlan0
Last inn konfigurasjonen på nytt
omkonfigurere
Sørg for at du er riktig tilkoblet ved å skrive …
ip a
… og se om du har en IP på WLAN0 -grensesnittene.
Pakker
Nå som vi er koblet til internett, må vi installere noen pakker.
Først må vi oppdatere pakkelistene for den siste.
sudo apt oppdatering
Python
Vi tvinger Raspbian til å bruke Python 3
oppdateringsalternativer-install/usr/bin/python python /usr/bin/python2.7 1
oppdateringsalternativer-install/usr/bin/python python/usr/bin/python3 2
MariaDB
Lim inn følgende linje for å installere databasen.
sudo apt installer mariadb-server
Da må vi sikre installasjonen vår.
mysql_secure_installation
Det vil be oss om gjeldende rotpassord siden vi ikke har et, bare trykk enter.
Deretter spør det om vi vil ha en root -passordtype i y siden vi vil ha en.
For de neste spørsmålene, bare skriv Y.
Til slutt skal vi lage en bruker som vi kan bruke til speilet.
Skriv inn mysql -skallet ved å gjøre:
Løft oss til rot
sudo -i
Skriv inn mysql -skallet
mysql
Erstatt med ditt eget brukernavn og det samme med
gi alle privilegier på speilet.* til ''@'%' identifisert av '';
Nå skyller vi tillatelsestabellen.
FLUSH -PRIVILEGER;
Apache webserver
Kjør linjen nedenfor for å installere webserveren.
sudo apt installere apache2 -y
Python -pakker
Vi skal installere disse pakkene
- Kolbe
- Flask-Cors
- Kolbe-MySQL
- Flask-SocketIO
- PyMySQL
- Kolbe-talisman
- Gevent
- Gevent-websocket
- Google-api-python-klient
- Google-autorisasjon
- Google-auth-httplib2
- Google-auth-oauthlib
- Httplib2
- Icalendar
- Icalevents
- Oauthlib
- Python-socketio
- Forespørsler
- Wsaccel
- Ujson
Ved å gjøre
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 request wsaccel
Høyttaleroppsett
curl -sS https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/i2samp.sh | bash
Nå må vi starte på nytt, så trykk på y.
Kjør skriptet på nytt
curl -sS https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/i2samp.sh | bash
Nå må vi starte på nytt en gang til
sudo omstart
Skjerm (skjerm)
Avhengig av hvordan du vil ha orienteringen på skjermen, kan det være lurt å rotere skjermen.
For å rotere skjermen må vi få tilgang til oppstartsalternativene ved å gjøre:
sudo nano /boot/config.txt
Og deretter lime inn en av disse linjene i konfigurasjonsfilen:
display_rotate = 0
display_rotate = 1
display_rotate = 2
display_rotate = 3
Den første, 0, er den normale konfigurasjonen. 1 Vil være 90 grader, 2 er 180 grader og den siste vil være 270 grader.
Start deretter på nytt.
sudo omstart
Trinn 2: Installere speilet
Nå setter vi opp et sted å laste ned koden min.
cd/home/pi/
git -klon https://github.com/nielsdewulf/Mirror MirrorProject cd MirrorProject
Nå kopierer vi noen mapper til riktig destinasjon
sudo cp -R frontend/mirror//var/www/html/mirror/
sudo cp -R frontend/dashboard//var/www/html/Sudo cp -R backend//home/pi/Mirror/
Installering av databasen er et nødvendig skritt for å lage prosjektet.
sudo mysql -u root -p << CREATEDATABASE.sql
Trinn 3: Konfigurasjon
Konfigurasjonsfilen ligger på:
sudo nano /home/pi/Mirror/resources/config.ini
Skriv inn MYSQL -brukeren og passordet.
Dette må være mysql -brukeren vi nettopp har laget.
De andre innstillingene skal vi gå over senere.
Trinn 4: APIer
Nå er vi ferdig med installasjonen av Pi, vi dekker noen emner du kanskje vil gjøre.
Mørk himmel
Lag en Darsky API -nøkkel via
Når du har registrert deg, ser du API -nøkkelen på oversikten.
Skriv inn denne nøkkelen i konfigurasjonsfilen til speilprosjektet du installerte før.
Kalenderen
Som standard vil du bare kunne bruke ical url til å se kalenderen din fra. Men denne delen handler om hvordan du kobler speilet ditt til Google -økosystemet. Dette er en generelt lengre og mer smertefull prosess.
Ting du definitivt trenger
Et domenenavn
Dette er tingene vi skal sette opp i løpet av denne delen
- CloudFlare -konto
- Google utviklerkonto
- Google utviklerprosjekt
- Sett opp kalender -API
Trinn 5: Kalenderen
Cloudflare
Opprett en cloudflare -konto fra https://cloudflare.com og følg veiviseren for å overføre domenenavnet ditt til Cloudflare DNS.
Du trenger ikke å lage en A -plate selv som peker på bringebær pi. Min speilkode vil gjøre det for deg. Siden i de fleste wifi i husholdningene er IP -ene ikke statiske, så etter omstart kan det hende at den ikke fungerer lenger. For at koden min skal oppdatere ip -en automatisk, trenger du API -nøkkelen til kontoen din.
- Klikk på knappen Få din API -nøkkel på oversikten til høyre. [Bilde 1]
- Rull ned og se din globale API -nøkkel. [Bilde 2]
Skriv inn denne nøkkelen i konfigurasjonsfilen til speilprosjektet du installerte før.
Opprettelse av SSL -sertifikat
Google krever at vi har en SSL -tilkobling. For å starte denne delen må du kontrollere at du har konfigurert Cloudflare DNS riktig.
Legg først til depotet.
sudo add-apt-repository ppa: certbot/certbot
Oppdater pakkelisten.
sudo apt-get oppdatering
Installer CertBot
sudo apt installer python-certbot-apache
Start sertifikatopprettelsen. Igjen må du fylle ut riktig domenenavn.
sudo certbot --apache -d eksempel.com -d www.exempel.com
Etter opprettelsen vil den spørre deg om den skal omdirigere alle tilkoblinger til SSL. Velg omdirigering.
Nå vil den fortelle deg at den har opprettet et sertifikat for domenet ditt. Sørg for å lagre de to banene den gir deg.
- /etc/letsencrypt/live/example.com/cert.pem
- /etc/letsencrypt/live/example.com/privkey.pem
Gå nå til mappen med sertifikatene i via:
Sørg for å endre example.com til riktig vert.
cd /etc/letsencrypt/live/example.com/
La oss nå kopiere innholdet til prosjektmappen vår.
cp cert.pem /home/pi/Mirror/resources/certs/cert.pem
Og
cp privkey.pem /home/pi/Mirror/resources/certs/privkey.pem
Koble Apache til domenet ditt
For å konfigurere Apache riktig med domenet ditt må vi lage en konfigurasjonsfil. Sørg for å fylle ut domenenavnet ditt, for eksempel funergydev.com.
sudo nano /etc/apache2/sites-enabled/example.com.conf
Lim dette deretter inn i filen. Erstatt example.com med domenenavnet ditt.
Sørg for at sertifikatet og den private nøkkelen er riktig vei. Sett dem til banen du lagret tidligere da vi opprettet da via certbot.
DocumentRoot "/var/www/html/" SSLEngine on SSLCertificateFile /home/pi/Mirror/resources/certs/cert.pem SSLCertificateKeyFile /home/pi/Mirror/resources/certs/privkey.pem # Andre direktiver her Alternativer Indekser FollowSymLinks AllowOverride Alle Krever alt gitt
Nå må vi aktivere noen modifikasjoner og deretter tvinge Apache til å laste inn konfigurasjonen på nytt ved å gjøre:
sudo a2enmod ssl
sudo a2enmod skrive om
sudo systemctl last inn apache2 på nytt
Nå bør du kunne gå via domenenavnet til pi -en din og se standard apache -side.
Trinn 6: Google API
Gå til utviklerkonsollen via
Del 1
Lag ditt første prosjekt ved å klikke ved siden av Google API -logoen og klikke på NYTT PROJEKT -knappen. Fyll ut et passende prosjektnavn og klikk på Opprett -knappen. [Foto1]
Del 2
Nå kommer du til denne siden. Klikk på biblioteksknappen. [Foto2]
Dette er en stor liste over alle APIer du kan bruke, men vi vil lete etter Google Kalender API. Klikk på den og trykk på ENABLE. [Foto3]
Du får da en oversikt over Kalender -API. Klikk på Google API -logoen for å gå tilbake til prosjektet ditt. [Foto4]
Del 3
For å konfigurere alt riktig klikker du på legitimasjonskategorien og velger kategorien Domenebekreftelse.
Her må du bekrefte domenenavnet ditt.
- Klikk på LEGG TIL DOMAIN
- Fyll ut domenet ditt
- Deretter blir du bedt om å bekrefte domenet ditt. Klikk på fortsett.
- Velg leverandøren av domenenavn. [Foto5]
- Følg prosessen
- Nå kan du legge den til på domenekontrollisten på Google API -konsollen på denne måten. Sørg for at domenet ditt er merket. [Foto6]
Del 4
Velg nå kategorien OAuth -samtykkeskjerm. [Foto7]
Fyll ut søknadsnavnet
Deretter legger vi til omfang til samtykkeskjermen. Dette betyr at vi vil spørre brukeren på samtykkeskjermen om de vil dele kalenderinformasjonen sin med speilet.
- Klikk på legg til omfang og søk etter kalender.
- Sjekk../auth/calendar.readonly og trykk legg til. [Foto8]
Fyll ut et autorisert domene. Dette bør være domenet du nettopp har bekreftet. [Foto9]
Klikk nå på den store lagringsknappen under skjemaet.
Del 5
Til slutt må vi lage legitimasjonen. Fordi vi trykket på lagre -knappen, ble vi omdirigert til legitimasjonsfanen. Klikk på opprett legitimasjon og velg OAuth -klient -ID. [Foto10]
Velg Programtype: Nettapplikasjon og gi den et navn.
Skriv inn følgende lenke i de autoriserte omdirigerings -URI -ene og fyll ut riktig domene.
eksempel.com:5000/api/v1/setup/calendar/response
Klikk på opprett. Dette viser deg en popup bare klikk OK. Trykk nå på nedlastingsknappen på legitimasjonen du nettopp har opprettet
Del 6
Åpne nå JSON -filen og kopier innholdet.
sudo nano /home/pi/Mirror/resources/credentials/credentials.json
Lim dem inn her.
Del 7
Nå må vi definere domenet vårt i konfigurasjonen ved å gjøre:
sudo nano /home/pi/Mirror/resources/config.ini
Trinn 7: Speildesignet
Å designe speilet avhenger av hvordan du vil ha det. Gjør nøyaktige målinger av LCD -skjermen og la det være et mellomrom på 2 centimeter på den ene siden av speilet siden mikrobølgebevegelsessensoren vil sitte der. Det kan ikke ligge bak noe metall.
Jeg koblet 4 treplanker sammen. Disse ble frest for å ha en fin ren front av speilet. På toppen boret jeg også et par hull for å la lyden av høyttaleren gå gjennom. Den motsatte siden av speilet, bunnen, kuttet jeg et lite rektangel slik at jeg enkelt kunne gjøre de elektriske ledningene. [Foto1]
Dette er 2 stykker billig trevirke som skjermen vil kaste seg på. Siden jeg sa at vi ville trenge omtrent 2 centimeter mellomrom mellom speilet og saken. Jeg har også lagt til 3 små trebiter og skrudd dem inn på de hvile bitene. Så skjermen ville forbli på plass. [Foto2]
Til slutt så det slik ut. Jeg hadde omtrent 3 mm mellomrom mellom hvilestykkene og fronten på speilhuset. Akkurat nok til at jeg kunne sette det 3 mm tykke toveis speilet i. [Foto3]
Trinn 8: Gjør ledningene
Sørg for å følge en av disse ordningene ordentlig.
Når jeg gjorde ledningene, la jeg den på baksiden av skjermen med dobbeltsidig tape. Siden hvis jeg noen gang ønsket å demontere speilet og bruke det til andre prosjekter, kunne jeg enkelt fjerne det. Hvis du er sikker kan du bruke en varm limpistol og lime den på baksiden av speilet.
Trinn 9: Start koden
LXSession
La oss først lage et par mapper
mkdir -p /home/pi/.config/lxsession/LXDE-pi/
Nå lager vi en fil der vi vil spesifisere et par oppstartsparametere/kommandoer.
sudo nano /home/pi/.config/lxsession/LXDE-pi/autostart
Lim inn følgende 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 oppdaterer startspeilskjermens skript for å matche verten vår.
sudo nano /home/pi/Mirror/init_mirror.sh
Velg localhost hvis du ikke bruker google kalender og et domene.
#!/bin/bash
sove 15 kromleser-inkognito-kiosk https:// localhost/mirror
Hvis du bruker det, må du fylle ut verten din.
#!/bin/bash
sove 15 kromleser-inkognito-kiosk
Service
Nå skal vi konfigurere at speilkoden automatisk kjøres.
Vi lager en tjeneste som automatisk starter koden for oss.
Gå til:
sudo nano /etc/systemd/system/mirror.service
Og lim dette inn 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
Nå må vi laste om systemdemonen ved å gjøre:
sudo systemctl daemon-reload
Og vi lar også tjenesten starte automatisk ved oppstart.
sudo systemctl aktiver speil
Nå slår vi av.
sudo poweroff
De siste innstillingene
Til slutt må vi fjerne vår APIPA ip så den fungerer bare på WiFi.
- Gå til SD -kortets oppstartskatalog på PCen.
- Åpne filen "cmdline.txt"
- Fjern ip = 169.254.10.1 På slutten av den lange tekstlinjen.
Trinn 10: Kjøre speilet
Besøk IP -en som er på speilskjermen, eller hvis du har konfigurert Google -kalenderen, fyll ut domenenavnet.
Nå kan du sette opp speilet ditt!
Hvis du får en SSL -feil på speilet ditt, vil du kanskje legge til sertifikatene dine i Chromium -sertifikatbutikken.
Anbefalt:
Z80-mbc2 Z80 Code Flash User LED: 3 Trinn
Z80-mbc2 Z80 Code Flash User LED: Dette er et eksempel bruker-LED-program skrevet i Z80 assembler for z80-mbc2 datamaskinen.Jeg gjorde dette en test- og revisjonsøvelse for meg, dette er mitt første Z80-program på over 35 år.Nyt
C.Q: et DIY Smart Mirror: 5 trinn
C.Q: a DIY Smart Mirror: Vi er Katrina Concepcion og Adil Qaiser, begge andreårene på WBASD STEM Academy. Dette er prosjektet vi ville ha samarbeidet og gjort for årets beste pris. Da vi bestemte oss for å gjøre dette prosjektet, tenkte vi på "hva som ville være mest
ARDUINO MENY DESIGN With OLED-UI (USER INTERFACE): 4 trinn
ARDUINO MENY DESIGN With OLED-UI (USER INTERFACE): Hei alle! I denne opplæringen vil jeg prøve å forklare hvordan du lager ARDUINO MENY DESIGN ved å bruke i2c OLED Screen. Det er også kjent som UI (User Interface). Det har vært i bruk for mange prosjekter, men det må være kjent med deg fra 3d -skrivere :) Her også video
Smart Wall Calendar: 5 trinn
Smart Wall Calendar: Min kone og jeg pleide å ha en klassisk papirveggkalender, som vi markerte viktige datoer på. Vi bruker også Google -kalender på smarttelefonene våre for å markere hendelser, så dette betydde dobbeltarbeid. Så jeg bestemte meg for å bygge en slags smart veggkalender, som
HC-08 Bluetooth UART Communication Module V2.4 User Guide: 9 Steps
HC-08 Bluetooth UART Communication Module V2.4 User Guide: Product Introduction Bluetooth Modem-Minimum Pass-through Module HC08 er en ny generasjons dataoverføringsmodul basert på Bluetooth Specification V4.0 BLE-protokoll. Det trådløse arbeidsfrekvensbåndet er 2,4 GHz ISM med GFSK -moduleringsmetode. Det