Spisu treści:

Zegar ścienny O-R-A RGB Led Matrix i więcej **aktualizacja: lipiec 2019**: 6 kroków (ze zdjęciami)
Zegar ścienny O-R-A RGB Led Matrix i więcej **aktualizacja: lipiec 2019**: 6 kroków (ze zdjęciami)

Wideo: Zegar ścienny O-R-A RGB Led Matrix i więcej **aktualizacja: lipiec 2019**: 6 kroków (ze zdjęciami)

Wideo: Zegar ścienny O-R-A RGB Led Matrix i więcej **aktualizacja: lipiec 2019**: 6 kroków (ze zdjęciami)
Wideo: Zegar ws2812b & LED matrix w akcji 2024, Listopad
Anonim
Image
Image
Zegar ścienny O-R-A RGB Led Matrix i nie tylko **aktualizacja: lipiec 2019**
Zegar ścienny O-R-A RGB Led Matrix i nie tylko **aktualizacja: lipiec 2019**
Zegar ścienny O-R-A RGB Led Matrix i nie tylko **aktualizacja: lipiec 2019**
Zegar ścienny O-R-A RGB Led Matrix i nie tylko **aktualizacja: lipiec 2019**
Zegar ścienny O-R-A RGB Led Matrix i nie tylko **aktualizacja: lipiec 2019**
Zegar ścienny O-R-A RGB Led Matrix i nie tylko **aktualizacja: lipiec 2019**

Dzień dobry. Oto jestem z nowym projektem o nazwie O-R-A

Jest to zegar ścienny RGB LED Matrix, który wyświetla:

  • godzina:minuta
  • temperatura
  • wilgotność
  • ikona aktualnych warunków pogodowych
  • Wydarzenia z Kalendarza Google i przypomnienia o godzinie 1h

w określonym czasie pokazuje:

  • Lista dzisiejszych i jutrzejszych wydarzeń w Kalendarzu Google
  • Prognoza pogody
  • z ostatniej chwili

Dodatkowe funkcjonalności:

  • bieżąca data
  • Magiczna kula 8
  • Minutnik

Dla dowolnej funkcjonalności urządzenie odtwarza inny alarm dźwiękowy. Dla wszystkich warunków pogodowych po wywołaniu funkcji jest odpowiedni plik audio do odtworzenia.

Funkcjonalności takie jak lista kalendarza Google, prognoza pogody, aktualności RSS uruchamiają się o określonej godzinie, gdy urządzenie jest w „trybie zegara”, można je również nazwać bezpośrednim sterowaniem przełącznikami. Kolejna funkcjonalność w trybie „zegara” wyświetla aktualny dzień/miesiąc/rok. Można go uruchomić naciskając przycisk ENTER. Naciśnięcie przycisku CHANGE STATE, a następnie przycisku ENTER w ciągu 3 sekund w "trybie zegara", pozwala wejść do menu opcji. Przycisk CHANGE STATE służy do przewijania menu, przycisk ENTER do potwierdzania wybranej opcji.

Ten projekt jest ewolucją moich poprzednich LEGOLED i TEMPO. Matryca LED RGB ma teraz rozdzielczość 32x64, dzięki czemu możliwe jest wyświetlanie bardziej czytelnej grafiki, stałego i przewijanego tekstu jednocześnie. Korzystając z funkcji TEMPO urządzenie włącza się i wyłącza automatycznie bez żadnego przycisku lub zewnętrznego timera. Moduł PIR wykrywa obecność osób, dlatego włącza/wyłącza wyświetlacz.

Prognoza pogody i dane z kalendarza są gromadzone co minutę przez Kalendarz Google i Open Weather Map.

Ten projekt jest w pełni konfigurowalny, począwszy od Raspberry PI B+, 2-modułowej matrycy led 16x64 rgb i zasilacza. Można go rozbudować, tak jak ja, dodając karty dźwiękowe USB, głośniki, obwód włączania/wyłączania zasilania.

Krok 1: Czego potrzebujesz

  • Raspberry Pi B+ (z wbudowanym WiFi lub kluczem sprzętowym)
  • Matryca LED 2 x 16x64 RGB lub 2 x 32x32
  • ogólna rama (około 40x50 cm i 3 cm głębokości)
  • matowy arkusz z tworzywa sztucznego
  • folia słoneczna do okien
  • PS 5V 10A
  • kable
  • osłona termoutwardzalna (*)
  • moduł przekaźnikowy (*)
  • dodatkowy PS do wzmacniacza audio (*)
  • Moduł wzmacniacza audio 3W (*)
  • głośniki (*)
  • Karta dźwiękowa USB (*)
  • 2 x mikroprzełącznik (*)
  • PIR (*)
  • Attiny85 (*)
  • DS3231 (*)
  • Mosfet IRF540 (*)
  • Rezystory: 3x1K, 2x10K, 1x2K (*)
  • listwa zaciskowa (*)
  • listwy nagłówka żeńskie (*)
  • listwy nagłówka męskie (*)

