Spisu treści:
- Krok 1: Konfiguracja sprzętu
- Krok 2: Konfiguracja oprogramowania
- Krok 3: Konfiguracja strony internetowej
Wideo: Tablica ogłoszeń LED IoT RPi: 3 kroki (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:30
W tym Instructable stworzyłem tablicę informacyjną LED podłączoną do Wi-Fi za pomocą Raspberry Pi (RPi). Użytkownicy będą łączyć się z serwerem WWW Raspberry Pi za pomocą przeglądarki, aby przesyłać krótkie wiadomości, które pojawią się na wyświetlaczu LED 8x8. Ponieważ połączenie matrycy LED 8x8 ze sterownikiem MAX7219 w Pythonie jest dobrze udokumentowane przez innych w Internecie, projekt ten koncentruje się na zbudowaniu interfejsu serwera WWW i wykorzystaniu ZeroMQ Messaging do zarządzania przychodzącymi wiadomościami.
Aktualizacja: Oto kolejny projekt IoT Decimal / Hexadecimal 8x8 LED Matrix Drawing Board
(Jestem moderatorem klubu dla Girls Who Code Club i wymyśliłem ten prosty projekt, aby nauczyć studentów projektowania interfejsu internetowego i przesyłania wiadomości).
Krok 1: Konfiguracja sprzętu
Ten projekt wymaga następującego sprzętu:
- Malina Pi
- Źródło zasilania USB, takie jak Anker z krótkim kablem USB do MicroUSB
- Moduł matrycy punktowej MAX7219 z kablem taśmowym (Aliexpress za mniej niż 2 USD)
- Obudowa (ja zrobiłem z kartonu i pomalowałem sprayem na czarno)
Konfiguracja sprzętu to najłatwiejsza część. Wystarczy podłączyć 5-żyłowy kabel taśmowy z matrycy LED do RPi zgodnie z dokumentacją biblioteki MAX7219.
LED->RPi========VCC->GPIO Pin #2 (5v)GND->GPIO Pin #6 (GND)DIN->GPIO Pin #19CS ->GPIO Pin #24CLK->GPIO Pin # 23
Użyłem dwustronnej taśmy piankowej do przymocowania jednostki LED do obudowy RPi. Następnie wykonałem obudowę z tekturowego pudełka, aby pomieścić zarówno RPi, jak i baterię.
Krok 2: Konfiguracja oprogramowania
RPi powinno posiadać następujące oprogramowanie:
- Pyton 3
- Serwer WWW Apache 2
- Max7219 sterownik dla Pythona
- Wiadomości ZeroMQ
Pyton 3
RPi powinno mieć już preinstalowany Python 3. Podczas gdy mój kod jest napisany dla Pythona 3, Python 2 powinien działać z kilkoma drobnymi zmianami.
Apache 2
Skonfiguruj Apache i włącz obsługę skryptów CGI w języku Python. Poniżej znajduje się kilka świetnych zasobów do konfigurowania Apache na RPi, więc nie będę tutaj powtarzał. Wystarczy postępować zgodnie z poniższymi samouczkami, aby skonfigurować Apache i CGI. Upewnij się, że skrypty *.py można wykonywać z przeglądarki.
- https://raspberrywebserver.com/cgiscripting/
- https://www.knight-of-pi.org/apache-web-server-with-cgi-for-python/
Max7291 Kierowca
Zainstaluj sterownik Max7219, postępując zgodnie z najnowszym przewodnikiem instalacji:
https://max7219.readthedocs.io/en/latest/install.html
Po instalacji uruchom przykładowy kod matrix_test.py według przewodnika instalacji, aby wyświetlić „Hello World” na matrycy LED. To musi zadziałać przed przejściem do następnego kroku.
Wiadomości ZeroMQ
Dlaczego potrzebujemy wiadomości? Spróbuj uruchomić powyższy przykładowy kod matrix_test.py na dwóch ekranach terminali jednocześnie. System pozwoli na jednoczesne uruchamianie wielu kodów, ale zobaczysz nakładające się wiadomości, co nie jest pożądane. W środowisku jednego użytkownika może to nie stanowić problemu, ponieważ można się upewnić, że tylko jeden program może działać w danym momencie. W środowisku wielu użytkowników, takim jak sieć, system musi utworzyć kolejkę FIFO (First-In-First-Out), aby upewnić się, że tylko jedna osoba może wykonać kod, podczas gdy inne czekają. Chociaż mogą istnieć inne rozwiązania, aby to osiągnąć, zdecydowałem się użyć ZeroMQ do zarządzania kolejką FIFO. Kod serwera ZeroMQ zawiera faktyczne wywołanie funkcji, aby wyświetlić komunikat na matrycy LED pojedynczo, podczas gdy serwer WWW działa jako klient ZeroMQ, aby zapytywać i przesyłać komunikaty do serwera ZeroMQ. W ten sposób, podczas gdy wielu użytkowników może jednocześnie przesyłać wiadomości za pośrednictwem strony internetowej, serwer ZeroMQ wyświetli tylko jedną wiadomość na raz.
W tym projekcie zainstalujemy po prostu pakiet Pythona pyzmq, a nie cały pakiet ZeroMQ.
biegać:
sudo pip3 zainstaluj pyzmq
Przeczytaj przewodnik ZeroMQ na https://zguide.zeromq.org i wypróbuj przykład serwera i klienta hello world w Pythonie. Skopiuj przykładowy kod Pythona dla serwera i klienta do RPi i upewnij się, że działają, zanim przejdziesz do następnego kroku.
Krok 3: Konfiguracja strony internetowej
Na stronie internetowej wykorzystałem framework bootstrap css/js, aby strona wyglądała ładnie. Jest to całkowicie opcjonalne.
Pobierz załączony plik led_msg.tar.gz do głównego lub podkatalogu Apache. Aby rozpakować plik tar gzip, uruchom:
tar -xzvf led_msg.tar.gz
Tworzy to następujące pliki:
msg.py (program główny)
templates/interstitial.html (szablon html) templates/send_msg.html (szablon html)static/img/led_150x150-j.webp
Opcjonalnie zainstaluj framework bootstrap css/js w katalogu statycznym.
Wprowadź adres URL msg.py w swojej przeglądarce i upewnij się, że pojawi się strona internetowa. Nie wysyłaj jeszcze wiadomości!!!
Zanim wiadomości będą mogły zostać przesłane, serwer ZeroMQ musi zostać uruchomiony, aby akceptować wiadomości od klienta strony internetowej i wyświetlać je na matrycy LED. Nic nie będzie wyświetlane na ekranie, jeśli serwer ZeroMQ nie jest uruchomiony.
Pobierz załączony kod max7219_server.py do swojego katalogu domowego, a nie do katalogu głównego Apache, gdzie mógłby być wykonywany przez internautów. Uruchom go jako root:
sudo python max7219_server.py
Teraz serwer ZeroMQ jest gotowy do odbierania wiadomości ze strony internetowej. Wejdź i prześlij prostą wiadomość ze strony internetowej. Jeśli wszystko jest poprawnie skonfigurowane, zobaczysz ten komunikat na ekranie serwera ZeroMQ, a także na matrycy LED.
Jeśli chcesz wyłączyć serwer, po prostu naciśnij Ctrl-C, aby wyjść z ekranu serwera.
Otóż to. Mam nadzieję, że spodoba ci się ten projekt tak samo jak ja.
Jednym z ulepszeń, które można wprowadzić, jest sprawienie, aby komunikacja ZeroMQ między serwerem a klientami była asynchroniczna, aby strona internetowa nie czekała, gdy wyświetlane są inne komunikaty. Można również dołączyć dodatkową matrycę LED w trybie kaskadowym. Zostawię to tobie.
Zalecana:
Komunikator LCD sterowany przez Bluetooth -- LCD 16x2 -- Hc05 -- Prosty -- Bezprzewodowa tablica ogłoszeń: 8 kroków
Komunikator LCD sterowany przez Bluetooth || LCD 16x2 || Hc05 || Prosty || Bezprzewodowa tablica ogłoszeń:……………………………. Proszę SUBSKRYBUJ Mój kanał na YouTube, aby uzyskać więcej filmów… ………………………………… Tablica ogłoszeń służy do aktualizowania ludzi o nowe informacje lub Jeśli chcesz wysłać wiadomość w pokoju lub w hal
Bezprzewodowa tablica ogłoszeń (Bluetooth): 5 kroków (ze zdjęciami)
Bezprzewodowa tablica ogłoszeniowa (Bluetooth): W tym nowoczesnym świecie, w którym wszystko jest zdigitalizowane, dlaczego nie konwencjonalna tablica ogłoszeniowa zyskuje nowy wygląd. Zróbmy więc tablicę ogłoszeniową sterowaną przez Bluetooth, która jest bardzo prosta. Ta konfiguracja może być używana zamiast statycznej tablicy ogłoszeń wyżywienie jak na uczelniach/w
Tablica ogłoszeń Raspberry Pi: 11 kroków (ze zdjęciami)
Tablica ogłoszeń Raspberry Pi: to projekt, nad którym pracowałem dla mojego kościoła. Chcieliśmy mieć elektroniczną tablicę ogłoszeń, która byłaby zamontowana w obszarze narteksu/lobby i co kilka sekund przechodziła przez statyczne slajdy.To były nasze cele projektowe: slajdy statyczne, brak wideo lub au
Jak stworzyć stronę internetową z tablicą ogłoszeń przy użyciu PHP i MYSQL: 5 kroków
Jak stworzyć stronę tablicy ogłoszeń używając PHP i MYSQL: Ta instrukcja pokaże Ci jak stworzyć stronę tablicy ogłoszeń używając php, mysql, html i css. Jeśli jesteś nowy w tworzeniu stron internetowych, nie martw się, będą szczegółowe wyjaśnienia i analogie, dzięki którym możesz lepiej zrozumieć pojęcia. Mata
Spraw, aby tablica ogłoszeń Twojej szkoły była NAPRAWDĘ zauważalna: 4 kroki
Spraw, aby Twoja szkoła była NAPRAWDĘ zauważalna: Stwórz nudną starą tablicę ogłoszeń naprawdę przyciągającą wzrok w niskiej cenie. Pewnego dnia siedziałem w klasie, wykonując swoją pracę (kaszel, kaszel, rozmawiając, kaszląc) i mój nauczyciel przedmiotów ścisłych zadzwonił do mnie na zewnątrz. Cholera, pomyślałem. Ale nie, naprawdę chciał, żebym go zbudował