Spisu treści:
- Kieszonkowe dzieci
- Krok 1: Konfiguracja
- Krok 2: Instalowanie lustra
- Krok 3: Konfiguracja
- Krok 4: API
- Krok 5: Kalendarz
- Krok 6: API Google
- Krok 7: Projekt lustra
- Krok 8: Wykonanie okablowania
- Krok 9: Uruchamianie kodu
- Krok 10: Uruchamianie lustra
Wideo: Inteligentne lustro dla wielu użytkowników z kalendarzem Google: 10 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:29
W tej instrukcji będziemy tworzyć inteligentne lustro zintegrowane z Kalendarzem Google. Zrobiłem ten projekt, ponieważ uważam, że inteligentne lustra są naprawdę fajne, rano są darem niebios. Ale postanowiłem zrobić jeden od zera, bo wszystkie inne mają 1 wadę. Są zbyt zaawansowane i zagracone. Postanowiłem to uprościć.
Kieszonkowe dzieci
Przed
zaczniemy od tych rzeczy, których na pewno będziesz potrzebować do zbudowania lustra takiego jak moje. Dostawy te będą kosztować około 250 do 350 euro w zależności od regionu i aktualnych cen.
Sprzęt komputerowy
Czujniki
- Czujnik temperatury z jednym przewodem
- RWCL 0516 (mikrofalowy czujnik ruchu)
- Potencjometr miękki (pasek dotykowy firmy Sparkfun)
Przetwarzanie danych
i IC
- Głośnik (3,2 W przy 4 Ω LUB 1,8 W przy 8 Ω)
- MCP3008
- Adafruit I2S 3W wzmacniacz klasy D Breakout - MAX98357A
- Raspberry Pi 3B+
- Karta SD (8 GB wystarczy)
- Rezystor 4,7K Ohm
Różny
- Zworki
- Deska do krojenia chleba
- Akrylowe lustro dwukierunkowe (15% przepuszczalności światła)
- Monitor IPS (rozmiar zależy od tego, jak duży chcesz)
- kabel HDMI
- Drewno
Oprogramowanie
- Kit
- Edytor kodu (wystarczy Notepad++)
- Win32 Disk Imager
- Obraz systemu operacyjnego Raspbian
Krok 1: Konfiguracja
Aby rozpocząć, najpierw musimy skonfigurować Twoje Pi dla kodu, który zrobiłem.
Będziesz potrzebować dwóch rzeczy:
- Win32 Disk Imager z
- Obraz Raspbian OS z
Pobierz plik ZIP i rozpakuj go w dowolne miejsce.
Instalacja
- Wybierz swój obraz za pomocą ikony folderu
- Wybierz swoją kartę SD z listy rozwijanej
- Kliknij na napisz
Teraz będziemy musieli wykonać dodatkowe majsterkowanie przy niektórych ustawieniach, abyśmy mogli uzyskać dostęp do Pi.
- Przejdź do katalogu rozruchowego karty SD
- Otwórz plik „cmdline.txt”
- Dodaj ip=169.254.10.1 Na końcu długiej linii tekstu oddzielonej spacją (w tej samej linii).
- Zapisz plik.
- Utwórz plik o nazwie ssh bez rozszerzenia w tym samym katalogu
Teraz możesz wysunąć kartę SD i włożyć ją do swojego Pi.
Złączony
Teraz będziemy musieli skonfigurować oprogramowanie.
Najpierw podłącz kabel LAN, jeden koniec do komputera stacjonarnego/laptopa, a drugi do Pi.
Teraz uruchom Raspberry Pi.
- Zainstaluj Putty z
- Wprowadź 169.254.10.1 w polu IP.
- Upewnij się, że wybrano SSH, a port 22 jest wypełniony.
- Kliknij otwórz
- Wpisz nazwę użytkownika: pi
- Wpisz hasło: malina
Konfiguracja raspi
Otwórz narzędzie Raspi-config za pomocą:
sudo raspi-config
Włącz następujące opcje w kategorii interfejsów
- 1-przewodowy
- SPI
Wybierz swój kraj WiFi w kategorii lokalizacji.
Następnie wyłącz następujące opcje w kategorii opcji rozruchu
Ekran powitalny
Na koniec ustaw ustawienie Desktop/CLI w kategorii opcji rozruchu na Desktop Autologin.
Wi-Fi
W przypadku dublowania musimy mieć połączenie Wi-Fi, więc upewnij się, że masz zamknięte dane uwierzytelniające Wi-Fi.
Przejdź do trybu roota
sudo-i
Wklej tę linię, ale upewnij się, że SSID i hasło są wypełnione
wpa_passphrase "SSID" "HASŁO" >> /etc/wpa_supplicant/wpa_supplicant.conf
Wejdź do klienta WPA.
wpa_cli
Wybierz interfejs
interfejs wlan0
Odśwież konfigurację
przekonfigurować
Upewnij się, że masz prawidłowe połączenie, wpisując…
ip a
…i sprawdzanie, czy masz adres IP na interfejsach WLAN0.
Pakiety
Teraz, gdy mamy połączenie z Internetem, będziemy musieli zainstalować kilka pakietów.
Najpierw musimy odświeżyć listę pakietów do najnowszej.
aktualizacja sudo apt
Pyton
Zmusimy Raspbian do używania Pythona 3
update-alternatives – zainstaluj /usr/bin/python python /usr/bin/python2.7 1
update-alternatives -- zainstaluj /usr/bin/python python /usr/bin/python3 2
MariaDB
Wklej następujący wiersz, aby zainstalować bazę danych.
sudo apt zainstaluj serwer mariadb
Wtedy będziemy musieli zabezpieczyć naszą instalację.
mysql_secure_installation
Zapyta nas o aktualne hasło roota, ponieważ go nie mamy, wystarczy nacisnąć enter.
Następnie pyta, czy chcemy wpisać hasło roota w y, ponieważ je chcemy.
W przypadku kolejnych pytań wystarczy wpisać Y.
Na koniec stworzymy użytkownika, którego będziemy mogli używać do lustra.
Wejdź do powłoki mysql, wykonując:
Wznieś się do korzeni
sudo-i
Wejdź do powłoki mysql
mysql
Zastąp swoją własną nazwą użytkownika i tym samym
nadaj wszystkie uprawnienia na mirror.* do ''@'%' zidentyfikowanego przez '';
Teraz opróżniamy tabelę uprawnień.
PRZYWILEJE WSPÓŁPRACUJĄCE;
Serwer WWW Apache
Aby zainstalować serwer WWW, uruchom poniższy wiersz.
sudo apt zainstaluj apache2 -y
Pakiety Pythona
Zamierzamy zainstalować te pakiety
- Kolba
- Flask-Cors
- Flask-MySQL
- Kolba-Gniazdo IO
- PyMySQL
- Kolba-talizman
- Gevent
- Gevent-websocket
- Klient-api-python-Google
- Autoryzacja Google
- Google-auth-httplib2
- Google-auth-oauthlib
- Httplib2
- Ikalendarz
- Icalevents
- Oauthlib
- Gniazdo Pythona
- Upraszanie
- Wsaccel
- Ujson
Wykonując
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 icalendar icalevents requesty
Konfiguracja głośników
curl -sS https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/i2samp.sh | grzmotnąć
Teraz musimy zrestartować, więc wciśnij y.
Uruchom ponownie skrypt
curl -sS https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/i2samp.sh | grzmotnąć
Teraz musimy ponownie uruchomić komputer po raz drugi
ponowne uruchomienie sudo
Ekran (monitor)
W zależności od tego, jak chcesz orientację ekranu, możesz chcieć obrócić ekran.
Aby obrócić ekran, musimy uzyskać dostęp do opcji rozruchu, wykonując:
sudo nano /boot/config.txt
A następnie wklejenie jednej z tych linii w pliku konfiguracyjnym:
obrót_wyświetlania=0
display_rotate=1
display_rotate=2
display_rotate=3
Pierwsza z nich, 0, to normalna konfiguracja. 1 będzie miał 90 stopni, 2 to 180 stopni, a ostatni będzie miał 270 stopni.
Następnie uruchom ponownie.
ponowne uruchomienie sudo
Krok 2: Instalowanie lustra
Teraz skonfigurujemy miejsce do pobrania mojego kodu.
cd /home/pi/
git clone https://github.com/nielsdewulf/Mirror MirrorProject cd MirrorProject
Teraz skopiujemy niektóre foldery do właściwego miejsca docelowego
sudo cp -R frontend/mirror/ /var/www/html/mirror/
sudo cp -R frontend/dashboard/ /var/www/html/ Sudo cp -R backend/ /home/pi/Mirror/
Instalacja bazy danych jest niezbędnym krokiem w tworzeniu projektu.
sudo mysql -u root -p << CREATEDATABASE.sql
Krok 3: Konfiguracja
Plik konfiguracyjny znajduje się pod adresem:
sudo nano /home/pi/Mirror/resources/config.ini
Wprowadź użytkownika i hasło MYSQL.
To musi być właśnie utworzony użytkownik mysql.
Inne ustawienia omówimy później w tej instrukcji.
Krok 4: API
Teraz zakończyliśmy instalację Pi, omówimy kilka tematów, które możesz chcieć zrobić.
Ciemne niebo
Utwórz klucz Darsky API za pośrednictwem
Po zarejestrowaniu zobaczysz swój klucz API na pulpicie nawigacyjnym.
Wprowadź ten klucz w pliku konfiguracyjnym projektu lustrzanego, który zainstalowałeś wcześniej.
Kalendarz
Domyślnie do przeglądania kalendarza będziesz mógł używać tylko adresów ical. Ale ta część będzie o tym, jak połączyć swoje lustro z ekosystemem Google. Jest to na ogół dłuższy i bardziej bolesny proces.
Rzeczy, których na pewno będziesz potrzebować
Nazwa domeny
Oto rzeczy, które ustawimy podczas tej części
- Konto CloudFlare
- Konto programisty Google
- Projekt programisty Google
- Skonfiguruj interfejs API kalendarza
Krok 5: Kalendarz
Cloudflare
Skonfiguruj konto cloudflare z https://cloudflare.com i postępuj zgodnie z instrukcjami kreatora, aby przenieść nazwę domeny do Cloudflare DNS.
Nie ma potrzeby samodzielnego tworzenia rekordu A, który wskazuje na raspberry pi. Mój kod lustrzany zrobi to za Ciebie. Ponieważ w większości domowych wifi adresy IP nie są statyczne, więc po ponownym uruchomieniu może już nie działać. Aby mój kod automatycznie aktualizował adres IP, będzie potrzebny klucz API konta.
- Kliknij przycisk Pobierz klucz API na pulpicie nawigacyjnym po prawej stronie. [Zdjęcie 1]
- Przewiń w dół i zobacz swój globalny klucz API. [Zdjęcie 2]
Wprowadź ten klucz w pliku konfiguracyjnym projektu lustrzanego, który zainstalowałeś wcześniej.
Tworzenie certyfikatu SSL
Google wymaga od nas połączenia SSL. Aby rozpocząć tę sekcję, upewnij się, że poprawnie skonfigurowałeś DNS Cloudflare.
Najpierw dodaj repozytorium.
sudo add-apt-repository ppa:certbot/certbot
Zaktualizuj listę pakietów.
aktualizacja sudo apt-get
Zainstaluj CertBota
sudo apt install python-certbot-apache
Rozpocznij tworzenie certyfikatu. Ponownie musisz wpisać poprawną nazwę domeny.
sudo certbot --apache -d example.com -d www.example.com
Po utworzeniu zapyta Cię, czy powinien przekierować wszystkie połączenia na SSL. Wybierz przekierowanie.
Teraz powie Ci, że pomyślnie utworzył certyfikat dla Twojej domeny. Upewnij się, że zapisałeś 2 ścieżki, które ci daje.
- /etc/letsencrypt/live/example.com/cert.pem
- /etc/letsencrypt/live/example.com/privkey.pem
Teraz przejdź do folderu z certyfikatami za pośrednictwem:
Upewnij się, że zmieniłeś example.com na właściwego hosta.
cd /etc/letsencrypt/live/example.com/
Teraz skopiujmy tę zawartość do naszego folderu projektu.
cp cert.pem /home/pi/Mirror/resources/certs/cert.pem
I
cp privkey.pem /home/pi/Mirror/resources/certs/privkey.pem
Połącz Apache ze swoją domeną
Aby poprawnie skonfigurować Apache z Twoją domeną, będziemy musieli utworzyć plik konfiguracyjny. Upewnij się, że wpisałeś nazwę swojej domeny, na przykład funergydev.com.
sudo nano /etc/apache2/sites-enabled/example.com.conf
Następnie wklej to do pliku. Zastąp example.com nazwą swojej domeny.
Upewnij się, że Twój certyfikat i klucz prywatny są poprawną ścieżką. Ustaw je na ścieżkę, którą zapisałeś wcześniej, kiedy tworzyliśmy, a następnie za pomocą certbota.
DocumentRoot "/var/www/html/" SSLEngine on SSLCertificateFile /home/pi/Mirror/resources/certs/cert.pem SSLCertificateKeyFile /home/pi/Mirror/resources/certs/privkey.pem # Inne dyrektywy tutaj Opcje Indeksy FollowSymLinks AllowOverride Wszystkie Wymagaj wszystkich przyznanych
Teraz musimy włączyć pewne modyfikacje, a następnie zmusić Apache do ponownego załadowania konfiguracji, wykonując:
sudo a2enmod ssl
przepisać sudo a2enmod
sudo systemctl przeładuj apache2
Teraz powinieneś być w stanie przejść przez nazwę domeny do swojego pi i zobaczyć domyślną stronę Apache.
Krok 6: API Google
Przejdź do konsoli programisty na
Część 1
Utwórz swój pierwszy projekt, klikając obok logo Google API i klikając przycisk NOWY PROJEKT. Wpisz odpowiednią nazwę projektu i kliknij przycisk Utwórz. [Zdjęcie1]
Część 2
Teraz dotrzesz do tej strony. Kliknij przycisk biblioteki. [Zdjęcie2]
To jest długa lista wszystkich interfejsów API, których możesz użyć, ale będziemy szukać interfejsu API Kalendarza Google. Kliknij na niego i naciśnij WŁĄCZ. [Zdjęcie3]
Zobaczysz wtedy omówienie interfejsu Calendar API. Kliknij logo interfejsów API Google, aby wrócić do swojego projektu. [Zdjęcie4]
Część 3
Aby wszystko poprawnie skonfigurować, kliknij kategorię poświadczeń i wybierz zakładkę Weryfikacja domeny.
Tutaj musisz zweryfikować nazwę swojej domeny.
- Kliknij DODAJ DOMENĘ
- Wpisz swoją domenę
- Następnie poprosi o zweryfikowanie Twojej domeny. Kliknij Kontynuuj.
- Wybierz dostawcę nazwy domeny. [Zdjęcie5]
- Postępuj zgodnie z procesem
- Teraz będziesz mógł dodać go do listy weryfikacji domen w konsoli interfejsu API Google w ten sposób. Upewnij się, że Twoja domena jest sprawdzona. [Zdjęcie6]
Część 4
Teraz wybierz zakładkę ekranu akceptacji OAuth. [Zdjęcie7]
Wpisz nazwę aplikacji
Następnie dodamy zakresy do ekranu zgody. Oznacza to, że zapytamy użytkownika na ekranie akceptacji, czy chce udostępnić dane swojego kalendarza w lustrze.
- Kliknij dodaj zakres i wyszukaj kalendarz.
- Sprawdź../auth/calendar.readonly i naciśnij dodaj. [Zdjęcie8]
Wypełnij autoryzowaną domenę. Powinna to być właśnie zweryfikowana domena. [Zdjęcie9]
Teraz kliknij duży przycisk zapisu pod formularzem.
Część 5
Na koniec musimy stworzyć poświadczenia. Ponieważ nacisnęliśmy przycisk zapisu, zostaliśmy przekierowani do zakładki poświadczeń. Kliknij Utwórz dane logowania i wybierz Identyfikator klienta OAuth. [Zdjęcie10]
Wybierz Typ aplikacji: Aplikacja internetowa i nadaj jej nazwę.
Wprowadź następujący link w URI autoryzowanego przekierowania i wypełnij prawidłową domenę.
example.com:5000/api/v1/setup/kalendarz/odpowiedź
Kliknij Utwórz. Spowoduje to wyświetlenie wyskakującego okienka, po prostu kliknij OK. Teraz naciśnij przycisk pobierania na właśnie utworzonych poświadczeniach
Część 6
Teraz otwórz plik JSON i skopiuj zawartość.
sudo nano /home/pi/Mirror/resources/credentials/credentials.json
Wklej je tutaj.
Część 7
Teraz musimy zdefiniować naszą domenę w konfiguracji, wykonując:
sudo nano /home/pi/Mirror/resources/config.ini
Krok 7: Projekt lustra
Projektowanie lustra zależy od tego, jak chcesz. Dokonaj dokładnych pomiarów ekranu LCD i pozostaw 2-centymetrową przerwę po jednej stronie lustra, ponieważ będzie tam znajdował się czujnik ruchu mikrofalowego. Nie może być za metalem.
Połączyłem ze sobą 4 deski. Zostały one zmielone, aby uzyskać ładny, czysty przód lustra. Na górze wywierciłem też kilka otworów, aby przepuścić dźwięk z głośnika. Po przeciwnej stronie lustra, na dole, wyciąłem mały prostokąt, żebym mógł spokojnie zrobić okablowanie. [Zdjęcie1]
Są to 2 kawałki taniego drewna, na których będzie spoczywał monitor. Jak powiedziałem, potrzebujemy około 2 centymetrów przerwy między lustrem a obudową. Dodałem też 3 małe kawałki drewna i przykręciłem je do tych odpoczywających kawałków. Aby monitor pozostał na swoim miejscu. [Zdjęcie2]
W końcu tak to wyglądało. Miałem około 3 mm przerwy między tymi częściami spoczynku a przodem obudowy lusterka. Wystarczy, żebym mógł włożyć lustro dwukierunkowe o grubości 3 mm. [Zdjęcie3]
Krok 8: Wykonanie okablowania
Upewnij się, że postępujesz zgodnie z jednym z tych schematów.
Kiedy już wykonałem okablowanie, przykleiłem je z tyłu ekranu taśmą dwustronną. Ponieważ gdybym kiedykolwiek chciał rozebrać lustro i wykorzystać je do innych projektów, to bez problemu mógłbym je zdjąć. Jeśli jesteś pewien, możesz użyć pistoletu do klejenia na gorąco i przykleić go z tyłu lustra.
Krok 9: Uruchamianie kodu
LXSesja
Stwórzmy najpierw kilka folderów
mkdir -p /home/pi/.config/lxsession/LXDE-pi/
Teraz utworzymy plik, w którym określimy kilka parametrów/poleceń startowych.
sudo nano /home/pi/.config/lxsession/LXDE-pi/autostart
Wklej następujące elementy do pliku.
@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
Zaktualizujemy skrypt ekranu startowego, aby pasował do naszego hosta.
sudo nano /home/pi/Mirror/init_mirror.sh
Wybierz localhost, jeśli nie używasz kalendarza Google i domeny.
#!/kosz/bash
spać 15 chromium-browser --incognito --kiosk
Jeśli go używasz, podaj hosta.
#!/kosz/bash
spać 15 chromium-browser --incognito --kiosk
Praca
Teraz ustawimy, że kod lustrzany będzie uruchamiany automatycznie.
Stworzymy usługę, która automatycznie uruchomi dla nas kod.
Iść do:
sudo nano /etc/systemd/system/mirror.service
I wklej to do pliku
[Jednostka]
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 musimy ponownie załadować demona systemd, wykonując:
sudo systemctl demon-reload
Włączymy także automatyczne uruchamianie usługi przy starcie.
sudo systemctl włącz lustro
Teraz wyłączymy.
wyłączanie sudo
Ostateczne ustawienia
Na koniec musimy usunąć nasze IP APIPA, aby działało tylko na Wi-Fi.
- Przejdź do katalogu rozruchowego karty SD na swoim komputerze.
- Otwórz plik „cmdline.txt”
- Usuń ip=169.254.10.1 Na końcu długiej linii tekstu.
Krok 10: Uruchamianie lustra
Odwiedź adres IP, który jest na ekranie lustrzanym lub jeśli masz skonfigurowany kalendarz Google, wypełnij nazwę domeny.
Teraz będziesz mógł skonfigurować swoje lustro!
Jeśli w lustrze pojawi się błąd SSL, możesz dodać swoje certyfikaty do magazynu certyfikatów Chromium.
Zalecana:
C.Q: inteligentne lustro DIY: 5 kroków
C.Q: DIY Smart Mirror: Nazywamy się Katrina Concepcion i Adil Qaiser, obaj studenci drugiego roku WBASD STEM Academy. To jest projekt, z którym byśmy współpracowali i zrobili dla tegorocznej najlepszej nagrody.Kiedy zdecydowaliśmy się zrobić ten projekt, mieliśmy na myśli „co byłoby najbardziej e
Jak stworzyć przenośne inteligentne lustro / zestaw do makijażu: 8 kroków
Jak stworzyć przenośne inteligentne lustro / zestaw do makijażu: jako ostateczny projekt dla mojego zwieńczenia w Davis & Elkins College, postanowiłem zaprojektować i stworzyć pudełko podróżne do makijażu, wraz z większym lustrem i wykorzystaniem Raspberry Pi oraz platformy oprogramowania Magic Mirror, które będzie funkcjonować jako port
Centrum sterowania Arduino Outlet Box z kalendarzem Google: 4 kroki
Centrum sterowania Arduino Outlet Box z kalendarzem Google: W tej instrukcji dowiesz się, jak zbudować centrum sterowania dla swojego domu za pomocą modułu przekaźnika mocy Adafruit 4-Outlet. Potrzebna będzie płytka Arduino z modułem Wi-Fi, taka jak Adafruit Feather Huzzah i moduł przekaźnika mocy Adafruit 4
Pomocny kod dla początkujących użytkowników komputerów.: 5 kroków
Przydatny kod dla początkujących użytkowników komputerów: Czy początkujący użytkownik komputera zapytał Cię kiedyś: „Czy mój komputer jest włączony?” Nie martw się więcej - ten Instruktaż położy kres wszystkim „Sprawdź, czy małe światełko w rogu miga!” „Czy jest napisane „Zaloguj się?” ” „Czy istnieje l
Wifi Ducky (*kompilacja dla użytkowników komputerów Mac): 6 kroków
Wifi Ducky (* kompilacja dla użytkowników komputerów Mac): Przejmij kontrolę nad komputerem, podłączając to urządzenie do portu USB. Lista części:✔ Arduino Pro Micro✔ D1 Mini NodeMCU✔ Arduino IDE✔ * Opcjonalny konwerter adaptera Micro USB męski na USB żeński OTG ✔ WireTen samouczek koncentruje się na użytkownikach komputerów Mac. Jest mnóstwo