Tartalomjegyzék:
Videó: IoT RPi LED üzenőfal: 3 lépés (képekkel)
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:41
Ebben az utasításban elkészítettem egy wifi-hez csatlakoztatott LED üzenőfalat Raspberry Pi (RPi) használatával. A felhasználók böngészőjük segítségével csatlakoznak a Raspberry Pi webszerveréhez rövid üzenetek küldéséhez, amelyek megjelennek a 8x8 LED -es kijelzőn. Mivel a 8x8 LED mátrix és a Python MAX7219 illesztőprogramjának összekapcsolása mások által jól dokumentált az interneten, ez a projekt egy webszerver interfész kiépítésére és a ZeroMQ Messaging használatára összpontosít.
Frissítés: Itt egy nyomon követési projekt IoT Decimal/Hexadecimal 8x8 LED Matrix Drawing Board
(Klubsegítő vagyok a Girls Who Code Clubnak, és ezt az egyszerű projektet azzal a céllal hoztam létre, hogy megtanítsam a diákokat a webes felület kialakítására és az üzenetküldésre.)
1. lépés: Hardver beállítása
Ez a projekt a következő hardvereket igényli:
- Raspberry Pi
- USB áramforrás, például Anker, rövid USB -MicroUSB kábellel
- MAX7219 pontmátrix modul szalagkábellel (Aliexpress kevesebb mint 2 USD)
- Ház (csináltam egyet kartondobozból, és feketére festettem spray -vel)
A hardver beállítása az egyszerű rész. Egyszerűen csatlakoztasson egy 5 vezetékes szalagkábelt a LED mátrixból az RPi per MAX7219 könyvtár dok.
LED-> RPi ======== VCC-> GPIO Pin #2 (5v) GND-> GPIO Pin #6 (GND) DIN-> GPIO Pin #19CS-> GPIO Pin #24CLK-> GPIO Pin # 23
Kétoldalas habszalaggal rögzítettem a LED egységet az RPi tokhoz. Ezután egy kartondobozból házat készítettem RPi és akkumulátor tárolására.
2. lépés: Szoftver telepítése
Az RPi -nek a következő szoftverrel kell rendelkeznie:
- Python 3
- Apache 2 webszerver
- Max7219 illesztőprogram Pythonhoz
- ZeroMQ üzenetküldés
Python 3
Az RPi-nek előzetesen telepítenie kell a Python 3-at. Míg a kódom a Python 3 -ra van írva, a Python 2 -nek kevés apró változtatással kell működnie.
Apache 2
Állítsa be az Apache programot, és engedélyezze a Python CGI parancsfájlokat. Az alábbiakban néhány nagyszerű forrás található az Apache RPi -n való beállításához, így itt nem ismétlem meg. Csak kövesse az alábbi oktatóanyagokat az Apache és a CGI beállításához. Győződjön meg arról, hogy a *.py parancsfájlok böngészőből futtathatók.
- https://raspberrywebserver.com/cgiscripting/
- https://www.knight-of-pi.org/apache-web-server-with-cgi-for-python/
Max7291 illesztőprogram
Telepítse a Max7219 illesztőprogramot a legújabb telepítési útmutató követésével:
https://max7219.readthedocs.io/en/latest/install.html
A telepítés után futtassa a példakódot, a matrix_test.py, telepítési útmutatónként a "Hello World" megjelenítéséhez a LED -mátrixon. Ennek működnie kell, mielőtt a következő lépésre lép.
ZeroMQ üzenetküldés
Miért van szükségünk az üzenetküldésre? Próbálja meg futtatni a fenti példakódot, a matrix_test.py -t két terminál képernyőn egyszerre. A rendszer lehetővé teszi több kód egyidejű futtatását, de látni fogja, hogy az üzenetek átfedésben vannak, ami nem kívánatos. Egyetlen felhasználói környezetben ez nem jelent problémát, mivel meggyőződhet arról, hogy egyszerre csak egy program futhat. Többfelhasználós környezetben, például a weben, a rendszernek létre kell hoznia egy FIFO (First-In-First-Out) sort, hogy megbizonyosodjon arról, hogy csak egy személy tudja végrehajtani a kódot, míg mások várakoznak. Bár lehet más megoldás is ennek elérésére, úgy döntöttem, hogy a ZeroMQ -t használom a FIFO -sor kezeléséhez. A ZeroMQ szerverkód tartalmazza a tényleges függvényhívást, hogy egy -egy üzenetet jelenítsen meg a LED -mátrixon, miközben a webszerver ZeroMQ -ügyfélként működik, és érdeklődik a ZeroMQ -kiszolgálón. Így, miközben egyszerre több felhasználó is küldhet üzeneteket egy weboldalon keresztül, a ZeroMQ szerver egyszerre csak egy üzenetet jelenít meg.
Ehhez a projekthez csak a Python csomagot telepítjük, és nem a teljes ZeroMQ csomagot.
fuss:
sudo pip3 telepítse a pyzmq -t
Olvassa el a ZeroMQ útmutatót a https://zguide.zeromq.org oldalon, és próbálja ki a hello world szerver és kliens példát a Pythonban. Másolja ki a Python példakódot mind a kiszolgálóra, mind az ügyfélre az RPi -be, és győződjön meg arról, hogy működnek, mielőtt a következő lépésre lép.
3. lépés: A weblap beállítása
A weboldalon a bootstrap css/js keretrendszert használtam, hogy az oldal csinos legyen. Ez teljesen opcionális.
Töltse le a mellékelt led_msg.tar.gz fájlt az Apache gyökérkönyvtárába vagy alkönyvtárába. A gzip'd tar fájl eltávolításához futtassa a következőt:
tar -xzvf led_msg.tar.gz
Ez a következő fájlokat hozza létre:
msg.py (fő program)
templates/interstitial.html (html sablon) templates/send_msg.html (html sablon) static/img/led_150x150-j.webp
Opcionálisan telepítse a bootstrap css/js keretrendszert a statikus könyvtár alá.
Adja meg az msg.py URL -jét a böngészőjében, és győződjön meg arról, hogy megjelenik a weboldal. Még ne küldj üzenetet !!!
Mielőtt üzeneteket küldhetne, el kell indítani a ZeroMQ szervert, hogy elfogadja a weblap klienséről érkező üzeneteket és megjelenítse azokat a LED mátrixon. Ha a ZeroMQ szerver nem fut, semmi sem jelenik meg a képernyőn.
Töltse le a mellékelt max7219_server.py kódot az otthoni könyvtárába, ne az Apache gyökérkönyvtárába, ahol a webes felhasználók végrehajthatják. Futtassa rootként:
sudo python max7219_server.py
Most a ZeroMQ szerver készen áll a weboldalról érkező üzenetek fogadására. Írjon be és küldjön be egy egyszerű üzenetet a weboldalról. Ha minden megfelelően van beállítva, akkor ezt az üzenetet láthatja a ZeroMQ szerver képernyőjén, valamint a LED mátrixon.
Ha le szeretné állítani a szervert, akkor csak a Control-C billentyűvel lépjen ki a kiszolgáló képernyőjéről.
Ez az. Remélem, annyira élvezni fogja ezt a projektet, mint én.
Az egyik fejlesztés az, ha a ZeroMQ kommunikációt aszinkronra állítja a szerver és az ügyfelek között, hogy a weboldal ne várjon, amíg más üzenetek megjelennek. Ezenkívül további LED -mátrixot is csatlakoztathat kaszkád módban. Ezt rád bízom.
Ajánlott:
Útmutató: A Raspberry PI 4 fej nélküli (VNC) telepítése Rpi-képalkotóval és képekkel: 7 lépés (képekkel)
Útmutató: A Raspberry PI 4 fej nélküli (VNC) telepítése Rpi-képalkotóval és képekkel: Ezt a Rapsberry PI-t tervezem használni egy csomó szórakoztató projektben a blogomban. Nyugodtan nézd meg. Vissza akartam kezdeni a Raspberry PI használatát, de nem volt billentyűzetem vagy egér az új helyen. Rég volt, hogy beállítottam egy málnát
LED szalag üzenőfal: 3 lépés
LED csíkos üzenőfal: Ez az utasítás végigvezeti Önt az üzenőfal létrehozásának folyamatán az egyedileg címezhető NeoPixel LED csíkokból. Ez a projekt a Josh Levine által készített tábla adaptált változata, amely megtalálható a https://github.com/bigjo… címen
Digitális RPi LED hőmérő: 6 lépés (képekkel)
Digitális RPi LED hőmérő: Raspbian OS Ismerje meg, hogyan készítettem ezt a digitális LED -es hőmérőt, Raspberry Pi Zero W -vel, LED -szalaggal, OLED kijelzővel és egyedi PCB -vel. Ez automatikusan ciklusokat készít a városok listájáról, és megjeleníti a hőmérsékletet az OLED kijelzőn kijelző, és a LED -ek. De
RPi IoT intelligens fény a Firebase használatával: 4 lépés (képekkel)
RPi IoT Smart Light a Firebase használatával: Ez az útmutató bemutatja, hogyan készíthet és állíthat be egy alkalmazást a Raspberry Pi vezérléséhez a Firebase (online adatbázis) segítségével. Aztán 3D nyomtatás egy tokhoz a Pi Zero W -hez, egy Powerboost 1000C, egy akkumulátor és egy Blinkt
RPi-Zero IoT eseményjelző / színes lámpa: 6 lépés (képekkel)
RPi-Zero IoT eseményjelző / színlámpa: Nincs további mikrovezérlő, & Nincs szükség HAT kiegészítő modulra. Az RPi-Zero mindent megtesz. Még jobb, ha RPi-Zero W-t használ