Indholdsfortegnelse:

Multi -bruger smart spejl med Google Kalender: 10 trin
Multi -bruger smart spejl med Google Kalender: 10 trin

Video: Multi -bruger smart spejl med Google Kalender: 10 trin

Video: Multi -bruger smart spejl med Google Kalender: 10 trin
Video: Я работаю в Страшном музее для Богатых и Знаменитых. Страшные истории. Ужасы. 2024, November
Anonim
Multi -bruger smart spejl med Google Kalender
Multi -bruger smart spejl med Google Kalender
Multi -bruger smart spejl med Google Kalender
Multi -bruger smart spejl med Google Kalender

I denne instruks skaber vi et smart spejl integreret med Google Kalender. Jeg lavede dette projekt, fordi jeg finder smarte spejle virkelig fede, de er en gave fra morgenen. Men jeg besluttede at lave en selv fra nul, fordi alle de andre har 1 fejl. De er for avancerede og rodede. Jeg besluttede at holde det enkelt.

Forbrugsvarer

Før

vi begynder, det er de ting, du helt sikkert skal bruge til at bygge et spejl som mit. Disse forsyninger koster omkring 250 til 350 euro afhængigt af din region og aktuelle priser.

Hardware

Sensorer

  • En tråd temperatur sensor
  • RWCL 0516 (Mikrobølge bevægelsessensor)
  • Blødt potentiometer (Touchstrip fra Sparkfun)

Computing

og IC’er

  • Højttaler (3,2W ved 4Ω ELLER 1,8W ved 8Ω)
  • MCP3008
  • Adafruit I2S 3W klasse D forstærker breakout - MAX98357A
  • Raspberry Pi 3 B+
  • SD -kort (8 GB er fint)
  • Modstand 4,7K Ohm

Forskellige

  • Jumperwires
  • Brødbræt
  • Akryl tovejsspejl (15% lysoverførsel)
  • IPS -skærm (størrelsen afhænger af, hvor stor du vil have den)
  • HDMI -kabel
  • Træ

Software

  • PuTTY
  • Kodeditor (Notesblok ++ er nok)
  • Win32 Disk Imager
  • Raspbian OS -billede

Trin 1: Opsætning

For at komme i gang skal vi først konfigurere din Pi til den kode, jeg lavede.

Du skal bruge to ting:

  • Win32 Disk Imager fra
  • Raspbian OS -billede fra

Download ZIP -filen, og udpak den, hvor du vil.

Installationen

  1. Vælg dit billede via mappeikonet
  2. Vælg dit SD -kort via rullemenuen
  3. Klik på skriv

Nu bliver vi nødt til at lave lidt ekstra puslespil med nogle indstillinger, så vi får adgang til Pi.

  1. Gå til SD -kortets startmappe
  2. Åbn filen "cmdline.txt"
  3. Tilføj ip = 169.254.10.1 I slutningen af den lange tekstlinje adskilt med et mellemrum (på samme linje).
  4. Gem filen.
  5. Opret en fil med navnet ssh uden udvidelse i det samme bibliotek

Nu kan du skubbe SD -kortet ud og sætte det i din Pi.

Tilslutning

Nu skal vi konfigurere softwaren.

Tilslut først et LAN -kabel, den ene ende på din stationære/bærbare computer og den anden i din Pi.

Start nu Raspberry Pi.

  1. Installer Putty fra
  2. Indtast 169.254.10.1 i feltet IP.
  3. Sørg for, at SSH er valgt, og at port 22 er udfyldt.
  4. Klik på Åbn
  5. Udfyld brugernavnet: pi
  6. Udfyld adgangskoden: hindbær

Raspi-konfiguration

Åbn Raspi-config-værktøjet ved hjælp af:

sudo raspi-config

Aktiver følgende indstillinger i kategorien grænseflader

  • 1-Wire
  • SPI

Vælg dit WiFi -land via lokaliseringskategorien.

Deaktiver derefter følgende muligheder i kategorien bootindstillinger

Stænk skærm

Indstil endelig Desktop/CLI -indstillingen i kategorien bootindstillinger til Desktop Autologin.

Trådløst internet

Til spejlet skal vi have en wifi -forbindelse, så sørg for at have dine wifi -legitimationsoplysninger tæt på.

Gå ind i rodtilstand

sudo -i

Indsæt denne linje, men sørg for, at SSID og adgangskode begge er udfyldt

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

Indtast WPA -klienten.

wpa_cli

Vælg grænsefladen

grænseflade wlan0

Genindlæs konfigurationen

omkonfigurere

Sørg for, at du er tilsluttet korrekt ved at skrive …

ip a

… og se om du har en IP på WLAN0 -grænsefladerne.

Pakker

Nu hvor vi har forbindelse til internettet, skal vi installere nogle pakker.

Først skal vi opdatere pakkelisterne til den nyeste.

sudo apt opdatering

Python

Vi tvinger Raspbian til at bruge Python 3

opdateringsalternativer-install/usr/bin/python python /usr/bin/python2.7 1

opdateringsalternativer-install/usr/bin/python python/usr/bin/python3 2

MariaDB

Indsæt følgende linje for at installere databasen.

sudo apt installer mariadb-server

Derefter skal vi sikre vores installation.

mysql_secure_installation

Det vil bede os om det nuværende root -kodeord, da vi ikke har et, bare tryk på enter.

Dernæst spørger det, om vi vil have en root -adgangskode i y, da vi vil have en.

Indtast Y for de næste spørgsmål.

Endelig opretter vi en bruger, som vi kan bruge til spejlet.

Indtast mysql -skallen ved at gøre:

Løft os selv til rod

sudo -i

Indtast mysql -skallen

mysql

Erstat med dit eget brugernavn og det samme med

give alle privilegier på spejl.* til ''@'%' identificeret med '';

Nu skyller vi tilladelsestabellen.

FLUSH -PRIVILEGER;

Apache webserver

Kør linjen herunder for at installere webserveren.

sudo apt installere apache2 -y

Python pakker

Vi skal installere disse pakker

  • Kolbe
  • Kolbe-Cors
  • Kolbe-MySQL
  • Kolbe-SocketIO
  • PyMySQL
  • Kolbe-talisman
  • Gevent
  • Gevent-websocket
  • Google-api-python-klient
  • Google-godkendelse
  • Google-auth-httplib2
  • Google-auth-oauthlib
  • Httplib2
  • Icalendar
  • Icalevents
  • Oauthlib
  • Python-socketio
  • Anmodninger
  • Wsaccel
  • Ujson

Ved at gø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 requests wsaccel

Opsætning af højttaler

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

Nu skal vi genstarte, så tryk på y.

Gentag scriptet

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

Nu skal vi genstarte anden gang

sudo genstart

Skærm (skærm)

Afhængigt af hvordan du vil have orienteringen på din skærm, kan du rotere skærmen.

For at rotere skærmen skal vi få adgang til opstartsmulighederne ved at gøre:

sudo nano /boot/config.txt

Og derefter indsætte en af disse linjer i konfigurationsfilen:

display_rotate = 0

display_rotate = 1

display_rotate = 2

display_rotate = 3

Den første, 0, er den normale konfiguration. 1 Bliver 90 grader, 2 er 180 grader og den sidste vil være 270 grader.

Genstart derefter.

sudo genstart

Trin 2: Installation af spejlet

Installation af spejlet
Installation af spejlet

Nu opsætter vi et sted, hvor jeg kan downloade min kode.

cd/home/pi/

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

Nu kopierer vi nogle mapper til den korrekte 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/

Installation af databasen er et nødvendigt trin i projektet.

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

Trin 3: Konfiguration

Konfigurationsfilen findes på:

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

Indtast MYSQL -bruger og adgangskode.

Dette må være den mysql -bruger, vi lige har lavet.

De andre indstillinger vil vi gå over senere dette instruerbare.

Trin 4: API'er

Nu er vi færdige med installationen af Pi, vi vil dække nogle emner, du måske vil gøre.

Darksky

Opret en Darsky API -nøgle via

Når du har registreret, vil du se din API -nøgle på instrumentbrættet.

Indtast denne nøgle i konfigurationsfilen til det spejlprojekt, du installerede før.

Kalenderen

Som standard vil du kun kunne bruge ical urls til at se din kalender fra. Men denne del handler om, hvordan du forbinder dit spejl med Google -økosystemet. Dette er en generelt længere og mere smertefuld proces.

Ting du helt sikkert skal bruge

Et domænenavn

Dette er de ting, vi opsætter i løbet af denne del

  • CloudFlare -konto
  • Google -udviklerkonto
  • Google Developer Project
  • Opsæt kalender -API'en

Trin 5: Kalenderen

Kalenderen
Kalenderen
Kalenderen
Kalenderen

Cloudflare

Opret en cloudflare -konto fra https://cloudflare.com, og følg guiden for at overføre dit domænenavn til Cloudflare DNS.

