Obsah:
- Zásoby
- Krok 1: Nastavení
- Krok 2: Instalace zrcadla
- Krok 3: Konfigurace
- Krok 4: API
- Krok 5: Kalendář
- Krok 6: Google API
- Krok 7: Zrcadlový design
- Krok 8: Provedení zapojení
- Krok 9: Spuštění kódu
- Krok 10: Spuštění zrcadla
Video: Inteligentní zrcadlo pro více uživatelů s Kalendářem Google: 10 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:21
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
- Vyberte svůj obrázek pomocí ikony složky
- V rozevíracím seznamu vyberte kartu SD
- 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.
- Přejděte do spouštěcího adresáře karty SD
- Otevřete soubor "cmdline.txt"
- Přidat ip = 169.254.10.1 Na konci dlouhého řádku textu odděleného mezerou (na stejném řádku).
- Uložte soubor.
- 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.
- Nainstalujte tmel z
- Do pole IP zadejte 169.254.10.1.
- Ujistěte se, že je vybráno SSH a je vyplněn port 22.
- Klikněte na otevřít
- Vyplňte uživatelské jméno: pí
- 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
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ář
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.
- Klikněte na tlačítko Získat klíč klíče API na hlavním panelu na pravé straně. [Foto 1]
- 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
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.
- Klikněte na PŘIDAT DOMÉNU
- Vyplňte svou doménu
- Poté vás požádá o ověření vaší domény. Klikněte na Pokračovat.
- Vyberte poskytovatele názvu domény. [Foto5]
- Postupujte podle pokynů
- 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.
- Klikněte na Přidat rozsah a vyhledejte kalendář.
- 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
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í
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
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.
- V počítači přejděte do zaváděcího adresáře karty SD.
- Otevřete soubor "cmdline.txt"
- Odebrat ip = 169.254.10.1 Na konci dlouhého řádku textu.
Krok 10: 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:
Připomenutí schůzky kalendáře aplikace Outlook s kalendářem v aplikaci Outlook: 6 kroků
Připomenutí schůzky kalendáře aplikace Nextion s dotykovou obrazovkou v aplikaci Outlook: Důvodem, proč jsem zahájil tento projekt, bylo to, že často jsem zmeškal schůzky a usoudil, že potřebuji lepší systém připomenutí. Přestože používáme kalendář Microsoft Outlook, většinu času jsem strávil na Linuxu/UNIXu na stejném počítači. Při práci s
Pěstování více salátu na menším prostoru nebo Pěstování salátu ve vesmíru, (více či méně) .: 10 kroků
Pěstování více salátu na menším prostoru Nebo … Pěstování salátu ve vesmíru ((více či méně)): Toto je profesionální příspěvek do soutěže Growing Beyond Earth, Maker Contest, podané prostřednictvím Instructables. Nemohl jsem být více nadšený, že navrhuji vesmírnou produkci plodin a zveřejňuji svůj první Instructable. Na začátku nás soutěž požádala, abychom
Použití více než 4 motorů - skládání více štítů motoru: 3 kroky
Použití více než 4 motorů - stohování více motorových štítů: Instruktabilní vibrotaktilní senzorické substituční a augmentační zařízení (https: //www.instructables.com/id/Vibrotactile-Sens …) ukazuje způsob, jak vytvořit zařízení, které překládá senzorické vstup do vibračních podnětů. Tyto vibrační podněty jsou
Ovládací centrum Arduino Outlet Box s Kalendářem Google: 4 kroky
Ovládací centrum Arduino Outlet Box s Kalendářem Google: V tomto Instructable se naučíte, jak vytvořit řídicí centrum pro váš domov pomocí 4-zásuvkového modulu Adafruit Power Relay. Budete potřebovat desku Arduino s wifi modulem, jako je Adafruit Feather Huzzah a Adafruit Power Relay Module 4
Jak vytvořit flash disk, který kopíruje soubory uživatelů tiše a automaticky: 7 kroků
Jak vytvořit flash disk, který kopíruje soubory uživatelů potichu a automaticky: ****** TATO INSTRUKCE JE POUZE PRO ÚČELY INFORMACÍ JE NEDOVOLNÉ KOPÍROVAT NĚKTERÉ SOUBORY BEZ JEHO POVOLENÍ NENÍ ODPOVĚDNÝ ZA NIC, CO SE MŮŽE NEBO MOŽNO STÁT INFORMACE SE POUŽÍVAJÍ NESPRÁVNĚ **************** Jak vybudovat