(*) opcjonalny

Krok 2: Konfiguracja Raspberry Pi

Ten przewodnik jest zasadniczo oparty na bibliotece Raspbian Jessie Lite, Python 2.7 i RGB LED MATRIX autorstwa użytkownika Hzeller Github.

Przede wszystkim aktualizacja i aktualizacja RPI

Zainstaluj git

~ $ sudo apt-get install git

Pobierz bibliotekę RGB LED MATRIX z Github

~ $ klon git

~ $ cd rpi-rgb-led-macierz

~ $ sudo make

czarna lista wewnętrzna karta dźwiękowa RPI

~ $ kot <<EOF | koszulka sudo /etc/modprobe.d/blacklist-rgb-matrix.conf

czarna lista snd_bcm2835

EOF

~ $ sudo update-initramfs -u

Ustaw parametry zewnętrznej karty dźwiękowej, jeśli potrzebujesz możliwości audio:

~ $ sudo nano /usr/share/alsa/alsa.conf

reszta:

defaults.ctl.card 0

domyślna.karta.pcm 0

do

defaults.ctl.card 1

domyślna.karta.pcm 1

następnie uruchom ponownie.

Teraz zainstaluj bibliotekę macierzy

~ $ cd /home/pi/rpi-rgb-led-matryca

~ $ sudo apt-get update && sudo apt-get install python2.7-dev python-pillow -y

~ $ make build-python

~ $ sudo make install-python

i zainstaluj inne potrzebne biblioteki:

~ $ sudo easy_install pip

~ $ sudo pip zainstaluj

Skopiuj skrypt samplebase.py z ~/rpi-rgb-led-matrix/bindings/python/samples/ do katalogu domowego

Uzyskaj klucz API, rejestrując się za darmo, aby otworzyć mapę pogody

Zainstaluj teraz wrapper OWM Python dla PYthon 2.7 (dzięki użytkownikowi CSPARPAGithub)

~ $ sudo pip zainstaluj git+https://github.com/csarpa/[email protected]

Uzyskaj dane logowania do Kalendarza Google, postępując zgodnie z instrukcjami w interfejsie API kalendarza Google

Aby odtwarzać dźwięk, zainstaluj Pygame

~ $ sudo apt-get install python-pygame

Kanały RSS wymagają zainstalowanego Feedparsera

~ $ sudo pip zainstaluj feedparser

skopiuj mój skrypt ORAeng_131.py (wersja angielska) lub ORAita_131.py (wersja włoska) do katalogu domowego

utwórz foldery na dźwięki i obrazy:

mkdir dbsounds

mkdir owm

pobierz i skopiuj wszystkie pliki-p.webp

www.dropbox.com/sh/nemyfcj1a1i18ic/AAB1W7I6lg5EgqL1gJZPWVTxa?dl=0

dodaj swoje poświadczenia OWM do wiersza 69 (klucz_API)

ustaw miasto do prognozy pogody (sprawdź, czy jest objęte OWM i poprawna nazwa zaakceptowana) w liniach 213, 215

obs =owm.weather_at_place('Napoli, IT')

fc = owm.three_hours_forecast('Napoli, IT')

**********************************AKTUALIZACJA 28.07.2019********** ******************

Nowy interfejs API Kalendarza Google stwarza problemy. Rozwiązałem usuwanie niektórych modułów:

~ $ sudo apt-get remove --purge python-setuptools

~ $ sudo apt-get autoremove python-pyasn1

spróbuj uruchomić skrypt

~ $ sudo python ORAeng_150.py # lub ORAita_150.py dla wersji włoskiej

za pierwszym razem skrypt poprosi o autoryzację GCAL. Kliknij link do danych logowania Google API. Daj więc pozwolenie, jeśli wszystko jest w porządku, zobaczysz, że zegar się zaczyna.

z powodu nadmiernego zużycia pamięci RAM po kilku godzinach napisałem skrypt, który po prostu restartuje skrypt Pythona, gdy użycie pamięci RAM przekroczy poziom progowy. Następnie skopiuj do katalogu domowego skrypt o nazwie memcheck zmieniający nazwę na memcheck.sh i dodaj do crontab -e razem główny skrypt

*/5 * * * * bash /home/pi/memcheck.sh@reboot sudo python /home/pi/ORAeng_150.py

Krok 3: Skrypty

Główny skrypt musi zostać zmodyfikowany zgodnie z Twoimi potrzebami. Zakładając, że poświadczenia OWM i Goggle Calendar są ustawione jako odpowiednie instrukcje API, najważniejszymi parametrami są:

lista wydarzeń kalendarza występujących co godzinę w minucie 2, 32 (patrz wiersz skryptu 65)

warunki pogodowe i prognoza wykonywane co godzinę w minucie 7, 37 (patrz wiersz skryptu 66)

najświeższe wiadomości pojawiające się co godzinę w minucie 11 (patrz wiersz skryptu 67)

najświeższe wiadomości na kanale rss. Skrypt wewnętrzny jest ustawiony jako Instructable RSS, ale można go zmienić. (patrz wiersz skryptu 366)

Oczywiście w skrypcie pierwszeństwo mają zdarzenia kalendarza przychodzącego lub powiadomienia przypominające. Czasami zegar nie wykonuje swoich funkcji, aby uniknąć przekraczania funkcjonalności.

Należy zaprogramować zegar włączania/wyłączania Attiny85 wgrywając szkic Tempo_V1_9_1Mhz_bugfix.ino.

Pozwala to na włączenie urządzenia o 8 rano i wyłączenie o 23. Więcej informacji znajdziesz w tutorialu.

Krok 4: Obwód

Obwód
Obwód
Obwód
Obwód
Obwód
Obwód

Obwód ma w zasadzie 3 sekcje

- wyłącznik czasowy obsługiwany przez moduł DS3231, Attiny85 i Mosfet

- przełącznik ręcznego sterowania funkcjami zegara

- sekcja połączeniowa, w której znajduje się okablowanie dla danych i zasilania RGB LED Matrix, wzmacniacza audio i Raspberry Pi

Nie wspomniano o rezystancyjnym dzielniku napięcia, który pozwala RPI na odczyt sygnału HIGH/LOW 5V z Attiny85

Przełączniki są podłączone do pinu RPI i GND bezpośrednio za pomocą wewnętrznych rezystorów

Zegar Attiny85 pochodzi z mojego poprzedniego projektu o nazwie TEMPO. Zasadniczo DS3231 wysyła sygnał LOW do pinu przerwania Attiny85, który wybudza go z trybu uśpienia. Po wybudzeniu Attiny85 wysyła sygnał HIGH do tranzystora Mosfet, aktywując obwód zasilania RPI, matrycy LED i wzmacniacza audio (jeśli nie jest podłączony do dodatkowego zasilacza przez przekaźnik, jak moja ostatnia konfiguracja).

Aby wyłączyć RPI, mój skrypt zakłada, że RPI nasłuchuje sygnału cyfrowego na styku 14, gdy jest WYSOKI, nazywa się poleceniem zamknięcia. Następnie RPI wykonuje poprawny proces wyłączania, po czym po minucie Attiny85 wraca do trybu uśpienia, a Mosfet otrzymuje sygnał LOW, który wyłącza całe urządzenie. Ten proces jest trudny, ale skuteczny.

Moduł PIR jest opcjonalny i podłączany bezpośrednio do RPI GPIO.

Moja konfiguracja wymaga podłączenia następujących pinów RPI GPIO do:

15 do PIR

14 do Attiny85 pin 3 przez dzielnik napięcia

21 do modułu przekaźnikowego

2, aby przełączyć (przycisk ENTER)

3, aby przełączyć (PRZYCISK ZMIANY STANU)

Zagadnienia:

- szumy spowodowane zasilaniem matrycy LED, rozwiązane za pomocą małego PS tylko dla wzmacniacza audio. Opcjonalny przekaźnik pozwala na włączenie wzmacniacza tylko wtedy, gdy jest to wymagane. Może to powodować odgłos uderzenia podczas włączania/wyłączania.

Obwód został wytrawiony za pomocą miedzianej płytki, drukarki 3D, markera i chlorku żelazowego.

Krok 5: Montaż

Złożenie
Złożenie
Złożenie
Złożenie
Złożenie
Złożenie
Złożenie
Złożenie

Do tego projektu zaadaptowałem standardową ramę 40x50cm razem z częściami wydrukowanymi w 3D i kilkoma opcjonalnymi dodatkami.

Szyba jest osłonięta przez okienną folię słoneczną i matową folię z tworzywa sztucznego. Matryca LED musi być trzymana około 1 cm do szkła, aby uniknąć zobaczenia białych diod wewnątrz diod. Niezbędne są małe śruby jako nakrętki i śruby M3. Obowiązkowe są kable i osłona termoutwardzalna.

Matryce led przykręcane są na tylnym panelu ramy.

Krok 6: A teraz?

I teraz ?
I teraz ?
I teraz ?
I teraz ?

Następnym krokiem będzie dodanie czujnika temperatury, aktywacja funkcji bluetooth i, dlaczego nie, radia internetowego do maksymalnego potencjału Raspberry Pi.

Do widzenia

Konkurs na zegary
Konkurs na zegary
Konkurs na zegary
Konkurs na zegary

Drugie miejsce w konkursie Zegary

Zalecana: