Sisukord:
Video: IoT RPi LED -teadetetahvel: 3 sammu (piltidega)
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:48
Selles juhendis olen Raspberry Pi (RPi) abil teinud WiFi-ühendusega LED-teadetetahvli. Kasutajad loovad oma brauseritega ühenduse Raspberry Pi veebiserveriga lühisõnumite esitamiseks, mis kuvatakse 8x8 LED -ekraanil. Kuna teised 8x8 LED-maatriksi ühendamist MAX7219 draiveriga Pythonis on teised Internetis hästi dokumenteerinud, keskendub see projekt veebiserveri liidese loomisele ja ZeroMQ Messagingi kasutamisele sissetulevate sõnumite haldamiseks.
Värskendus: Siin on jätkuprojekt IoT kümnend-/kuueteistkümnendsüsteemi 8x8 LED-maatriksi joonistuslaud
(Olen Girls Who Code Clubi klubi läbiviija ja mõtlesin välja selle lihtsa projekti, et õpetada õpilastele veebiliidese kujundamist ja sõnumite saatmist.)
Samm: riistvara seadistamine
See projekt nõuab järgmist riistvara:
- Vaarika Pi
- USB -toiteallikas, näiteks Anker, lühikese USB -MicroUSB -kaabliga
- MAX7219 punktmaatriksmoodul koos lintkaabliga (Aliexpress vähem kui 2 dollarit)
- Korpus (tegin ühe pappkastist ja pihustiga mustaks värvitud)
Riistvara seadistamine on lihtne osa. Lihtsalt ühendage 5 -juhtmeline lintkaabel LED -maatriksist RPi -le MAX7219 raamatukogu dok.
LED-> RPi ======== VCC-> GPIO pin #2 (5v) GND-> GPIO Pin #6 (GND) DIN-> GPIO Pin #19CS-> GPIO Pin #24CLK-> GPIO Pin # 23
Kasutasin LED-seadme RPi korpusele kinnitamiseks kahepoolset vahtteipi. Seejärel tegin papist karbist korpuse nii RPi kui ka aku jaoks.
Samm 2: Tarkvara seadistamine
RPi -l peaks olema järgmine tarkvara:
- Python 3
- Apache 2 veebiserver
- Max7219 draiver Pythoni jaoks
- ZeroMQ Sõnumid
Python 3
RPi peaks olema Python 3 juba eelinstallitud. Kuigi minu kood on kirjutatud Python 3 jaoks, peaks Python 2 töötama väikeste muudatustega.
Apache 2
Seadistage Apache ja lubage Pythoni CGI skriptimine. Allpool on paar suurepärast ressurssi Apache seadistamiseks RPi -le, nii et ma ei hakka siin kordama. Apache ja CGI seadistamiseks järgige allolevaid õpetusi. Veenduge, et *.py skripte saab brauserist käivitada.
- https://raspberrywebserver.com/cgiscripting/
- https://www.knight-of-pi.org/apache-web-server-with-cgi-for-python/
Max7291 juht
Installige Max7219 draiver, järgides uusimat installijuhendit:
https://max7219.readthedocs.io/en/latest/install.html
Pärast installimist käivitage näidiskood, matrix_test.py, iga installijuhendi kohta, et LED -maatriksil kuvataks "Tere maailm". See peab toimima enne järgmise sammu juurde minekut.
ZeroMQ Sõnumid
Miks me vajame sõnumeid? Proovige ülaltoodud näidiskoodi matrix_test.py käivitada kahel terminaliekraanil korraga. Süsteem võimaldab korraga töötada mitut koodi, kuid näete, et sõnumid kattuvad, mis pole soovitav. Ühe kasutaja keskkonnas ei pruugi see probleem olla, kuna saate veenduda, et korraga saab töötada ainult üks programm. Mitme kasutajaga keskkonnas, näiteks veebis, peab süsteem looma FIFO (First-In-First-Out) järjekorra, et veenduda, et ainult üks inimene saab koodi täita, samal ajal kui teised ootavad. Kuigi selle saavutamiseks võib olla ka teisi lahendusi, otsustasin FIFO järjekorra haldamiseks kasutada ZeroMQ -d. ZeroMQ serveri kood sisaldab tegelikku funktsioonikutset, et kuvada LED -maatriksil ükshaaval sõnum, samal ajal kui veebiserver toimib ZeroMQ kliendina, et küsida ja saata sõnumeid ZeroMQ serverile. Sel moel, kuigi mitu kasutajat said veebisaidi kaudu samaaegselt sõnumeid saata, kuvab ZeroMQ server korraga ainult ühte sõnumit.
Selle projekti jaoks installime lihtsalt Pythoni paketi pyzmq ja mitte kogu ZeroMQ paketi.
joosta:
sudo pip3 installi pyzmq
Lugege ZeroMQ juhendit saidilt https://zguide.zeromq.org ja proovige Pythonis näiteid hello world server ja klient. Kopeerige nii serveri kui ka kliendi Pythoni näidiskood RPi -sse ja veenduge enne järgmise sammu juurde asumist, et need töötaksid.
Samm: veebilehe seadistamine
Veebilehel kasutasin lehe nägusaks muutmiseks bootstrap css/js raamistikku. See on täiesti vabatahtlik.
Laadige lisatud fail led_msg.tar.gz alla Apache juur- või alamkataloogi. Gzip'd tar -faili tärni tühistamiseks käivitage:
tar -xzvf led_msg.tar.gz
See loob järgmised failid:
msg.py (põhiprogramm)
templates/interstitial.html (html -mall) templates/send_msg.html (html -mall) staatiline/img/led_150x150-j.webp
Soovi korral installige bootstrap css/js raamistik staatilise kataloogi alla.
Sisestage brauseri msg.py URL ja veenduge, et veebileht ilmuks. Ärge saatke veel sõnumit !!!
Enne sõnumite saatmist tuleb ZeroMQ -server käivitada veebilehe kliendi sõnumite vastuvõtmiseks ja LED -maatriksil kuvamiseks. Kui ZeroMQ -server ei tööta, ei kuvata ekraanil midagi.
Laadige lisatud kood max7219_server.py alla oma kodukataloogi, mitte Apache juurdirektiivi, kus seda saaksid veebikasutajad käivitada. Käivitage see rootina:
sudo python max7219_server.py
Nüüd on ZeroMQ server valmis veebilehelt sõnumeid vastu võtma. Sisestage ja saatke veebilehelt lihtne sõnum. Kui kõik on õigesti seadistatud, näete seda teadet nii ZeroMQ serveri ekraanil kui ka LED -maatriksil.
Kui soovite serveri välja lülitada, tehke lihtsalt serveriekraanilt väljumiseks klahve Control-C.
See on kõik. Loodan, et naudite seda projekti sama palju kui mina.
Üks täiendus, mida võiksite teha, on muuta ZeroMQ -side serveri ja klientide vahel asünkroonseks, nii et veebileht ei ootaks teiste sõnumite kuvamise ajal. Samuti saate kaskaadrežiimis kinnitada täiendava LED -maatriksi. Jätan selle teie teha.
Soovitan:
Kuidas: Raspberry PI 4 peata (VNC) installimine RPI-pildistaja ja piltidega: 7 sammu (koos piltidega)
Kuidas: Raspberry PI 4 peata (VNC) installimine Rpi-pildistaja ja piltidega: kavatsen seda Rapsberry PI-d kasutada oma blogis hunniku lõbusate projektide jaoks. Vaadake seda julgelt. Tahtsin uuesti oma Raspberry PI kasutamist alustada, kuid mul polnud uues asukohas klaviatuuri ega hiirt. Vaarika seadistamisest oli tükk aega möödas
RPI omatehtud müts: 5 sammu (piltidega)
RPI omatehtud müts: Tere, minu nimi on Boris ja see on minu esimene juhend. Mul on Raspberry Pi 3B+ ja ma kasutan seda lihtsaks koduautomaatikaks, näiteks teleri, vahelduvvoolu ja mõnede tulede juhtimiseks. Hiljuti ostsin odava Hiina CNC ruuteri ja hakkasin tegema lihtsaid trükkplaate (ma
Digitaalne RPi LED termomeeter: 6 sammu (piltidega)
Digitaalne RPi LED -termomeeter: Raspbian OS Lugege, kuidas ma selle digitaalse LED -termomeetri koos Raspberry Pi Zero W, LED -riba, OLED -ekraani ja kohandatud trükkplaadiga tegin. See lülitab automaatselt linnade nimekirja tsüklitesse ja kuvab OLED -i temperatuuri ekraan ja LED -id. Aga
RPi IoT nutivalgus Firebase'i abil: 4 sammu (koos piltidega)
RPi IoT Smart Light Firebase'i abil: see juhend näitab teile, kuidas teha ja seadistada rakendus Raspberry Pi juhtimiseks Firebase'i kaudu (veebipõhine andmebaas). Ja siis 3D -printimise juhtum Pi Zero W jaoks, Powerboost 1000C, aku ja Blinkt
RPi-Zero IoT sündmuse indikaator / värviline lamp: 6 sammu (piltidega)
RPi-Zero IoT sündmuse indikaator / värviline lamp: täiendavat mikrokontrollerit ei ole, & HAT-i lisamoodulit pole vaja. RPi-Zero teeb seda kõike. Veel parem kasutada RPi-Zero W! Näidiskasutuseks: veebiteenuse olekuindikaator (nt DowJonesIndexi jälgimine), poliitilise või spordisündmuse olekuindikaator, meeleolutuli