Sadržaj:
Video: IoT RPi LED oglasna ploča: 3 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:07
U ovom Instructable-u napravio sam LED ploču s porukama povezanu putem WiFi-a koristeći Raspberry Pi (RPi). Korisnici će se povezati sa web serverom Raspberry Pi koristeći svoje preglednike za slanje kratkih poruka koje će se pojaviti na 8x8 LED ekranu. 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 podučavanje učenika dizajnu web sučelja i razmjeni poruka.)
Korak 1: Postavljanje hardvera
Ovaj projekt zahtijeva sljedeći hardver:
- Raspberry Pi
- USB izvor napajanja, poput Ankera, s kratkim USB do MicroUSB kabelom
- MAX7219 matrični modul s matricom s vrpčnim kabelom (Aliexpress za manje od 2 USD)
- Kućište (napravio sam ga od kartonske kutije i sprejom obojenim u crno)
Postavljanje hardvera je lak dio. Jednostavno spojite petožilni vrpčani kabel s LED matrice na RPi po biblioteci doc 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 i 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
- ZeroMQ razmjena poruka
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.
Apache 2
Postavite Apache i omogućite Python CGI skriptiranje. Ispod je nekoliko sjajnih resursa za postavljanje Apache -a na RPi pa neću ovdje ponavljati. Samo slijedite upute u nastavku za postavljanje Apachea i CGI -ja. Uvjerite se da su 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 da prikažete "Hello World" na LED matrici. Ovo mora raditi prije nego što prijeđete na sljedeći korak.
ZeroMQ razmjena poruka
Zašto nam je potrebna poruka? Pokušajte pokrenuti gornji primjer koda, matrix_test.py, na dva terminala istovremeno. Sistem će omogućiti istovremeni rad više kodova, ali vidjet ćete da se poruke preklapaju, što nije poželjno. U jednom korisničkom okruženju to možda nije problem jer biste mogli biti sigurni da se može pokrenuti samo jedan program odjednom. U okruženju s više korisnika, kao što je web, sistem 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 na poslužitelj ZeroMQ. Na ovaj način, dok više korisnika može istovremeno slati poruke putem web stranice, server ZeroMQ će prikazivati samo jednu poruku odjednom.
Za ovaj projekt samo ćemo instalirati Python paket pyzmq, a ne cijeli ZeroMQ paket.
trčanje:
sudo pip3 install pyzmq
Pročitajte ZeroMQ vodič na https://zguide.zeromq.org i isprobajte hello world server i klijentski primjer u Pythonu. Kopirajte primjer koda Pythona i za poslužitelj i za klijenta u RPi i provjerite da li rade prije nego prijeđete na sljedeći korak.
Korak 3: Postavljanje web stranice
Na web stranici sam koristio bootstrap css/js framework kako bih stranica izgledala lijepo. Ovo je potpuno neobavezno.
Preuzmite priloženu datoteku led_msg.tar.gz u Apacheov root ili poddirektorij. Da biste poništili gzip'd tar datoteku, pokrenite:
tar -xzvf vodio_msg.tar.gz
Ovo stvara sljedeće datoteke:
msg.py (glavni program)
templates/interstitial.html (html template) templates/send_msg.html (html template) static/img/led_150x150-j.webp
Po želji, instalirajte bootstrap css/js framework 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 ekranu ako server ZeroMQ nije pokrenut.
Preuzmite priloženi kod max7219_server.py u svoj kućni direktorij, a ne u Apache root dir gdje bi ga mogli izvršiti korisnici weba. Pokreni ga kao root:
sudo python max7219_server.py
Sada je server ZeroMQ spreman za prijem poruka s web stranice. Unesite i pošaljite jednostavnu poruku s web stranice. Ako je sve ispravno postavljeno, vidjet ćete tu poruku na ekranu servera ZeroMQ, kao i na LED matrici.
Ako želite isključiti poslužitelj, samo pritisnite Control-C za izlaz iz ekrana 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 je učiniti ZeroMQ komunikaciju između poslužitelja i klijenata asinhronom tako da web stranica ne čeka dok se prikazuju druge poruke. Također, u kaskadnom načinu rada možete priključiti dodatnu LED matricu. To ću prepustiti vama.
Preporučuje se:
LCD kontrolisani Messenger LCD -- 16x2 LCD -- Hc05 -- Jednostavno -- Bežična oglasna ploča: 8 koraka
LCD kontrolisani Messenger LCD || 16x2 LCD || Hc05 || Jednostavno || Bežična oglasna ploča: …………………………. PRETPLATITE SE na moj YouTube kanal za više video zapisa …… ………………………………… Oglasna ploča se koristi za ažuriranje novih informacija ili Ako želite poslati poruku sa u sobi ili na poluvremenu
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 napravimo oglasnu ploču s Bluetooth -om koja je vrlo jednostavna. Ovo se postavljanje može koristiti umjesto statičkog 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 koju je proizveo Josh Levine, a koja se može naći na https://github.com/bigjo
Raspberry Pi oglasna ploča: 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 pripratu/predvorje i koja će svakih nekoliko sekundi kružiti kroz statičke slajdove. To su bili naši dizajnerski ciljevi: statički dijapozitivi, bez video zapisa ili au
Oglasna ploča Arduino na pravi način: 5 koraka (sa slikama)
Breadboard Arduino na pravi način: Postoji doslovno 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