Obsah:

Inteligentné zrkadlo pre viacerých používateľov s Kalendárom Google: 10 krokov
Inteligentné zrkadlo pre viacerých používateľov s Kalendárom Google: 10 krokov

Video: Inteligentné zrkadlo pre viacerých používateľov s Kalendárom Google: 10 krokov

Video: Inteligentné zrkadlo pre viacerých používateľov s Kalendárom Google: 10 krokov
Video: Huawei Watch GT 4: Smart hodinky, aj pre ženy, so skvelým pomerom cena/dizajn (RECENZIA) 2024, November
Anonim
Inteligentné zrkadlo pre viacerých používateľov s Kalendárom Google
Inteligentné zrkadlo pre viacerých používateľov s Kalendárom Google
Inteligentné zrkadlo pre viacerých používateľov s Kalendárom Google
Inteligentné zrkadlo pre viacerých používateľov s Kalendárom Google

V tomto návode vytvoríme inteligentné zrkadlo integrované s Kalendárom Google. Vytvoril som tento projekt, pretože inteligentné zrkadlá považujem za skutočne skvelé, pretože sú ráno darom z nebies. Ale rozhodol som sa urobiť jeden sám od nuly, pretože všetky ostatné majú 1 chybu. Sú príliš vyspelí a preplnení. Rozhodol som sa to udržať jednoduché.

Zásoby

Predtým

začneme to sú veci, ktoré určite budete potrebovať na stavbu zrkadla ako ja. Tieto zásoby budú stáť okolo 250 až 350 eur v závislosti od vášho regiónu a aktuálnych cien.

Hardvér

Senzory

  • Jeden snímač teploty drôtu
  • RWCL 0516 (snímač pohybu v mikrovlnnej rúre)
  • Mäkký potenciometer (Touchstrip od Sparkfun)

Výpočtový

a IC

  • Reproduktor (3,2 W pri 4Ω ALEBO 1,8W pri 8Ω)
  • MCP3008
  • Adafruit I2S 3W zosilňovač triedy D - MAX98357A
  • Raspberry Pi 3 B+
  • Karta SD (8 GB je v poriadku)
  • Rezistor 4,7K Ohm

Rôzne

  • Prepojovacie vodiče
  • Breadboard
  • Akrylové obojsmerné zrkadlo (15% prenos svetla)
  • Monitor IPS (veľkosť závisí od toho, ako veľký ho chcete)
  • HDMI kábel
  • Drevo

Softvér

  • PuTTY
  • Editor kódu (stačí Poznámkový blok ++)
  • Zobrazovač disku Win32
  • Obraz operačného systému Raspbian

Krok 1: Nastavenie

Na začiatku budeme musieť najskôr nastaviť váš Pi pre kód, ktorý som vytvoril.

Budete potrebovať dve veci:

  • Win32 Disk Imager z
  • Obraz operačného systému Raspbian z

Stiahnite si súbor ZIP a rozbaľte ho kdekoľvek chcete.

Inštalácia

  1. Vyberte svoj obrázok pomocou ikony priečinka
  2. V rozbaľovacom zozname vyberte svoju kartu SD
  3. Kliknite na písať

Teraz budeme musieť urobiť nejaké ďalšie drobnosti s niektorými nastaveniami, aby sme mali prístup k Pi.

  1. Prejdite do zavádzacieho adresára karty SD
  2. Otvorte súbor "cmdline.txt"
  3. Pridať ip = 169.254.10.1 Na konci dlhého riadku textu oddeleného medzerou (na rovnakom riadku).
  4. Uložte súbor.
  5. Vytvorte súbor s názvom ssh bez prípony v rovnakom adresári

Teraz môžete kartu SD vysunúť a vložiť do počítača Pi.

Pripája sa

Teraz budeme musieť nastaviť softvér.

Najprv zapojte kábel LAN, jeden koniec do stolného počítača/prenosného počítača a druhý do počítača Pi.

Teraz spustite Raspberry Pi.

  1. Nainštalujte tmel z
  2. Do poľa IP zadajte 169.254.10.1.
  3. Uistite sa, že je vybratý SSH a je vyplnený port 22.
  4. Kliknite na otvorené
  5. Vyplňte užívateľské meno: pi
  6. Vyplňte heslo: malina

Raspi-config

Otvorte nástroj Raspi-config pomocou:

sudo raspi-config

V kategórii rozhrania povoľte nasledujúce možnosti

  • 1-drôt
  • SPI

Vyberte svoju krajinu WiFi prostredníctvom kategórie lokalizácie.

Ďalej vypnite nasledujúce možnosti v kategórii možností spustenia

Úvodná obrazovka

Nakoniec nastavte Desktop/CLI v kategórii možností zavádzania na Desktop Autologin.

WiFi

Na zrkadlo potrebujeme mať wifi pripojenie, takže sa uistite, že máte svoje prihlasovacie údaje na wifi zatvorené.

Prejdite do režimu root

sudo -i

Prilepte tento riadok, ale uistite sa, že sú zadané SSID a heslo

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

Zadajte klienta WPA.

wpa_cli

Vyberte rozhranie

rozhranie wlan0

Znova načítajte konfiguráciu

prekonfigurovať

Uistite sa, že ste správne pripojení, zadaním …

ip a

… a zistiť, či máte IP adresu na rozhraniach WLAN0.

Balíčky

Teraz, keď sme pripojení k internetu, budeme musieť nainštalovať niektoré balíky.

Najprv budeme musieť aktualizovať zoznamy balíkov pre ten najnovší.

sudo apt aktualizácia

Python

Donútime Raspbian používať Python 3

update-alternatives --install/usr/bin/python python /usr/bin/python2.7 1

update-alternatives --install/usr/bin/python python/usr/bin/python3 2

MariaDB

Prilepte nasledujúci riadok a nainštalujte databázu.

sudo apt nainštalovať mariadb-server

Potom budeme musieť zaistiť našu inštaláciu.

mysql_secure_installation

Požiada nás o aktuálne heslo root, pretože ho nemáme, stačí stlačiť kláves Enter.

Ďalej sa pýta, či chceme heslo typu root v y, pretože ho chceme.

Pri ďalších otázkach zadajte Y.

Nakoniec vytvoríme používateľa, ktorého budeme môcť použiť pre zrkadlo.

Zadajte shell mysql takto:

Povýšime sa na root

sudo -i

Zadajte shell mysql

mysql

Nahraďte svojim vlastným používateľským menom a rovnaké s

udeliť všetky práva pre zrkadlo.* ''@'%' označené '';

Teraz prepláchneme tabuľku povolení.

FLUSH PRIVILEGES;

Webový server Apache

Ak chcete nainštalovať webový server, spustite nasledujúci riadok.

sudo apt nainštalovať apache2 -y

Balíky Python

Tieto balíky nainštalujeme

  • Banka
  • Flask-Cors
  • Flask-MySQL
  • Flask-SocketIO
  • PyMySQL
  • Fľaša-talizman
  • Gevent
  • Gevent-websocket
  • Klient Google-api-python
  • Google-auth
  • Google-auth-httplib2
  • Google-auth-oauthlib
  • Httplib2
  • Icalendar
  • Icaleventy
  • Oauthlib
  • Python-socketio
  • Žiadosti
  • Wsaccel
  • Ujson

Vykonávaním

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 uj

Nastavenie reproduktorov

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

Teraz musíme reštartovať, takže stlačte y.

Znova spustite skript

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

Teraz musíme reštartovať druhýkrát

sudo reštart

Obrazovka (monitor)

V závislosti od toho, ako chcete zmeniť orientáciu obrazovky, môžete obrazovku otočiť.

Na otáčanie obrazovky potrebujeme prístup k možnostiam spustenia takto:

sudo nano /boot/config.txt

A potom prilepte jeden z týchto riadkov do konfiguračného súboru:

display_rotate = 0

display_rotate = 1

display_rotate = 2

display_rotate = 3

Prvá z nich, 0, je normálna konfigurácia. 1 bude mať 90 stupňov, 2 má 180 stupňov a posledný bude mať 270 stupňov.

Potom reštartujte.

sudo reštart

Krok 2: Inštalácia zrkadla

Inštalácia zrkadla
Inštalácia zrkadla

Teraz nastavíme miesto na stiahnutie môjho kódu.

cd/home/pi/

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

Teraz skopírujeme niektoré priečinky do správneho cieľa

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

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

Inštalácia databázy je nevyhnutným krokom pri vytváraní projektu.

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

Krok 3: Konfigurácia

Konfiguračný súbor sa nachádza na adrese:

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

Zadajte používateľa MYSQL a heslo.

Toto musí byť používateľ mysql, ktorého sme práve vytvorili.

Ostatné nastavenia, ktorými sa budeme zaoberať neskôr, nájdete v tomto návode.

Krok 4: API

Teraz sme dokončili inštaláciu Pi, pokryjeme niektoré témy, ktoré by ste mohli chcieť urobiť.

Tmavá obloha

Vytvorte kľúč rozhrania Darsky API prostredníctvom

Keď sa zaregistrujete, váš kľúč API sa zobrazí na hlavnom paneli.

Tento kľúč zadajte do konfiguračného súboru projektu zrkadla, ktorý ste predtým nainštalovali.

Kalendár

V predvolenom nastavení budete môcť na zobrazenie svojho kalendára použiť iba adresy URL ical. Táto časť však bude o tom, ako prepojiť zrkadlo s ekosystémom Google. Je to spravidla dlhší a bolestivejší proces.

Veci, ktoré určite budete potrebovať

Názov domény

Toto sú veci, ktoré v tejto časti nastavíme

  • Účet CloudFlare
  • Účet vývojára Google
  • Google Developer Project
  • Nastavte rozhranie Calendar API

Krok 5: Kalendár

Kalendár
Kalendár
Kalendár
Kalendár

Cloudflare

Nastavte si účet cloudflare z https://cloudflare.com a podľa sprievodcu preneste svoje meno domény do služby Cloudflare DNS.

Nie je potrebné vytvárať záznam A, ktorý ukazuje na malinový pi. Môj Mirror kód to urobí za vás. Pretože vo väčšine domácich wifi nie sú IP adresy statické, takže po reštarte už nemusí fungovať. Na to, aby môj kód automaticky aktualizoval IP, bude potrebný kľúč API vášho účtu.

  1. Kliknite na tlačidlo Získať kľúč API na paneli vpravo. [Foto 1]
  2. Posuňte zobrazenie nadol a zobrazte svoj kľúč Global API. [Foto 2]

Tento kľúč zadajte do konfiguračného súboru projektu zrkadla, ktorý ste predtým nainštalovali.

Vytvorenie certifikátu SSL

Google požaduje, aby sme mali pripojenie SSL. Na začiatku tejto sekcie sa uistite, že ste správne nastavili server Cloudflare DNS.

Najprv pridajte úložisko.

sudo add-apt-repository ppa: certbot/certbot

Aktualizujte zoznam balení.

sudo apt-get aktualizácia

Nainštalujte si CertBot

sudo apt nainštalovať python-certbot-apache

Spustite vytváranie certifikátov. Opäť budete musieť zadať správny názov domény.

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

Po vytvorení sa vás opýta, či má presmerovať všetky pripojenia na SSL. Vyberte presmerovanie.

Teraz vám povie, že úspešne vytvoril certifikát pre vašu doménu. Uistite sa, že ste uložili 2 cesty, ktoré vám ponúka.

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

Teraz prejdite do priečinka s certifikátmi prostredníctvom:

Nezabudnite zmeniť example.com na správneho hostiteľa.

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

Teraz skopírujme tento obsah do nášho priečinka projektu.

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

A

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

Pripojte Apache k vašej doméne

Na správnu konfiguráciu Apache s vašou doménou budeme musieť vytvoriť konfiguračný súbor. Nezabudnite zadať názov svojej domény, napríklad funergydev.com.

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

Potom ho prilepte do súboru. Nahraďte example.com svojim názvom domény.

Uistite sa, že váš certifikát a súkromný kľúč sú správnou cestou. Nastavte ich na cestu, ktorú ste uložili predtým, keď sme ich vytvorili, potom pomocou certbot.