Ingen grund til selv at oprette en A -plade, der peger på hindbærpi. Min spejlkode vil gøre det for dig. Da IP'erne i de fleste husholdnings wifi ikke er statiske, så efter genstart fungerer det muligvis ikke længere. For at få min kode til automatisk at opdatere ip'en, skal den bruge din kontos API -nøgle.

  1. Klik på knappen Få din API -nøgle på instrumentbrættet i højre side. [Foto 1]
  2. Rul ned og se din globale API -nøgle. [Foto 2]

Indtast denne nøgle i konfigurationsfilen til det spejlprojekt, du installerede før.

Oprettelse af SSL -certifikat

Google kræver, at vi har en SSL -forbindelse. For at starte dette afsnit skal du sørge for, at du har konfigureret Cloudflare DNS korrekt.

Tilføj først depotet.

sudo add-apt-repository ppa: certbot/certbot

Opdater pakkelisten.

sudo apt-get opdatering

Installer CertBot

sudo apt installere python-certbot-apache

Start oprettelsen af certifikatet. Igen skal du udfylde det korrekte domænenavn.

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

Efter oprettelsen vil den spørge dig, om den skal omdirigere alle forbindelser til SSL. Vælg omdirigering.

Nu vil det fortælle dig, at det med succes har oprettet et certifikat til dit domæne. Sørg for at gemme de 2 stier, det giver dig.

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

Gå nu til mappen med certifikaterne i via:

Sørg for at ændre example.com til den rigtige vært.

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

Lad os nu kopiere dette indhold til vores projektmappe.

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

Og

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

Forbind Apache med dit domæne

For at konfigurere Apache korrekt med dit domæne skal vi oprette en konfigurationsfil. Sørg for at udfylde dit domænenavn for eksempel funergydev.com.

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

Indsæt derefter dette i filen. Erstat example.com med dit domænenavn.

Sørg for, at din cert og private nøgle er den rigtige vej. Indstil dem til den sti, du gemte tidligere, da vi oprettede den derefter 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 Valg Indekser FølgSymLinks TilladOverride Alle Kræver alt givet

Nu skal vi aktivere nogle ændringer og derefter tvinge Apache til at genindlæse konfigurationen ved at gøre:

sudo a2enmod ssl

sudo a2enmod omskriv

sudo systemctl genindlæs apache2

Nu skulle du være i stand til at gå via dit domænenavn til din pi og se standard apache -siden.

Trin 6: Google API

Google API
Google API
Google API
Google API
Google API
Google API

Gå til udviklerkonsollen via

Del 1

Opret dit første projekt ved at klikke ud for Google API -logoet og klikke på knappen NYT PROJEKT. Udfyld et passende projektnavn, og klik på knappen Opret. [Foto1]

Del 2

Nu kommer du til denne side. Klik på biblioteksknappen. [Foto2]

Dette er en stor liste over alle API'er, du kan bruge, men vi vil søge efter Google Kalender API. Klik på den, og tryk på ENABLE. [Foto3]

Du får derefter en oversigt over Kalender -API. Klik på Google API -logoet for at gå tilbage til dit projekt. [Foto4]

Del 3

For at konfigurere alt korrekt skal du klikke på kategorien legitimationsoplysninger og vælge fanen Domænebekræftelse.

Her skal du bekræfte dit domænenavn.

  1. Klik på TILFØJ DOMAIN
  2. Udfyld dit domæne
  3. Det vil derefter bede om at bekræfte dit domæne. Klik på Fortsæt.
  4. Vælg din domænenavneudbyder. [Foto5]
  5. Følg processen
  6. Nu kan du tilføje det til domæneverifikationslisten på Google API -konsollen på denne måde. Sørg for, at dit domæne er markeret. [Foto6]

Del 4

Vælg nu fanen OAuth -samtykke. [Foto7]

Udfyld ansøgningsnavnet

Dernæst tilføjer vi omfang til samtykkeskærmen. Det betyder, at vi vil spørge brugeren på samtykkeskærmen, om de vil dele deres kalenderoplysninger med spejlet.

  1. Klik på tilføj omfang og søg efter kalender.
  2. Kontroller../auth/calendar.readonly og tryk på tilføj. [Foto8]

Udfyld et autoriseret domæne. Dette burde være det domæne, du lige har bekræftet. [Foto9]

Klik nu på den store gem -knap under formularen.

Del 5

Endelig skal vi oprette legitimationsoplysninger. Fordi vi trykkede på gem -knappen, blev vi omdirigeret til fanen Legitimationsoplysninger. Klik på Opret legitimationsoplysninger, og vælg OAuth -klient -id. [Foto10]

