Sadržaj:
Video: IoT RPi LED oglasna ploča: 3 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:35
U ovom Instructable-u napravio sam LED oglasnu ploču povezanu s wifi-jem koristeći Raspberry Pi (RPi). Korisnici će se povezati s web poslužiteljem Raspberry Pi koristeći svoje preglednike za slanje kratkih poruka koje će se pojaviti na 8x8 LED zaslonu. Budući da povezivanje LED matrice 8x8 s upravljačkim programom MAX7219 u Pythonu dobro dokumentiraju drugi na Internetu, ovaj se projekt fokusira na izgradnju sučelja web poslužitelja i korištenje ZeroMQ poruka za upravljanje dolaznim porukama.
Ažuriranje: Evo sljedećeg projekta IoT Decimal/Hexadecimal 8x8 LED Matrix Drawing Board
(Ja sam voditeljica kluba za Girls Who Code Club i osmislili smo ovaj jednostavan projekt za poučavanje učenika dizajnu web sučelja i razmjeni poruka.)
Korak 1: Postavljanje hardvera
Ovaj projekt zahtijeva sljedeći hardver:
- Malina Pi
- USB izvor napajanja, poput Ankera, s kratkim USB do MicroUSB kabelom
- Matrični modul matrice MAX7219 s vrpčnim kabelom (Aliexpress za manje od 2 USD)
- Kućište (napravio sam ga od kartonske kutije i sprejom obojano u crno)
Postavljanje hardvera je lakši dio. Jednostavno spojite 5 -žični vrpčani kabel s LED matrice na RPi po dokumentu knjižnice MAX7219.
LED-> RPi ======== VCC-> GPIO Pin #2 (5v) GND-> GPIO Pin #6 (GND) DIN-> GPIO Pin #19CS-> GPIO Pin #24CLK-> GPIO Pin # 23
Koristio sam dvostranu pjenastu traku za pričvršćivanje LED jedinice na kućište RPi. Zatim sam od kartonske kutije napravio kućište za smještaj RPi -ja i baterije.
Korak 2: Postavljanje softvera
RPi bi trebao imati sljedeći softver:
- Python 3
- Apache 2 web server
- Max7219 upravljački program za Python
- Poruke ZeroMQ
Python 3
RPi bi trebao imati već instaliran Python 3. Dok je moj kod napisan za Python 3, Python 2 bi trebao raditi s nekoliko manjih promjena.
Apač 2
Postavite Apache i omogućite Python CGI skriptiranje. Ispod je nekoliko sjajnih resursa za postavljanje Apachea na RPi pa se ovdje neću ponavljati. Samo slijedite upute u nastavku za postavljanje Apachea i CGI -ja. Provjerite jesu li skripte *.py izvršne iz preglednika.
- https://raspberrywebserver.com/cgiscripting/
- https://www.knight-of-pi.org/apache-web-server-with-cgi-for-python/
Max7291 upravljački program
Instalirajte upravljački program Max7219 slijedeći najnoviji vodič za instalaciju:
https://max7219.readthedocs.io/en/latest/install.html
Nakon instalacije pokrenite primjer koda, matrix_test.py, po vodiču za instalaciju za prikaz "Hello World" na LED matrici. Ovo mora raditi prije nego što prijeđete na sljedeći korak.
Poruke ZeroMQ
Zašto nam je potrebna poruka? Pokušajte pokrenuti gornji primjer koda, matrix_test.py, na dva terminala istovremeno. Sustav će dopustiti istovremeni rad više kodova, ali vidjet ćete da se poruke preklapaju, što nije poželjno. U okruženju s jednim korisnikom to možda nije problem jer biste mogli biti sigurni da se istovremeno može pokrenuti samo jedan program. U okruženju s više korisnika, poput weba, sustav mora stvoriti FIFO (First-In-First-Out) red kako bi bio siguran da samo jedna osoba može izvršiti kôd dok drugi čekaju. Iako mogu postojati druga rješenja za to, odlučio sam koristiti ZeroMQ za upravljanje FIFO redom. Kod poslužitelja ZeroMQ sadrži stvarni poziv funkcije za prikaz poruke na LED matrici jedan po jedan, dok web poslužitelj djeluje kao klijent ZeroMQ za ispitivanje i slanje poruka poslužitelju ZeroMQ. Na ovaj način, dok više korisnika može slati poruke putem web stranice istovremeno, poslužitelj ZeroMQ prikazat će samo jednu poruku odjednom.
Za ovaj projekt samo ćemo instalirati Python paket pyzmq, a ne cijeli paket ZeroMQ.
trčanje:
sudo pip3 instalirajte pyzmq
Pročitajte ZeroMQ vodič na https://zguide.zeromq.org i isprobajte hello world poslužitelj i primjer klijenta u Pythonu. Kopirajte primjer primjera Pythona za poslužitelj i klijenta u RPi i provjerite rade li prije nego prijeđete na sljedeći korak.
Korak 3: Postavljanje web stranice
Na web stranici koristio sam bootstrap css/js okvir kako bi stranica izgledala lijepo. Ovo je potpuno neobavezno.
Preuzmite priloženu datoteku led_msg.tar.gz u Apacheov korijen ili poddirektorij. Da biste poništili gzip'd tar datoteku, pokrenite:
tar -xzvf vodio_msg.tar.gz
Time se stvaraju sljedeće datoteke:
msg.py (glavni program)
predlošci/međuprostorni.html (html predložak) predlošci/send_msg.html (html predložak) static/img/led_150x150-j.webp
Po želji, instalirajte bootstrap css/js okvir ispod statičkog direktorija.
Unesite URL za msg.py svoj preglednik i provjerite otvara li se web stranica. Ne šaljite još poruku !!!
Prije nego što se poruke mogu poslati, poslužitelj ZeroMQ mora biti pokrenut da prihvaća poruke od klijenta web stranice i prikazuje ih na LED matrici. Ništa se neće prikazati na zaslonu ako poslužitelj ZeroMQ nije pokrenut.
Preuzmite priloženi kod max7219_server.py u svoj kućni direktorij, a ne u korijenski direktorij Apache gdje bi ga mogli izvršiti korisnici weba. Pokreni ga kao root:
sudo python max7219_server.py
Sada je poslužitelj ZeroMQ spreman za primanje poruka s web stranice. Unesite i pošaljite jednostavnu poruku s web stranice. Ako je sve ispravno postavljeno, vidjet ćete tu poruku na zaslonu poslužitelja ZeroMQ, kao i na LED matrici.
Ako želite isključiti poslužitelj, samo pritisnite Control-C za izlaz iz zaslona poslužitelja.
To je to. Nadam se da ćete uživati u ovom projektu kao i ja.
Jedno poboljšanje koje biste mogli učiniti jest učiniti komunikaciju ZeroMQ između poslužitelja i klijenata asinkronom kako web stranica ne bi čekala dok se prikazuju druge poruke. Također, možete priključiti dodatnu LED matricu u kaskadnom načinu rada. To ću prepustiti vama.
Preporučeni:
Bežična oglasna ploča (Bluetooth): 5 koraka (sa slikama)
Bežična oglasna ploča (Bluetooth): U ovom modernom svijetu u kojem je sve digitalizirano, zašto ne bi konvencionalna oglasna ploča dobila novi izgled. Dakle, dopustimo da se oglasna ploča kontrolira Bluetooth -om koja je vrlo jednostavna. Ova se postavka može koristiti umjesto statičke obavijesti ukrcajte se kao na fakultetima/u
Oglasna ploča sa LED trakama: 3 koraka
Oglasna ploča sa LED trakama: Ovo uputstvo će vas provesti kroz proces stvaranja oglasne ploče od individualno adresiranih NeoPixel LED traka. Ovaj projekt je prilagođena verzija znaka koji je proizveo Josh Levine, a može se pronaći na https://github.com/bigjo
Oglasna ploča Raspberry Pi: 11 koraka (sa slikama)
Raspberry Pi oglasna ploča: Ovo je projekt na kojem sam radio za svoju crkvu. Željeli smo elektroničku oglasnu ploču koja će biti postavljena u narteks/predvorje i koja će svakih nekoliko sekundi prolaziti kroz statične slajdove. To su bili naši dizajnerski ciljevi: statički dijapozitivi, bez videa ili au
Oglasna ploča razvojne ploče: 12 koraka (sa slikama)
Dev Board Breadboard: Ove upute pokazuju kako stvoriti osmišljenu ploču za razvojnu ploču po mjeri
Oglasna ploča Arduino na pravi način: 5 koraka (sa slikama)
Breadboard Arduino na pravi način: Postoje doslovce stotine Breadboard Arduinoa vani, pa što je drugačije u ovom? Pa postoji nekoliko stvari koje većina njih, pa čak ni sam Arduino ne rade kako treba. Prije svega, analogno napajanje vezano je za