Spisu treści:

Magiczne lustro z wiadomościami, pogodą, alarmem, zegarem i listą zadań: 9 kroków
Magiczne lustro z wiadomościami, pogodą, alarmem, zegarem i listą zadań: 9 kroków

Wideo: Magiczne lustro z wiadomościami, pogodą, alarmem, zegarem i listą zadań: 9 kroków

Wideo: Magiczne lustro z wiadomościami, pogodą, alarmem, zegarem i listą zadań: 9 kroków
Wideo: Donald Tusk: Majonez? Lepiej łączyć niż dzielić. 2024, Listopad
Anonim
Magiczne lustro z wiadomościami, pogodą, alarmem, zegarem i listą Todolist
Magiczne lustro z wiadomościami, pogodą, alarmem, zegarem i listą Todolist
Magiczne lustro z wiadomościami, pogodą, alarmem, zegarem i listą Todolist
Magiczne lustro z wiadomościami, pogodą, alarmem, zegarem i listą Todolist

Magic Mirror to specjalne lustro weneckie z wyświetlaczem za nim. Wyświetlacz, który jest podłączony do Raspberry Pi, pokazuje informacje takie jak pogoda, temperatura w pomieszczeniu, godzina, data, lista zadań i wiele więcej. Możesz nawet dodać mikrofon i skonfigurować inteligentnego asystenta. Możliwości są nieograniczone.

Ten projekt może być dość kosztowny, jedną z najdroższych części, jakich będziesz potrzebować, jest oczywiście wyświetlacz. Dlatego poddałem recyklingowi wyświetlacz ze starego laptopa. Do wykonania tego projektu polecam jednak duży, jasny wyświetlacz o wysokim kontraście. To jest tego warte.

Wykonane przeze mnie lustro ma następujące cechy:

  • Wiadomości z wybranego przez użytkownika kanału RSS
  • Pogoda
  • Temperatura wewnątrz
  • System alarmowy
  • System timera
  • Todolista
  • Wielu użytkowników: kolor paska LED i źródło wiadomości zmieniają się w zależności od wybranego użytkownika.

Kieszonkowe dzieci

Aby zbudować to Magiczne Lustro, potrzebujesz:

  • Lustro weneckie
  • Drewno
  • Malinowa Pi
  • Karta Micro SD (8+GB)
  • Deska do krojenia chleba
  • Dwa głośniki 20W
  • Wzmacniacz MAX9744 20W do zasilania głośników
  • 1m 30-ledowa taśma LED WS2801
  • DS18B20 1-przewodowy czujnik temperatury
  • HC-SR501 Czujnik podczerwieni
  • Enkoder obrotowy
  • Monitor lub stary wyświetlacz laptopa

    Jeśli używasz starego wyświetlacza laptopa, musisz kupić przejściówkę do laptopa. Możesz je dostać z AliExpress, Ebay lub Amazon. Po prostu wyszukaj numer seryjny swojego wyświetlacza

Potrzebne będą również następujące małe elementy:

  • Dioda
  • Rezystor 4,7 kΩ
  • Rezystor 470 Ohm
  • Przewody do podłączenia czujników do Raspberry Pi

A te zasilacze:

  • 5V 2A do zasilania taśmy led
  • 12 V 2A do zasilania wyświetlacza
  • 12V 2A do zasilania wzmacniacza
  • 5.1V 3A do zasilania Raspberry Pi (użyj oficjalnego zasilacza RPi)

Krok 1: Instalacja Raspbian

Wyświetlacz i wszystkie komponenty za lustrem są zasilane przez Raspberry Pi. Musisz zainstalować Raspbian, domyślny system operacyjny Pi, na karcie SD.

  1. Pobierz obraz dysku Win32. Użytkownicy Linuksa i MacOS mogą używać czegoś takiego jak Etcher.
  2. Pobierz najnowszy obraz Raspbian ze strony Raspberry Pi. Wybierz opcję „Raspbian Buster z pulpitem”
  3. Otwórz Win32 Disk Imager i zapisz plik obrazu na karcie SD.

Karta SD jest już prawie gotowa. Musimy tylko upewnić się, że możemy zdalnie połączyć się z Raspberry Pi:

  1. Przejdź do partycji rozruchowej karty SD za pomocą eksploratora plików w systemie.
  2. Dodaj plik o nazwie „ssh” bez rozszerzenia.
  3. Dodaj 'ip=169.254.10.1' (bez cudzysłowów) na końcu pierwszego wiersza 'cmdline.txt'.

Bezpiecznie wyjmij kartę SD z komputera, włóż ją do Raspberry Pi i uruchom.

Krok 2: Konfiguracja Wi-Fi

Aby przeskanować sieci Wi-Fi, wykonaj następujące polecenie:

sudo iw dev wlan0 scan | grep SSID

Zobaczysz listę wszystkich identyfikatorów SSID, z którymi może połączyć się Twoje Raspberry Pi.

Utwórz wpis sieciowy z zaszyfrowanym hasłem, wykonując następujące polecenie i wprowadzając hasło sieciowe:

wpa_passphrase "TWOJA_SIEĆ_SSID_TUTAJ"

Teraz wklej wynik powyższego polecenia do tego pliku:

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Teraz zrestartuj Raspberry Pi. Będziesz mieć połączenie z internetem.

Krok 3: Instalacja i konfiguracja oprogramowania

W tym projekcie musisz pobrać te pakiety na swoje Raspberry Pi:

pip3 install mysql-connector-python flask-socketio flask-cors gevent gevent-websocket adafruit-circuitpython-ws2801 adafruit-circuitpython-max9744

sudo apt install apache2 mariadb-server

Dodaj tę linię na dole pliku /boot/config.txt, aby włączyć dźwięk przez piny GPIO 12 (po lewej) i 13 (po prawej):

dtoverlay=audremap

Użyj raspi-config, aby ustawić rozdzielczość wyświetlacza i włączyć i2c, One-wire i SPI. Ustaw również metodę uruchamiania na „Desktop Autologin”.

W /etc/xdg/lxsession/LXDE-pi/autostart dodaj następujące:

@xset s off@xset -dpms@xset s noblank@chromium-browser --kiosk 127.0.0.1/mirror.html # załaduj chrom po uruchomieniu i otwórz stronę w trybie pełnoekranowym

Spowoduje to otwarcie przeglądarki na właściwej stronie podczas ładowania LXDE (środowiska graficznego Raspbian). Usuń lub skomentuj linię @xscreensaver, aby wyłączyć wygaszacz ekranu.

Repozytorium Github

Sklonuj moje repozytorium GitHub i umieść zawartość folderu Frontend w /var/www/html. Folder Backend będzie nam potrzebny później.

Krok 4: Baza danych

Baza danych
Baza danych

To jest schemat bazy danych zoptymalizowany do 3NF. Przechowuje wszystkie alarmy, źródła wiadomości, użytkowników, dane z czujników, dźwięki i listę zadań.

  1. Użyj MySQL Workbench, aby uzyskać dostęp do serwera bazy danych pi (mariadb)
  2. Utwórz bazę danych przy użyciu tego schematu i wstaw własne dane.
  3. Edytuj plik config.py w folderze Backend mojego repozytorium GitHub: zmień nazwę bazy danych, wybraną nazwę użytkownika i hasło.
  4. Edytuj plik app.py i zmień adres URL interfejsu API OpenWeatherMap na własny. (Stwórz swój własny tutaj)

Krok 5: Budowanie ramy lustra

Budowanie ramy lustra
Budowanie ramy lustra
Budowanie ramy lustra
Budowanie ramy lustra
Budowanie ramy lustra
Budowanie ramy lustra

Ramę wokół lustra zbudowałem za pomocą połączeń uciosowych z metalowymi narożnikami. Użyte przeze mnie drewniane deski mają grubość 18mm i szerokość 10cm. Na zdjęciach można zobaczyć dokładne wymiary lustra 45cm x 60cm. Za lustrem znajduje się cała elektronika, więc upewnij się, że twoje deski są wystarczająco szerokie, aby je zmieścić.

Do mocowania głośników do ramy użyłem metalowych haczyków. W ten sposób nie spoczywają na lustrze, zmniejszając drgania na szkle.

Krok 6: Elektronika

Elektronika
Elektronika
Elektronika
Elektronika

Postępuj zgodnie z powyższymi schematami, aby zbudować obwód. Użyłem taśmy do przymocowania elektroniki do lustra.

Krok 7: Montaż elektroniki w ramie

Montaż elektroniki w ramie
Montaż elektroniki w ramie
Montaż elektroniki w ramie
Montaż elektroniki w ramie

Po przymocowaniu głośników do metalowych zaczepów u góry dołóż resztę elektroniki do lustra. Umieściłem też cienką drewnianą deskę między lustrem a elektroniką, więc zamiast przykleić elektronikę do lustra, przykleiłem elektronikę do drewnianej deski. Wyświetlacz laptopa to biały panel w dolnej części lustra.

Jak widać na zdjęciach, podłączyłem wszystkie zasilacze do gniazdka wielogniazdowego, więc z ramki wychodzi tylko jeden kabel. Dlatego potrzebowałem wystarczająco szerokich desek (10 cm).

Po prawej stronie lustra wywierciłem otwór o szerokości 2 cm, przez który zmieścił się enkoder obrotowy. Pozwala to na łatwą zmianę głośności (obrót) lub odrzucenie timerów i alarmów (push).

Wywierciłem dwa otwory o średnicy 8 mm po obu stronach lustra, aby poprowadzić kable do taśm led.

Krok 8: Wykończenie szlifów

Ostatnie poprawki
Ostatnie poprawki
Ostatnie poprawki
Ostatnie poprawki
Ostatnie poprawki
Ostatnie poprawki

Z tyłu lustra dodałem czarną szmatkę, aby ukryć elektronikę. Przyciemnia również wnętrze obudowy, co znacznie utrudnia dostrzeżenie przewodów przez lustro. Przymocowałem go na rzep, dzięki czemu w razie potrzeby łatwiej jest uzyskać dostęp do elektroniki.

Skopiuj folder Backend z mojego repozytorium Github do miejsca, które zapamiętasz.

Dodaj jednostkę systemd, aby skrypt Pythona działał podczas rozruchu:

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

[Jednostka]

Description=Usługa skryptu magicmirror python After=network.target [Service] ExecStart=/usr/bin/python3 -u app.py WorkingDirectory=/home/pi/magicMirror/Backend StandardOutput=inherit StandardError=inherit Restart=always User =pi [Zainstaluj] WantedBy=multi-user.target

Zmień 'WorkingDirectory' na katalog Backend i zmień użytkownika na swoją własną nazwę użytkownika.

Krok 9: Interakcja z aplikacją internetową

Interakcja z aplikacją internetową
Interakcja z aplikacją internetową
Interakcja z aplikacją internetową
Interakcja z aplikacją internetową
Interakcja z aplikacją internetową
Interakcja z aplikacją internetową
Interakcja z aplikacją internetową
Interakcja z aplikacją internetową

Przejdź do adresu IP (który jest na wyświetlaczu). Zobaczysz witrynę zoptymalizowaną pod kątem urządzeń mobilnych z następującymi funkcjami:

  • Interaktywny wykres temperatury
  • Czas. Gdy minutnik jest uruchomiony, na samym lustrze zobaczysz również odliczanie.
  • System alarmowy
  • Zakładka ustawień, w której możesz edytować użytkowników, źródła wiadomości i głośność głośnika.
  • Lista zadań. Rzeczy do zrobienia będą wyświetlane na lustrze

Mirror.html to strona wyświetlana w Magic Mirror. Dodałem przykład na zdjęciach powyżej.

Zalecana: