Kazalo:
- 1. korak: Namestitev strojne opreme
- 2. korak: Namestitev programske opreme
- 3. korak: Nastavitev spletne strani
Video: IoT RPi LED oglasna deska: 3 koraki (s slikami)
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:04
V tem navodilu sem z Raspberry Pi (RPi) izdelal LED oglasno desko, povezano z wifi. Uporabniki se bodo s svojimi brskalniki povezali s spletnim strežnikom Raspberry Pi in oddali kratka sporočila, ki bodo prikazana na 8x8 LED zaslonu. Ker povezovanje LED matrike 8x8 z gonilnikom MAX7219 v Pythonu dobro dokumentirajo drugi na internetu, se ta projekt osredotoča na izgradnjo vmesnika spletnega strežnika in uporabo sporočil ZeroMQ za upravljanje dohodnih sporočil.
Posodobitev: Tukaj je nadaljnji projekt IoT Decimal/Hexadecimal 8x8 LED Matrix Drawing Board
(Sem vodja kluba za Girls Who Code Club in pripravila sem ta preprost projekt, ki bi učence učil oblikovanja spletnega vmesnika in sporočil.)
1. korak: Namestitev strojne opreme
Ta projekt zahteva naslednjo strojno opremo:
- Malina Pi
- Vir napajanja USB, kot je Anker, s kratkim kablom USB na MicroUSB
- Matrični modul MAX7219 s tračnim kablom (Aliexpress za manj kot 2 USD)
- Ohišje (eno sem naredil iz kartonske škatle in s črno barvano barvo)
Namestitev strojne opreme je enostaven del. Preprosto priključite 5 -žični tračni kabel iz matrike LED na RPi na doc 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
Za pritrditev LED enote na ohišje RPi sem uporabil dvostranski penasti trak. Nato sem iz kartonske škatle naredil ohišje za namestitev RPi in baterije.
2. korak: Namestitev programske opreme
RPi bi moral imeti naslednjo programsko opremo:
- Python 3
- Spletni strežnik Apache 2
- Gonilnik Max7219 za Python
- Sporočila ZeroMQ
Python 3
RPi mora imeti vnaprej nameščen Python 3. Čeprav je moja koda napisana za Python 3, bi moral Python 2 delovati z nekaj manjšimi spremembami.
Apache 2
Namestite Apache in omogočite skriptovanje Python CGI. Spodaj je nekaj odličnih virov za nastavitev Apacheja na RPi, zato tukaj ne bom ponavljal. Če želite nastaviti Apache in CGI, sledite spodnjim navodilom. Prepričajte se, da so skripti *.py izvedljivi iz brskalnika.
- https://raspberrywebserver.com/cgiscripting/
- https://www.knight-of-pi.org/apache-web-server-with-cgi-for-python/
Max7291 gonilnik
Gonilnik Max7219 namestite tako, da sledite najnovejšemu priročniku za namestitev:
https://max7219.readthedocs.io/en/latest/install.html
Po namestitvi zaženite vzorčno kodo matrix_test.py po navodilih za namestitev, da se na matriki LED prikaže "Hello World". To mora delovati, preden greste na naslednji korak.
Sporočila ZeroMQ
Zakaj potrebujemo sporočanje? Poskusite zagnati zgornjo zgledno kodo matrix_test.py na dveh terminalih hkrati. Sistem bo omogočil istočasno izvajanje več kod, vendar boste videli, da se sporočila prekrivajo, kar ni zaželeno. V okolju z enim uporabnikom to morda ni problem, saj se lahko prepričate, da se lahko hkrati izvaja samo en program. V okolju z več uporabniki, kot je splet, mora sistem ustvariti čakalno vrsto FIFO (First-In-First-Out), da se prepriča, da lahko samo ena oseba izvede kodo, medtem ko druge čakajo. Čeprav obstajajo druge rešitve za to, sem se odločil, da za upravljanje čakalne vrste FIFO uporabim ZeroMQ. Koda strežnika ZeroMQ vsebuje dejanski klic funkcije za prikaz sporočila na matriki LED enega za drugim, medtem ko spletni strežnik deluje kot odjemalec ZeroMQ, da poizveduje in pošlje sporočila strežniku ZeroMQ. Na ta način, medtem ko bi lahko več uporabnikov hkrati oddalo sporočila prek spletne strani, bo strežnik ZeroMQ prikazal le eno sporočilo hkrati.
Za ta projekt bomo namestili samo paket Python pyzmq in ne celotnega paketa ZeroMQ.
teči:
sudo pip3 namestite pyzmq
Preberite vodnik ZeroMQ na naslovu https://zguide.zeromq.org in preizkusite svetovni primer strežnika in odjemalca hello v Pythonu. Kopirajte vzorčno kodo Python za strežnik in odjemalca v RPi in se prepričajte, da delujejo, preden greste na naslednji korak.
3. korak: Nastavitev spletne strani
Na spletni strani sem uporabil okvir za zagon css/js, da je bila stran videti lepa. To je popolnoma neobvezno.
Prenesite priloženo datoteko led_msg.tar.gz v korenski ali podimenik Apache. Če želite odstraniti datoteko gzip'd tar, zaženite:
tar -xzvf led_msg.tar.gz
Tako nastanejo naslednje datoteke:
msg.py (glavni program)
templates/interstitial.html (html template) templates/send_msg.html (html template) static/img/led_150x150.jpg (jpg uporabljeno v predlogi html)
Po želji namestite okvir za zagon css/js v statični imenik.
Vnesite URL za msg.py brskalnik in se prepričajte, da se prikaže spletna stran. Ne pošiljajte še sporočila !!!
Pred pošiljanjem sporočil je treba zagnati strežnik ZeroMQ, da sprejema sporočila od odjemalca spletnih strani in jih prikaže na LED matriki. Če strežnik ZeroMQ ne deluje, se na zaslonu ne prikaže nič.
Prenesite priloženo kodo max7219_server.py v domači imenik, ne v korenski direktorij Apache, kjer bi jo lahko izvajali spletni uporabniki. Zaženi ga kot root:
sudo python max7219_server.py
Zdaj je strežnik ZeroMQ pripravljen za sprejemanje sporočil s spletne strani. Vnesite in pošljite preprosto sporočilo s spletne strani. Če je vse pravilno nastavljeno, boste to sporočilo videli na zaslonu strežnika ZeroMQ in na matriki LED.
Če želite zaustaviti strežnik, naredite Control-C, da zaprete strežniški zaslon.
To je to. Upam, da boste v tem projektu uživali tako kot jaz.
Ena izboljšava, ki bi jo lahko naredili, je, da komunikacijo ZeroMQ med strežnikom in odjemalci naredite asinhrono, tako da spletna stran ne čaka, medtem ko se prikažejo druga sporočila. Prav tako lahko v kaskadnem načinu priključite dodatno LED matriko. To prepuščam vam.
Priporočena:
LCD Messenger LCD z nadzorom Bluetooth -- 16x2 LCD -- Hc05 -- Enostavno -- Brezžična oglasna deska: 8 korakov
LCD Messenger LCD z nadzorom Bluetooth || 16x2 LCD || Hc05 || Enostavno || Brezžična oglasna deska: …………………………. PRIJAVITE SE na moj YouTube kanal za več videov …… ………………………………… Oglasna deska se uporablja za posodabljanje ljudi z novimi informacijami ali Če želite poslati sporočilo z v sobi ali na pol
Brezžična oglasna deska (Bluetooth): 5 korakov (s slikami)
Brezžična oglasna deska (Bluetooth): V tem sodobnem svetu, kjer je vse digitalizirano, zakaj ne bi konvencionalna oglasna deska dobila nov videz. Omogočimo torej zelo preprosto tablo z obvestili, ki je pod nadzorom Bluetooth. To nastavitev lahko uporabite namesto statičnega obvestila deska kot na fakultetah/v
Oglasna deska LED traku: 3 koraki
Oglasna deska LED traku: Ta navodila vam bodo povedala postopek ustvarjanja oglasne deske iz posamično naslovljivih LED trakov NeoPixel. Ta projekt je prilagojena različica znaka Josha Levina, ki ga najdete na https://github.com/bigjo
Oglasna deska Raspberry Pi: 11 korakov (s slikami)
Oglasna deska Raspberry Pi: To je projekt, na katerem sem delal za svojo cerkev. Želeli smo elektronsko oglasno desko, ki bi bila nameščena v narteksu/preddverju in bi vsakih nekaj sekund krožila po statičnih diapozitivih. To so bili naši oblikovalski cilji: statični diapozitivi, brez video ali av
Naj bo vaša oglasna deska vaše šole resnično opazna: 4 koraki
Naj bo vaša oglasna deska vaše šole resnično opazna: naredite dolgočasno staro oglasno desko, ki bo pritegnila pozornost po ugodni ceni. Nekega dne sem sedel v razredu in opravljal svoje delo (kašelj, kašelj, govor, kašelj) in moj učitelj naravoslovja me je poklical ven. Jebec, sem si mislil. Ampak ne, v resnici je hotel, da ga zgradim