DocumentRoot "/var/www/html/" SSLEngine na SSLCertificateFile /home/pi/Mirror/resources/certs/cert.pem SSLCertificateKeyFile /home/pi/Mirror/resources/certs/privkey.pem # Ďalšie smernice tu Možnosti Indexy FollowSymLinks AllowOverride Všetky Vyžadujú všetky povolené

Teraz musíme povoliť niektoré úpravy a potom prinútiť Apache znova načítať konfiguráciu takto:

sudo a2enmod ssl

sudo a2enmod prepísať

sudo systemctl znova načítať apache2

Teraz by ste mali byť schopní prejsť cez názov vašej domény na vaše pi a zobraziť predvolenú stránku apache.

Krok 6: Google API

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

Prejdite do konzoly pre vývojárov prostredníctvom

Časť 1

Vytvorte svoj prvý projekt kliknutím na logo Google API a kliknutím na tlačidlo NOVÝ PROJEKT. Vyplňte príslušný názov projektu a kliknite na tlačidlo Vytvoriť. [Foto1]

Časť 2

Teraz sa dostanete na túto stránku. Kliknite na tlačidlo knižnice. [Foto2]

Toto je veľký zoznam všetkých rozhraní API, ktoré by ste mohli použiť, ale budeme hľadať rozhranie Google Calendar API. Kliknite naň a stlačte POVOLIŤ. [Foto3]

Potom získate prehľad o rozhraní Calendar API. Kliknutím na logo Google API sa vráťte k svojmu projektu. [Foto4]

Časť 3

Ak chcete správne nastaviť všetko, kliknite na kategóriu poverení a vyberte kartu Overenie domény.

Tu budete musieť overiť názov svojej domény.

  1. Kliknite na PRIDAŤ DOMÉNU
  2. Vyplňte svoju doménu
  3. Potom vás požiada o overenie vašej domény. Kliknite na Pokračovať.
  4. Vyberte poskytovateľa názvu domény. [Foto5]
  5. Postupujte podľa postupu
  6. Teraz ho budete môcť takto pridať do zoznamu overenia domény v konzole Google API. Uistite sa, že je vaša doména začiarknutá. [Foto6]

4. časť

Teraz zvoľte záložku obrazovky súhlasu OAuth. [Foto7]

Vyplňte názov aplikácie

Ďalej budeme pridávať rozsahy na obrazovku súhlasu. To znamená, že sa používateľa na obrazovke so súhlasom opýtame, či chce so zrkadlom zdieľať svoje informácie z kalendára.

  1. Kliknite na Pridať rozsah a vyhľadajte kalendár.
  2. Skontrolujte../auth/calendar.readonly a stlačte tlačidlo pridať. [Foto8]

Vyplňte autorizovanú doménu. Toto by mala byť doména, ktorú ste práve overili. [Foto9]

Teraz kliknite na veľké tlačidlo uloženia pod formulárom.

Časť 5

Nakoniec musíme vytvoriť poverenia. Pretože sme stlačili tlačidlo Uložiť, boli sme presmerovaní na kartu poverení. Kliknite na položku Vytvoriť poverenia a vyberte položku OAuth Client ID. [Foto10]

Vyberte typ aplikácie: webová aplikácia a pomenujte ju.

Do URI autorizovaného presmerovania zadajte nasledujúci odkaz a zadajte správnu doménu.

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

Kliknite na vytvoriť. Zobrazí sa vyskakovacie okno, ktoré stačí kliknúť na tlačidlo OK. Teraz stlačte tlačidlo sťahovania na povereniach, ktoré ste práve urobili

Časť 6

Teraz otvorte súbor JSON a skopírujte obsah.

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

Prilepte ich sem.

Časť 7

Teraz musíme v konfigurácii definovať našu doménu takto:

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

Krok 7: Dizajn zrkadla

Zrkadlový dizajn
Zrkadlový dizajn
Zrkadlový dizajn
Zrkadlový dizajn
Zrkadlový dizajn
Zrkadlový dizajn
Zrkadlový dizajn
Zrkadlový dizajn

Navrhovanie zrkadla závisí od toho, ako ho chcete. Vykonajte presné merania LCD a na jednej strane zrkadla ponechajte medzeru 2 centimetre, pretože tam bude sedieť mikrovlnný snímač pohybu. Nemôže to byť za žiadnym kovom.

Spojil som dokopy 4 dosky z dreva. Tieto boli vyfrézované, aby mali pekne čistú prednú časť zrkadla. Na vrchu som tiež vyvŕtal niekoľko otvorov, aby prešiel zvuk reproduktora. Na opačnej strane zrkadla, spodnej časti, som vyrezal malý obdĺžnik, aby som mohol ľahko urobiť elektrické vedenie. [Foto1]

Jedná sa o 2 kusy lacného dreva, na ktorom bude monitor ťažiť. Keďže som povedal, potrebovali by sme asi 2 centimetrovú medzeru medzi zrkadlom a puzdrom. Tiež som pridal 3 malé kúsky dreva a zaskrutkoval ich na odpočívadlá. Monitor by teda zostal na svojom mieste. [Foto2]

Nakoniec to vyzeralo takto. Medzi týmito odpočívadlami a prednou časťou puzdra zrkadla som mal asi 3 mm medzeru. Toľko, aby som doň mohol vložiť 3 mm hrubé obojsmerné zrkadlo. [Foto3]

Krok 8: Vykonanie zapojenia

Vykonávanie elektroinštalácie
Vykonávanie elektroinštalácie
Vykonávanie elektroinštalácie
Vykonávanie elektroinštalácie
Vykonávanie elektroinštalácie
Vykonávanie elektroinštalácie

Uistite sa, že ste správne dodržali jednu z týchto schém.

Akonáhle som urobil zapojenie, prilepil som ho na zadnú stranu obrazovky obojstrannou páskou. Pretože keby som niekedy chcel zrkadlo rozobrať a použiť ho na iné projekty, mohol by som ho ľahko odstrániť. Ak ste si istí, môžete použiť horúcu lepiacu pištoľ a prilepiť ju k zadnej časti zrkadla.

Krok 9: Spustenie kódu

Spustenie kódu
Spustenie kódu
Spustenie kódu
Spustenie kódu
Spustenie kódu
Spustenie kódu

LXSession

Najprv vytvoríme niekoľko priečinkov

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

Teraz vytvoríme súbor, v ktorom zadáme niekoľko parametrov/príkazov pri spustení.

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

Do súboru prilepte nasledujúce položky.

@lxpanel --profil LXDE-pi

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

Aktualizujeme skript úvodnej zrkadlovej obrazovky tak, aby zodpovedal nášmu hostiteľovi.

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

Ak nepoužívate kalendár Google a doménu, zvoľte localhost.

#!/bin/bash

spánok 15 prehliadač chrómu-inkognito-kiosk https:// localhost/mirror

Ak ho používate, zadajte svojho hostiteľa.

#!/bin/bash

spánok 15 prehliadač chrómu-inkognito-kiosk

Služba

Teraz nastavíme, aby sa zrkadlový kód automaticky spustil.

Vytvoríme službu, ktorá nám automaticky spustí kód.

Ísť do:

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

A vložte to do súboru

[Jednotka]

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

Teraz budeme musieť démona systemd znova načítať takto:

sudo systemctl daemon-reload

A taktiež povolíme, aby sa služba automaticky spustila pri štarte.

sudo systemctl povoliť zrkadlo

Teraz vypneme.

sudo vypnutie

Konečné nastavenia

Nakoniec musíme odstrániť náš APIPA ip, aby fungoval iba cez WiFi.

  1. Prejdite v počítači do zavádzacieho adresára karty SD.
  2. Otvorte súbor "cmdline.txt"
  3. Odstrániť ip = 169.254.10.1 Na konci dlhého riadku textu.

Krok 10: Spustenie zrkadla

Spustenie zrkadla
Spustenie zrkadla
Spustenie zrkadla
Spustenie zrkadla
Spustenie zrkadla
Spustenie zrkadla
Spustenie zrkadla
Spustenie zrkadla

Navštívte adresu IP, ktorá je na zrkadlovej obrazovke, alebo ak máte nastavený kalendár Google, zadajte názov domény.

Teraz budete môcť nastaviť zrkadlo!

Ak sa vám v zrkadle zobrazí chyba SSL, možno budete chcieť svoje certifikáty pridať do úložiska certifikátov Chromium.

Odporúča: