Innholdsfortegnelse:

Multi User Smart Mirror With Google Calendar: 10 trinn
Multi User Smart Mirror With Google Calendar: 10 trinn

Video: Multi User Smart Mirror With Google Calendar: 10 trinn

Video: Multi User Smart Mirror With Google Calendar: 10 trinn
Video: 30 Ultimate Windows 10 Tips and Tricks for 2020 2024, September
Anonim
Flerbruker smart speil med Google Kalender
Flerbruker smart speil med Google Kalender
Flerbruker smart speil med Google Kalender
Flerbruker smart speil med Google Kalender

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

  1. Velg bildet ditt via mappeikonet
  2. Velg SD -kortet ditt via rullegardinmenyen
  3. Klikk på skrive

Nå må vi gjøre litt ekstra ting med noen innstillinger, slik at vi får tilgang til Pi.

  1. Gå til SD -kortets oppstartskatalog
  2. Åpne filen "cmdline.txt"
  3. Legg til ip = 169.254.10.1 På slutten av den lange tekstlinjen atskilt med et mellomrom (på samme linje).
  4. Lagre filen.
  5. 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.

  1. Installer Putty fra
  2. Skriv inn 169.254.10.1 i IP -boksen.
  3. Sørg for at SSH er valgt og at port 22 er fylt ut.
  4. Klikk på åpne
  5. Fyll ut brukernavnet: pi
  6. 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

Installere speilet
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

Kalenderen
Kalenderen
Kalenderen
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.

  1. Klikk på knappen Få din API -nøkkel på oversikten til høyre. [Bilde 1]
  2. 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

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

  1. Klikk på LEGG TIL DOMAIN
  2. Fyll ut domenet ditt
  3. Deretter blir du bedt om å bekrefte domenet ditt. Klikk på fortsett.
  4. Velg leverandøren av domenenavn. [Foto5]
  5. Følg prosessen
  6. 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.

  1. Klikk på legg til omfang og søk etter kalender.
  2. 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

Speildesignet
Speildesignet
Speildesignet
Speildesignet
Speildesignet
Speildesignet
Speildesignet
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

Gjør ledningene
Gjør ledningene
Gjør ledningene
Gjør ledningene
Gjør ledningene
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

Starter koden
Starter koden
Starter koden
Starter koden
Starter koden
Starter 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.

  1. Gå til SD -kortets oppstartskatalog på PCen.
  2. Åpne filen "cmdline.txt"
  3. Fjern ip = 169.254.10.1 På slutten av den lange tekstlinjen.

Trinn 10: Kjøre speilet

Kjører speilet
Kjører speilet
Kjører speilet
Kjører speilet
Kjører speilet
Kjører speilet
Kjører speilet
Kjører 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: