Obsah:
Video: Nástěnka LED IoT RPi: 3 kroky (s obrázky)
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:21
V tomto Instructable jsem vytvořil nástěnku LED připojenou k wifi pomocí Raspberry Pi (RPi). Uživatelé se připojí k webovému serveru Raspberry Pi pomocí svých prohlížečů a odešlou krátké zprávy, které se zobrazí na LED displeji 8x8. Protože propojení matice 8x8 LED s ovladačem MAX7219 v Pythonu je dobře zdokumentováno ostatními na internetu, tento projekt se zaměřuje na vytvoření rozhraní webového serveru a správu ZeroMQ Messaging pro správu příchozích zpráv.
Aktualizace: Zde je navazující projekt IoT Decimal/Hexadecimal 8x8 LED Matrix Drawing Board
(Jsem klubový moderátor pro Girls Who Code Club a přišel jsem s tímto jednoduchým projektem, který má studenty naučit návrh webového rozhraní a zasílání zpráv.)
Krok 1: Nastavení hardwaru
Tento projekt vyžaduje následující hardware:
- Raspberry Pi
- Zdroj napájení USB, jako je Anker, s krátkým kabelem USB na MicroUSB
- Bodový maticový modul MAX7219 s plochým kabelem (Aliexpress za méně než 2 $)
- Příloha (jednu jsem vyrobil z lepenkové krabice a nastříkal černou barvou)
Nastavení hardwaru je snadná část. Jednoduše připojte 5žilový plochý kabel z LED matice ke knihovně RPi podle knihovny MAX7219 doc.
LED-> RPi ======== VCC-> GPIO Pin #2 (5v) GND-> GPIO Pin #6 (GND) DIN-> GPIO Pin #19CS-> GPIO Pin #24CLK-> GPIO Pin # 23
K připevnění jednotky LED k pouzdru RPi jsem použil oboustrannou pěnovou pásku. Poté jsem z kartonové krabice vytvořil skříň, do které se vejde jak RPi, tak baterie.
Krok 2: Nastavení softwaru
RPi by měl mít následující software:
- Python 3
- Web Apache 2
- Max7219 ovladač pro Python
- ZeroMQ zasílání zpráv
Python 3
RPi by měl mít již předinstalovaný Python 3. Zatímco můj kód je napsán pro Python 3, Python 2 by měl fungovat s několika drobnými změnami.
Apache 2
Nastavte Apache a povolte skriptování Python CGI. Níže je několik skvělých zdrojů pro nastavení Apache na RPi, takže se zde nebudu opakovat. Pro nastavení Apache a CGI postupujte podle níže uvedených návodů. Zkontrolujte, zda jsou skripty *.py spustitelné z prohlížeče.
- https://raspberrywebserver.com/cgiscripting/
- https://www.knight-of-pi.org/apache-web-server-with-cgi-for-python/
Ovladač Max7291
Nainstalujte ovladač Max7219 podle nejnovější instalační příručky:
https://max7219.readthedocs.io/cs/latest/install.html
Po instalaci spusťte ukázkový kód matrix_test.py podle průvodce instalací, aby se na matici LED zobrazilo „Hello World“. To musí fungovat, než přejdete k dalšímu kroku.
ZeroMQ zasílání zpráv
Proč potřebujeme Zprávy? Zkuste spustit výše uvedený ukázkový kód matrix_test.py na dvou obrazovkách terminálu současně. Systém umožní spuštění více kódů současně, ale uvidíte překrývající se zprávy, což není žádoucí. V prostředí jednoho uživatele to nemusí být problém, protože byste se mohli ujistit, že současně může běžet pouze jeden program. V prostředí pro více uživatelů, jako je web, musí systém vytvořit frontu FIFO (First-In-First-Out), aby bylo zajištěno, že kód může spustit pouze jedna osoba, zatímco ostatní čekají. I když k tomu mohou existovat jiná řešení, rozhodl jsem se použít ZeroMQ ke správě fronty FIFO. Kód serveru ZeroMQ obsahuje skutečné volání funkce k zobrazení zprávy na matici LED po jednom, zatímco webový server funguje jako klient ZeroMQ pro dotazování a odesílání zpráv na server ZeroMQ. Tímto způsobem, zatímco více uživatelů mohlo odesílat zprávy prostřednictvím webové stránky současně, server ZeroMQ zobrazí pouze jednu zprávu najednou.
Pro tento projekt nainstalujeme pouze balíček Python pyzmq a ne celý balíček ZeroMQ.
běh:
sudo pip3 install pyzmq
Přečtěte si průvodce ZeroMQ na https://zguide.zeromq.org a vyzkoušejte si příklad hello world serveru a klienta v Pythonu. Zkopírujte ukázkový kód Pythonu pro server i klienta do RPi a ujistěte se, že funguje, než přejdete na další krok.
Krok 3: Nastavení webové stránky
Na webové stránce jsem použil rámec bootstrap css/js, aby stránka vypadala hezky. To je zcela volitelné.
Stáhněte si přiložený soubor led_msg.tar.gz do kořenového adresáře nebo podadresáře Apache. Chcete -li rozbalit soubor tar gzip'd, spusťte:
tar -xzvf led_msg.tar.gz
Tím se vytvoří následující soubory:
msg.py (hlavní program)
templates/interstitial.html (html template) templates/send_msg.html (html template) static/img/led_150x150-j.webp
Volitelně nainstalujte rámec bootstrap css/js pod statický adresář.
Zadejte adresu URL pro msg.py svého prohlížeče a ujistěte se, že se zobrazí webová stránka. Zatím neodesílejte zprávu !!!
Před odesláním zpráv je nutné spustit server ZeroMQ, aby přijímal zprávy od klienta webové stránky a zobrazoval je na matici LED. Pokud server ZeroMQ neběží, na obrazovce se nic nezobrazí.
Stáhněte si přiložený kód max7219_server.py do svého domovského adresáře, nikoli do kořenového adresáře Apache, kde by jej mohli spustit uživatelé webu. Spustit jako root:
sudo python max7219_server.py
Server ZeroMQ je nyní připraven přijímat zprávy z webové stránky. Zadejte a odešlete jednoduchou zprávu z webové stránky. Pokud je vše správně nastaveno, uvidíte tuto zprávu na obrazovce serveru ZeroMQ i na LED matici.
Chcete-li vypnout server, ukončete obrazovku serveru provedením Control-C.
A je to. Doufám, že se vám tento projekt bude líbit stejně jako mě.
Jedním vylepšením, které byste mohli udělat, je zajistit, aby komunikace ZeroMQ mezi serverem a klienty byla asynchronní, aby webová stránka nečekala, až se zobrazí další zprávy. Také byste mohli připojit další LED matici v kaskádovém režimu. To nechám na vás.
Doporučuje:
Bluetooth ovládaný Messenger LCD -- 16x2 LCD -- Hc05 -- Jednoduché -- Bezdrátová nástěnka: 8 kroků
Bluetooth ovládaný Messenger LCD || 16x2 LCD || Hc05 || Jednoduché || Bezdrátová nástěnka: …………………………. Přihlaste se k odběru mého YouTube kanálu pro další videa … ………………………………… Nástěnka slouží k aktualizaci lidí o nové informace nebo Pokud chcete odeslat zprávu s v místnosti nebo v
Bezdrátová nástěnka (Bluetooth): 5 kroků (s obrázky)
Bezdrátová nástěnka (Bluetooth): Proč v dnešním moderním světě, kde je vše digitalizováno, dostává konvenční nástěnka nový vzhled. Nechte si tedy vyrobit nástěnku ovládanou technologií Bluetooth, která je velmi jednoduchá. Toto nastavení lze použít místo statického upozornění deska jako na vysokých školách/v
Nástěnka LED pásky: 3 kroky
Nástěnka s LED pruhy: Tento návod vás provede procesem vytváření vývěsky z individuálně adresovatelných LED pásků NeoPixel. Tento projekt je upravenou verzí nápisu vyrobeného Joshem Levinem, který najdete na https://github.com/bigjo
Nástěnka Raspberry Pi: 11 kroků (s obrázky)
Bulletin Board Raspberry Pi: Toto je projekt, na kterém jsem pracoval pro svou církev. Chtěli jsme elektronickou nástěnku, která bude namontována v prostoru narthex/lobby a bude každých několik sekund procházet statickými snímky. To byly naše cíle návrhu: statické snímky, žádné video nebo au
Digitální nástěnka využívající protokol Raspberry Pi a MQTT: 8 kroků
Digitální nástěnka využívající protokol Raspberry Pi a MQTT: Nástěnky se používají téměř všude, například v kancelářích, školách, nemocnicích a hotelech. Mohou být použity znovu a znovu k zobrazení důležitých oznámení nebo k propagaci nadcházejících událostí nebo schůzek. Ale oznámení nebo reklamy musí být vytištěny