Talaan ng mga Nilalaman:
- Hakbang 1: Pag-setup ng Hardware
- Hakbang 2: Pag-setup ng Software
- Hakbang 3: Pag-setup ng Pahina ng Web
Video: IoT RPi LED Message Board: 3 Hakbang (na may Mga Larawan)
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:13
Sa Instructable na ito, gumawa ako ng isang naka-konektang wifi na LED message board gamit ang isang Raspberry Pi (RPi). Ang mga gumagamit ay kumonekta sa webserver ng Raspberry Pi gamit ang kanilang mga browser upang magsumite ng mga maikling mensahe na lalabas sa 8x8 LED display. Dahil ang pag-interfaces ng 8x8 LED matrix sa driver ng MAX7219 sa Python ay dokumentado ng iba sa Internet, nakatuon ang proyektong ito sa pagbuo ng isang webserver interface at paggamit ng ZeroMQ Messaging upang pamahalaan ang mga papasok na mensahe.
Update: Narito ang isang follow-up na proyekto na IoT Decimal / Hexadecimal 8x8 LED Matrix Drawing Board
(Isa akong tagapamahala ng club para sa Girls Who Code Club at naisip ko ang simpleng proyekto na ito upang turuan ang mga mag-aaral sa disenyo ng web interface at pagmemensahe.)
Hakbang 1: Pag-setup ng Hardware
Nangangailangan ang proyektong ito ng pagsunod sa hardware:
- Raspberry Pi
- Pinagmulan ng kuryente ng USB tulad ng Anker na may isang maikling USB sa MicroUSB cable
- MAX7219 dot matrix module na may isang ribbon cable (Aliexpress para sa mas mababa sa $ 2)
- Enclosure (Ginawa ko ang isa sa isang karton na kahon at spray na pininturahan ng itim)
Ang pag-setup ng hardware ay ang madaling bahagi. Ikonekta lamang ang isang 5 wire ribbon cable mula sa LED matrix sa RPi per MAX7219 library doc.
LED-> RPi ==== VCC-> GPIO Pin # 2 (5v) GND-> GPIO Pin # 6 (GND) DIN-> GPIO Pin # 19CS -> GPIO Pin # 24CLK-> GPIO Pin # 23
Gumamit ako ng isang double-sided foam tape upang ilakip ang LED unit sa kaso ng RPi. Pagkatapos, gumawa ako ng isang enclosure mula sa isang karton na kahon upang mapaloob ang parehong RPi at baterya.
Hakbang 2: Pag-setup ng Software
Ang RPi ay dapat magkaroon ng sumusunod na software:
- Python 3
- Apache 2 websever
- Max7219 driver para sa Python
- ZeroMQ Messaging
Python 3
Ang RPi ay dapat na magkaroon ng Python 3 na paunang naka-install. Habang ang aking code ay nakasulat para sa Python 3, ang Python 2 ay dapat na gumana na may kaunting mga pagbabago.
Apache 2
I-setup ang Apache at paganahin ang script ng Python CGI. Nasa ibaba ang ilang mahusay na mapagkukunan para sa pag-set up ng Apache sa RPi kaya't hindi ko na uulitin dito. Sundin lamang ang mga tutorial sa ibaba upang mai-setup ang Apache at CGI. Tiyaking ang *.py script ay maipapatupad mula sa isang browser.
- https://raspberrywebserver.com/cgiscripting/
- https://www.knight-of-pi.org/apache-web-server-with-cgi-for-python/
Max7291 Driver
I-install ang driver ng Max7219 sa pamamagitan ng pagsunod sa pinakabagong gabay sa pag-install:
https://max7219.readthedocs.io/en/latest/install.html
Matapos ang pag-install, patakbuhin ang halimbawa ng code, matrix_test.py, bawat gabay sa pag-install upang maipakita ang "Hello World" sa LED Matrix. Kailangan itong gumana bago pumunta sa susunod na hakbang.
ZeroMQ Messaging
Bakit kailangan natin ng Pagmemensahe? Subukang patakbuhin ang halimbawa ng code sa itaas, matrix_test.py, sa dalawang mga terminal na terminal nang sabay-sabay. Papayagan ng system ang maramihang mga code na tumakbo nang sabay ngunit makikita mo ang mga overlap na mensahe na hindi kanais-nais. Sa isang solong kapaligiran ng gumagamit, maaaring hindi ito isang isyu dahil masisiguro mo na isang programa lamang ang maaaring tumakbo nang paisa-isa. Sa isang multi-user na kapaligiran tulad ng web, ang system ay kailangang lumikha ng isang pila ng FIFO (First-In-First-Out) upang matiyak na isang tao lamang ang maaaring magpatupad ng code habang naghihintay ang iba. Habang maaaring may iba pang mga solusyon upang makamit ito, nagpasya akong gamitin ang ZeroMQ upang pamahalaan ang pila ng FIFO. Naglalaman ang code ng server ng ZeroMQ ng aktwal na tawag sa pagpapaandar upang maipakita ang isang mensahe sa LED matrix nang paisa-isa habang ang webserver ay kumikilos bilang isang kliyente ng ZeroMQ upang magtanong at magsumite ng mga mensahe sa ZeroMQ server. Sa ganitong paraan, habang ang maraming mga gumagamit ay maaaring magsumite ng mga mensahe sa pamamagitan ng isang web page nang sabay-sabay, ang ZeroMQ server ay magpapakita lamang ng isang mensahe nang paisa-isa.
Para sa proyektong ito, mai-install lamang namin ang Python package pyzmq at hindi ang buong ZeroMQ package.
tumakbo:
sudo pip3 i-install ang pyzmq
Basahin ang gabay ng ZeroMQ sa https://zguide.zeromq.org at subukan ang hello world server at halimbawa ng client sa Python. Kopyahin ang halimbawa ng code ng Python para sa parehong server at client sa RPi at tiyaking gumagana ang mga ito bago pumunta sa susunod na hakbang.
Hakbang 3: Pag-setup ng Pahina ng Web
Sa web page, ginamit ko ang framework ng bootstrap css / js upang maganda ang hitsura ng pahina. Ito ay ganap na opsyonal.
I-download ang naka-attach na led_msg.tar.gz file sa Apache root o sub-direktoryo. Upang maalis ang takbo ng gzip'd tar file, patakbuhin ang:
tar -xzvf led_msg.tar.gz
Lumilikha ito ng mga sumusunod na file:
msg.py (pangunahing programa)
template / interstitial.html (template ng html) mga template / send_msg.html (template ng html) static / img / led_150x150.jpg (ginamit ang jpg sa template na html)
Bilang pagpipilian, i-install ang bootstrap css / js framework sa ilalim ng static na direktoryo.
Ipasok ang URL para sa msg.py iyong browser at tiyaking darating ang web page. Huwag pa magsumite ng mensahe !!!
Bago maisumite ang mga mensahe, dapat magsimula ang server ng ZeroMQ upang tanggapin ang mga mensahe mula sa webpage client at ipakita ang mga ito sa LED matrix. Walang ipapakita sa screen kung ang ZeroMQ server ay hindi tumatakbo.
I-download ang nakalakip na max7219_server.py code sa iyong direktoryo sa bahay, hindi sa Apache root dir kung saan ito maaaring maisagawa ng mga gumagamit ng web. Patakbuhin ito bilang ugat:
sudo python max7219_server.py
Ngayon ang ZeroMQ server ay handa nang tumanggap ng mga mensahe mula sa web page. Ipasok at magsumite ng isang simpleng mensahe mula sa web page. Kung ang lahat ay naka-set up nang tama, makikita mo ang mensaheng iyon sa screen ng server ng ZeroMQ pati na rin sa LED Matrix.
Kung nais mong i-shutdown ang server, gawin lamang ang Control-C upang lumabas sa screen ng server.
Ayan yun. Inaasahan kong masisiyahan ka sa proyektong ito tulad ng nagustuhan ko.
Ang isang pagpapahusay na magagawa mo ay upang gawing hindi magkasabay ang komunikasyon ng ZeroMQ sa pagitan ng server at mga kliyente upang hindi maghintay ang webpage habang ipinapakita ang iba pang mga mensahe. Gayundin, maaari kang maglakip ng karagdagang LED matrix sa cascade mode. Bahala na ako sayo.
Inirerekumendang:
Howto: Pag-install ng Raspberry PI 4 Headless (VNC) Sa Rpi-imager at Mga Larawan: 7 Hakbang (na may Mga Larawan)
Howto: Pag-install ng Raspberry PI 4 Headless (VNC) Sa Rpi-imager at Mga Larawan: Plano kong gamitin ang Rapsberry PI na ito sa isang bungkos ng mga nakakatuwang proyekto pabalik sa aking blog. Huwag mag-atubiling suriin ito. Nais kong bumalik sa paggamit ng aking Raspberry PI ngunit wala akong Keyboard o Mouse sa aking bagong lokasyon. Ilang sandali mula nang mag-set up ako ng isang Raspberry
Pag-hack sa TV Tuner upang Basahin ang Mga Larawan sa Daigdig Mula sa Mga Satellite: 7 Mga Hakbang (na may Mga Larawan)
Pag-hack sa TV Tuner upang Basahin ang Mga Larawan sa Daigdig Mula sa Mga Satellite: Mayroong maraming mga satellite sa itaas ng aming mga ulo. Alam mo ba, na ang paggamit lamang ng Iyong computer, TV Tuner at simpleng DIY antena Maaari mong matanggap ang mga pagpapadala mula sa kanila? Halimbawa ng mga real time na larawan ng mundo. Ipapakita ko sa iyo kung paano. Kakailanganin mo ang: - 2 w
Project ng Score Board Na May P10 LED Display Paggamit ng DMD: 6 Mga Hakbang (na may Mga Larawan)
Project ng Score Board Na May P10 LED Display Paggamit ng DMD: Kadalasan ay nagkikita kami sa isang soccer stadium; mayroong isang higanteng LED board na nagsisilbing isang scoreboard. Gayundin sa iba pang larangan ng palakasan, madalas din nating alam ang scoreboard ng display screen na gawa sa LED. Bagaman hindi posible, mayroon ding larangan na tayo pa rin
Mga Tagapagsalita ng Vintage IPod (na may mga LED!): 7 Mga Hakbang (na may Mga Larawan)
Mga Tagapagsalita ng Vintage IPod (na may mga LED!): Gamit ang tamang mga supply, madaling gumawa ng iyong sariling de-kalidad na iPod o mp3 player dock. Gamit ang ilang mga scrap ng circuit board, mga sample na nagsasalita, at kahoy na aking inilatag sa paligid ng shop, nagawa ko ang isang pares ng disenteng tunog at maayos na hitsura
Decoder Business Card - QR Coded Secret Message: 6 Hakbang (na may Mga Larawan)
Decoder Business Card - QR Coded Secret Message: Ang pagkakaroon ng isang mahusay na card sa negosyo ay makakatulong sa iyong mapanatili ang mga contact, maitaguyod ang iyong sarili at ang iyong negosyo, at makipagkaibigan. Sa pamamagitan ng paglikha ng isang personal na card ng negosyo na nagsasangkot sa tatanggap na aktibong isinalin ang iyong card ay mas malamang na matandaan niya ang