Vælg Programtype: Webapplikation, og giv det et navn.

Indtast følgende link i de autoriserede omdirigerings -URI'er, og udfyld det korrekte domæne.

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

Klik på Opret. Dette viser dig en popup, bare klik på OK. Tryk nu på download -knappen på de legitimationsoplysninger, du lige har oprettet

Del 6

Åbn nu JSON -filen og kopier indholdet.

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

Indsæt dem her.

Del 7

Nu skal vi definere vores domæne i konfigurationen ved at gøre:

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

Trin 7: Spejldesignet

Spejldesignet
Spejldesignet
Spejldesignet
Spejldesignet
Spejldesignet
Spejldesignet
Spejldesignet
Spejldesignet

At designe dit spejl afhænger af, hvordan du vil have det. Foretag nøjagtige målinger af LCD'et, og lad et mellemrum på 2 centimeter være på den ene side af spejlet, da mikrobølgebevægelsessensoren sidder der. Det kan ikke ligge bag noget metal.

Jeg forbandt 4 planker af træ sammen. Disse blev fræset for at have en pæn ren front af spejlet. På toppen borede jeg også et par huller for at lade lyden fra højttaleren gå igennem. Den modsatte side af spejlet, bunden, jeg skar et lille rektangel, så jeg let kunne lave de elektriske ledninger. [Foto1]

Disse er 2 stykker billigt træ, hvor skærmen vil rive på. Siden jeg sagde, ville vi have brug for en afstand på 2 centimeter mellem spejlet og kabinettet. Jeg tilføjede også 3 små træstykker og skruede dem fast på de hvilende stykker. Så skærmen ville blive på sin plads. [Foto2]

Til sidst så det sådan ud. Jeg havde omkring et 3 mm mellemrum mellem disse hvilestykker og forsiden af spejlkassen. Lige nok til at jeg kunne sætte det 3 mm tykke tovejsspejl i. [Photo3]

Trin 8: Gør ledningerne

Gør ledningerne
Gør ledningerne
Gør ledningerne
Gør ledningerne
Gør ledningerne
Gør ledningerne

Sørg for korrekt at følge en af disse ordninger.

Når jeg lavede ledningerne, stak jeg den på bagsiden af skærmen med dobbeltsidet tape. Siden hvis jeg nogensinde ville demontere spejlet og bruge det til andre projekter, kunne jeg nemt fjerne det. Hvis du er sikker, kan du bruge en varm limpistol og lime den på bagsiden af spejlet.

Trin 9: Start af koden

Start af koden
Start af koden
Start af koden
Start af koden
Start af koden
Start af koden

LXSession

Lad os først oprette et par mapper

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

Nu opretter vi en fil, hvor vi angiver et par opstartsparametre/kommandoer.

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

Indsæt 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 opdaterer startspejlskærmens script til at matche vores vært.

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

Vælg localhost, hvis du ikke bruger google kalender og et domæne.

#!/bin/bash

sove 15 chrom-browser-inkognito-kiosk https:// localhost/mirror

Hvis du bruger det, skal du udfylde din vært.

#!/bin/bash

sove 15 chrom-browser-inkognito-kiosk

Service

Nu konfigurerer vi, at spejlkoden automatisk kører.

Vi opretter en service, der automatisk starter koden for os.

Gå til:

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

Og indsæt dette i filen

[Enhed]

Beskrivelse = 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 skal vi genindlæse systemd -dæmonen ved at gøre:

sudo systemctl daemon-reload

Og vi vil også gøre det muligt for tjenesten at starte automatisk ved opstart.

sudo systemctl aktiver spejl

Nu slukker vi.

sudo poweroff

De sidste indstillinger

Endelig skal vi fjerne vores APIPA ip, så den kun fungerer på WiFi.

  1. Gå til SD -kortets startmappe på din pc.
  2. Åbn filen "cmdline.txt"
  3. Fjern ip = 169.254.10.1 I slutningen af den lange tekstlinje.

Trin 10: Kørsel af spejlet

Kører spejlet
Kører spejlet
Kører spejlet
Kører spejlet
Kører spejlet
Kører spejlet
Kører spejlet
Kører spejlet

Besøg den ip, der er på spejlskærmen, eller hvis du har konfigureret Google -kalenderen, skal du udfylde domænenavnet.

Nu kan du konfigurere dit spejl!

Hvis du får en SSL -fejl på dit spejl, kan du tilføje dine certifikater til Chromium -certifikatlageret.

Anbefalede: