Obsah:

Inteligentní zrcadlo pro více uživatelů s Kalendářem Google: 10 kroků
Inteligentní zrcadlo pro více uživatelů s Kalendářem Google: 10 kroků

Video: Inteligentní zrcadlo pro více uživatelů s Kalendářem Google: 10 kroků

Video: Inteligentní zrcadlo pro více uživatelů s Kalendářem Google: 10 kroků
Video: Umělá inteligence je pro nás příležitost nebo hrozba? | Filip Dřímalka | Electro Dad # 581 2024, Listopad
Anonim
Inteligentní zrcadlo pro více uživatelů s Kalendářem Google
Inteligentní zrcadlo pro více uživatelů s Kalendářem Google
Inteligentní zrcadlo pro více uživatelů s Kalendářem Google
Inteligentní zrcadlo pro více uživatelů s Kalendářem Google

V tomto pokynu vytvoříme inteligentní zrcadlo integrované s Kalendářem Google. Udělal jsem tento projekt, protože mi připadají inteligentní zrcadla opravdu skvělá, ráno jsou dar z nebes. Ale rozhodl jsem se udělat jeden sám od nuly, protože všichni ostatní mají 1 chybu. Jsou příliš vyspělí a přeplnění. Rozhodl jsem se to zjednodušit.

Zásoby

Před

začneme to jsou věci, které rozhodně budete potřebovat k vybudování zrcadla jako já. Tyto zásoby budou stát kolem 250 až 350 eur v závislosti na vašem regionu a aktuálních cenách.

Hardware

Senzory

  • Jeden snímač teploty drátu
  • RWCL 0516 (mikrovlnný pohybový senzor)
  • Měkký potenciometr (Touchstrip od Sparkfun)

Výpočetní

a IC

  • Reproduktor (3,2 W při 4Ω NEBO 1,8W při 8Ω)
  • MCP3008
  • Adafruit I2S 3W zesilovač třídy D Breakout - MAX98357A
  • Raspberry Pi 3 B+
  • Karta SD (8 GB je v pořádku)
  • Rezistor 4,7K Ohm

Rozličný

  • Propojovací dráty
  • Prkénko
  • Obousměrné zrcátko Acryl (15% přenos světla)
  • Monitor IPS (velikost závisí na tom, jak velký ho chcete)
  • HDMI kabel
  • Dřevo

Software

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

Krok 1: Nastavení

Abychom mohli začít, musíme nejprve nastavit váš Pi pro kód, který jsem vytvořil.

Budete potřebovat dvě věci:

  • Win32 Disk Imager z
  • Obrázek operačního systému Raspbian z

Stáhněte si soubor ZIP a rozbalte jej, kamkoli budete chtít.

Instalace

  1. Vyberte svůj obrázek pomocí ikony složky
  2. V rozevíracím seznamu vyberte kartu SD
  3. Klikněte na napsat

Nyní budeme muset provést nějaké drobné úpravy s některými nastaveními, abychom měli přístup k Pi.

  1. Přejděte do spouštěcího adresáře karty SD
  2. Otevřete soubor "cmdline.txt"
  3. Přidat ip = 169.254.10.1 Na konci dlouhého řádku textu odděleného mezerou (na stejném řádku).
  4. Uložte soubor.
  5. Vytvořte soubor s názvem ssh bez přípony ve stejném adresáři

Nyní můžete kartu SD vysunout a vložit do Pi.

Spojovací

Nyní budeme muset nastavit software.

Nejprve zapojte kabel LAN, jeden konec do stolního počítače/notebooku a druhý do počítače Pi.

Nyní spusťte Raspberry Pi.

  1. Nainstalujte tmel z
  2. Do pole IP zadejte 169.254.10.1.
  3. Ujistěte se, že je vybráno SSH a je vyplněn port 22.
  4. Klikněte na otevřít
  5. Vyplňte uživatelské jméno: pí
  6. Vyplňte heslo: malina

Raspi-config

Spusťte nástroj Raspi-config pomocí:

sudo raspi-config

V kategorii rozhraní povolte následující možnosti

  • 1-Wire
  • SPI

Vyberte svou zemi WiFi prostřednictvím kategorie lokalizace.

Dále zakažte následující možnosti v kategorii možností zavádění

Úvodní obrazovka

Nakonec nastavte Desktop/CLI v kategorii možností spuštění na Desktop Autologin.

WiFi

Pro zrcadlo potřebujeme mít wifi připojení, takže se ujistěte, že máte své wifi pověření zavřené.

Přejít do kořenového režimu

sudo -i

Vložte tento řádek, ale ujistěte se, že jsou vyplněny SSID a heslo

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

Zadejte klienta WPA.

wpa_cli

Vyberte rozhraní

rozhraní wlan0

Znovu načtěte konfiguraci

přenastavit

Ujistěte se, že jste připojeni správně, zadáním…

ip a

… A zjistit, zda máte IP na rozhraních WLAN0.

Balíčky

Nyní, když jsme připojeni k internetu, budeme muset nainstalovat nějaké balíčky.

Nejprve budeme muset aktualizovat seznamy balíčků pro ten nejnovější.

sudo apt aktualizace

Krajta

Donutíme Raspbian používat 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

Vložením následujícího řádku nainstalujete databázi.

sudo apt nainstalovat mariadb-server

Poté budeme muset zajistit naši instalaci.

mysql_secure_installation

Požádá nás o aktuální heslo uživatele root, protože ho nemáme, stačí stisknout Enter.

Dále se ptá, zda chceme heslo typu root v y, protože ho chceme.

Pro další otázky stačí zadat Y.

Nakonec vytvoříme uživatele, kterého budeme moci pro zrcadlo použít.

Zadejte shell mysql takto:

Povýšme se na root

sudo -i

Zadejte shell mysql

mysql

Nahraďte svým vlastním uživatelským jménem a totéž s

udělte všechna oprávnění pro zrcadlo.* ''@'%' označené '';

Nyní vyprázdníme tabulku oprávnění.

FLUSH PRIVILEGES;

Webový server Apache

Chcete -li nainstalovat webový server, spusťte následující řádek.

sudo apt install apache2 -y

Balíčky Pythonu

Tyto balíčky nainstalujeme

  • Baňka
  • Baňky-Cors
  • Flask-MySQL
  • Flask-SocketIO
  • PyMySQL
  • Baňka-talisman
  • Gevent
  • Gevent-websocket
  • Klient Google api-python
  • Google-auth
  • Google-auth-httplib2
  • Google-auth-oauthlib
  • Httplib2
  • Icalendar
  • Icaleventy
  • Oauthlib
  • Python-socketio
  • Žádosti
  • Wsaccel
  • Ujson

Tím, že dělá

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 požadavky wsaccel uj

Nastavení reproduktorů

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

Nyní musíme restartovat, takže stiskněte y.

Znovu spusťte skript

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

Nyní musíme restartovat podruhé

sudo restart

Obrazovka (monitor)

V závislosti na tom, jak chcete orientaci obrazovky, můžete obrazovku otočit.

K otočení obrazovky potřebujeme přístup k možnostem spouštění takto:

sudo nano /boot/config.txt

A poté vložte jeden z těchto řádků do konfiguračního souboru:

display_rotate = 0

display_rotate = 1

display_rotate = 2

display_rotate = 3

První z nich, 0, je normální konfigurace. 1 bude 90 stupňů, 2 je 180 stupňů a poslední bude 270 stupňů.

Poté restartujte.

sudo restart

Krok 2: Instalace zrcadla

Instalace zrcadla
Instalace zrcadla

Nyní nastavíme místo pro stažení mého kódu.

cd/home/pi/

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

Nyní zkopírujeme některé složky na správné místo určení

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

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

Instalace databáze je nezbytným krokem při vytváření projektu.

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

Krok 3: Konfigurace

Konfigurační soubor se nachází na adrese:

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

Zadejte uživatele MYSQL a heslo.

To musí být uživatel mysql, kterého jsme právě vytvořili.

Ostatní nastavení si projdeme později v tomto pokynu.

Krok 4: API

Nyní jsme dokončili instalaci Pi, probereme některá témata, která byste mohli chtít udělat.

Temná obloha

Vytvořte klíč Darsky API prostřednictvím

Když se zaregistrujete, uvidíte svůj klíč API na hlavním panelu.

Tento klíč zadejte do konfiguračního souboru zrcadleného projektu, který jste dříve nainstalovali.

Kalendář

Ve výchozím nastavení budete moci k zobrazení kalendáře používat pouze adresy URL ical. Ale tato část bude o tom, jak propojit vaše zrcadlo s ekosystémem Google. Jedná se o obecně delší a bolestivější proces.

Věci, které rozhodně budete potřebovat

Název domény

To jsou věci, které během této části nastavíme

  • Účet CloudFlare
  • Účet vývojáře Google
  • Google Developer Project
  • Nastavte rozhraní Calendar API

Krok 5: Kalendář

Kalendář
Kalendář
Kalendář
Kalendář

Cloudflare

Vytvořte si cloudflare účet z https://cloudflare.com a podle průvodce přeneste své doménové jméno do Cloudflare DNS.

Není třeba vytvářet záznam A sami, který ukazuje na malinový pi. Můj Mirror kód to udělá za vás. Protože ve většině domácích wifi nejsou IP statické, takže po restartu už nemusí fungovat. Aby můj kód automaticky aktualizoval IP, bude potřebovat váš klíč API účtu.

  1. Klikněte na tlačítko Získat klíč klíče API na hlavním panelu na pravé straně. [Foto 1]
  2. Přejděte dolů a zobrazte svůj klíč Global API. [Foto 2]

Tento klíč zadejte do konfiguračního souboru zrcadleného projektu, který jste dříve nainstalovali.

Vytvoření certifikátu SSL

Google vyžaduje, abychom měli připojení SSL. Chcete -li spustit tuto část, ujistěte se, že jste správně nastavili server Cloudflare DNS.

Nejprve přidejte úložiště.

sudo add-apt-repository ppa: certbot/certbot

Aktualizujte seznam balíků.

sudo apt-get update

Nainstalujte si CertBot

sudo apt install python-certbot-apache

Spusťte vytváření certifikátu. Opět budete muset vyplnit správný název domény.

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

Po vytvoření se vás zeptá, zda má přesměrovat všechna připojení na SSL. Zvolte přesměrování.

Nyní vám řekne, že úspěšně vytvořil certifikát pro vaši doménu. Nezapomeňte uložit 2 cesty, které vám poskytne.

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

Nyní přejděte do složky s certifikáty přes:

Nezapomeňte změnit example.com na správného hostitele.

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

Nyní zkopírujme tento obsah do naší složky projektu.

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

A

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

Propojte Apache s vaší doménou

Pro správnou konfiguraci Apache s vaší doménou budeme muset vytvořit konfigurační soubor. Nezapomeňte vyplnit název své domény, například funergydev.com.

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

Poté jej vložte do souboru. Nahraďte example.com názvem vaší domény.

Ujistěte se, že váš certifikát a soukromý klíč jsou správnou cestou. Nastavte je na cestu, kterou jste uložili dříve, když jsme ji vytvořili, pak přes certbot.

DocumentRoot "/var/www/html/" SSLEngine na SSLCertificateFile /home/pi/Mirror/resources/certs/cert.pem SSLCertificateKeyFile /home/pi/Mirror/resources/certs/privkey.pem # Další směrnice zde Možnosti Rejstříky FollowSymLinks AllowOverride Vše Vyžadovat vše uděleno

Nyní musíme povolit některé úpravy a poté přinutit Apache znovu načíst konfiguraci takto:

sudo a2enmod ssl

přepsat sudo a2enmod

sudo systemctl znovu načíst apache2

Nyní byste měli být schopni přejít přes název vaší domény na vaše pi a zobrazit výchozí stránku apache.

Krok 6: Google API

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

Přejděte do konzoly pro vývojáře přes

Část 1

Vytvořte svůj první projekt kliknutím vedle loga Google API a kliknutím na tlačítko NOVÝ PROJEKT. Vyplňte příslušný název projektu a klikněte na tlačítko vytvořit. [Foto1]

Část 2

Nyní se dostanete na tuto stránku. Klikněte na tlačítko knihovny. [Foto2]

Toto je velký seznam všech API, která byste mohli použít, ale budeme hledat API Google Calendar. Klikněte na něj a stiskněte POVOLIT. [Foto3]

Poté se dostanete k přehledu Kalendáře API. Kliknutím na logo Google API se vrátíte zpět k vašemu projektu. [Foto4]

Část 3

Chcete -li vše správně nastavit, klikněte na kategorii pověření a vyberte kartu Ověření domény.

Zde budete muset ověřit název své domény.

  1. Klikněte na PŘIDAT DOMÉNU
  2. Vyplňte svou doménu
  3. Poté vás požádá o ověření vaší domény. Klikněte na Pokračovat.
  4. Vyberte poskytovatele názvu domény. [Foto5]
  5. Postupujte podle pokynů
  6. Nyní jej budete moci takto přidat do seznamu ověřování domény v konzole Google API. Ujistěte se, že je vaše doména zaškrtnutá. [Foto6]

Část 4

Nyní vyberte záložku obrazovky souhlasu OAuth. [Foto7]

Vyplňte Název aplikace

Dále budeme přidávat obory na obrazovku souhlasu. To znamená, že se uživatele na obrazovce souhlasu zeptáme, zda chce se zrcadlem sdílet informace o svém kalendáři.

  1. Klikněte na Přidat rozsah a vyhledejte kalendář.
  2. Zkontrolujte../auth/calendar.readonly a stiskněte Přidat. [Foto8]

Vyplňte autorizovanou doménu. Toto by měla být doména, kterou jste právě ověřili. [Foto9]

Nyní klikněte na velké tlačítko pro uložení pod formulářem.

Část 5

Nakonec musíme vytvořit přihlašovací údaje. Protože jsme stiskli tlačítko Uložit, byli jsme přesměrováni na kartu přihlašovacích údajů. Klikněte na vytvořit přihlašovací údaje a zvolte ID klienta OAuth. [Foto10]

Vyberte Typ aplikace: Webová aplikace a pojmenujte ji.

Do URI autorizovaného přesměrování zadejte následující odkaz a zadejte správnou doménu.

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

Klikněte na vytvořit. Zobrazí se vyskakovací okno, stačí kliknout na OK. Nyní stiskněte tlačítko Stáhnout na pověřeních, která jste právě vytvořili

Část 6

Nyní otevřete soubor JSON a zkopírujte obsah.

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

Vložte je sem.

Část 7

Nyní musíme v konfiguraci definovat naši doménu takto:

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

Krok 7: Zrcadlový design

Zrcadlový design
Zrcadlový design
Zrcadlový design
Zrcadlový design
Zrcadlový design
Zrcadlový design
Zrcadlový design
Zrcadlový design

Navrhování zrcadla závisí na tom, jak ho chcete. Provádějte přesná měření LCD a ponechejte na jedné straně zrcadla mezeru 2 centimetry, protože tam bude sedět mikrovlnný pohybový senzor. Nemůže to být za žádným kovem.

Spojil jsem dohromady 4 prkna dřeva. Ty byly vyfrézovány, aby měly pěkně čistou přední část zrcadla. Nahoře jsem také vyvrtal několik otvorů, aby zvuk reproduktoru procházel. Na opačné straně zrcadla, spodní, jsem vyřízl malý obdélník, abych mohl snadno provést elektrické vedení. [Foto1]

Jedná se o 2 kusy levného dřeva, na kterém bude monitor trpět. Protože jsem řekl, potřebovali bychom asi 2centimetrovou mezeru mezi zrcadlem a pouzdrem. Také jsem přidal 3 malé kousky dřeva a přišrouboval je na ty odpočívající kousky. Monitor by tedy zůstal na svém místě. [Foto2]

Nakonec to vypadalo takto. Mezi těmi odpočívajícími díly a přední částí pouzdra zrcadla jsem měl asi 3 mm mezeru. Jen tolik, abych mohl vložit 3 mm silné obousměrné zrcadlo. [Foto3]

Krok 8: Provedení zapojení

Provádění elektroinstalace
Provádění elektroinstalace
Provádění elektroinstalace
Provádění elektroinstalace
Provádění elektroinstalace
Provádění elektroinstalace

Ujistěte se, že jste řádně dodržovali jedno z těchto schémat.

Jakmile jsem provedl zapojení, nalepil jsem jej na zadní stranu obrazovky oboustrannou páskou. Protože kdybych někdy chtěl zrcadlo rozebrat a použít ho pro jiné projekty, mohl bych ho snadno odstranit. Pokud jste si jisti, můžete použít horkou lepicí pistoli a přilepit ji k zadní části zrcadla.

Krok 9: Spuštění kódu

Spuštění kódu
Spuštění kódu
Spuštění kódu
Spuštění kódu
Spuštění kódu
Spuštění kódu

LXSession

Pojďme si nejprve vytvořit pár složek

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

Nyní vytvoříme soubor, kde zadáme několik spouštěcích parametrů/příkazů.

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

Do souboru vložte následující.

@lxpanel --profile 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 úvodní zrcadlové obrazovky tak, aby odpovídal našemu hostiteli.

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

Pokud nepoužíváte kalendář Google a doménu, vyberte localhost.

#!/bin/bash

spánek 15 chromový prohlížeč-inkognito-kiosk https:// localhost/mirror

Pokud jej používáte, zadejte hostitele.

#!/bin/bash

spánek 15 chromový prohlížeč-inkognito-kiosek

Servis

Nyní nastavíme, aby se zrcadlový kód automaticky spustil.

Vytvoříme službu, která nám automaticky spustí kód.

Jít do:

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

A vložte to do souboru

[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

Nyní budeme muset démona systemd znovu načíst takto:

sudo systemctl daemon-reload

A také povolíme automatické spuštění služby při spuštění.

sudo systemctl povolit zrcadlení

Nyní vypneme.

sudo poweroff

Konečné nastavení

Nakonec musíme odebrat náš APIPA ip, aby fungoval pouze na WiFi.

  1. V počítači přejděte do zaváděcího adresáře karty SD.
  2. Otevřete soubor "cmdline.txt"
  3. Odebrat ip = 169.254.10.1 Na konci dlouhého řádku textu.

Krok 10: Spuštění zrcadla

Spuštění zrcadla
Spuštění zrcadla
Spuštění zrcadla
Spuštění zrcadla
Spuštění zrcadla
Spuštění zrcadla
Spuštění zrcadla
Spuštění zrcadla

Navštivte adresu IP, která je na zrcadlové obrazovce, nebo pokud jste nastavili kalendář Google, vyplňte název domény.

Nyní budete moci nastavit zrcadlo!

Pokud se vám na zrcadle zobrazí chyba SSL, možná budete chtít přidat své certifikáty do úložiště certifikátů Chromium.

Doporučuje: