Përmbajtje:

Tabela e Mesazheve IoT RPi LED: 3 hapa (me fotografi)
Tabela e Mesazheve IoT RPi LED: 3 hapa (me fotografi)

Video: Tabela e Mesazheve IoT RPi LED: 3 hapa (me fotografi)

Video: Tabela e Mesazheve IoT RPi LED: 3 hapa (me fotografi)
Video: CS50 2013 - Week 10, continued 2024, Nëntor
Anonim
Image
Image
Konfigurimi i harduerit
Konfigurimi i harduerit

Në këtë Instructable, unë kam bërë një tabelë mesazhesh LED të lidhur me wifi duke përdorur një Raspberry Pi (RPi). Përdoruesit do të lidhen me serverin në internet të Raspberry Pi duke përdorur shfletuesit e tyre për të paraqitur mesazhe të shkurtra që do të shfaqen në ekranin LED 8x8. Meqenëse ndërfaqja e matricës LED 8x8 me drejtuesin MAX7219 në Python është e dokumentuar mirë nga të tjerët në internet, ky projekt përqendrohet në ndërtimin e një ndërfaqeje të serverit në internet dhe përdorimin e Mesazheve ZeroMQ për të menaxhuar mesazhet hyrëse.

Përditësim: Këtu është një projekt vijues IoT Decimal/Hexadecimal 8x8 LED Matrix Drawing Board

(Unë jam një lehtësuese e klubit për Girls Who Code Club dhe kam dalë me këtë projekt të thjeshtë për t'i mësuar studentët në hartimin dhe mesazhet e ndërfaqes në internet.)

Hapi 1: Konfigurimi i harduerit

Konfigurimi i harduerit
Konfigurimi i harduerit
Konfigurimi i harduerit
Konfigurimi i harduerit

Ky projekt kërkon pajisjet e mëposhtme:

  • Mjedër Pi
  • Burim energjie USB siç është Anker me një kabllo të shkurtër USB në MicroUSB
  • Moduli MAX7219 i matricës me pika me një kabllo fjongo (Aliexpress për më pak se 2 dollarë)
  • Rrethim (kam bërë një nga një kuti kartoni dhe llak i lyer në të zezë)

Konfigurimi i harduerit është pjesa e lehtë. Thjesht lidhni një kabllo fjongo me 5 tela nga matrica LED në dokumentin e bibliotekës RPi per MAX7219.

LED-> RPi ======== VCC-> GPIO Pin #2 (5v) GND-> GPIO Pin #6 (GND) DIN-> GPIO Pin #19CS-> GPIO Pin #24CLK-> GPIO Pin # 23

Kam përdorur një shirit shkumë të dyanshëm për të ngjitur njësinë LED në kutinë RPi. Pastaj, bëra një rrethim nga një kuti kartoni për të vendosur RPi dhe bateri.

Hapi 2: Konfigurimi i softuerit

Konfigurimi i softuerit
Konfigurimi i softuerit
Konfigurimi i softuerit
Konfigurimi i softuerit
Konfigurimi i softuerit
Konfigurimi i softuerit
Konfigurimi i softuerit
Konfigurimi i softuerit

RPi duhet të ketë softuerin e mëposhtëm:

  • Python 3
  • Shfletuesi i uebit Apache 2
  • Shoferi Max7219 për Python
  • Mesazhe ZeroMQ

Python 3

RPi duhet të ketë Python 3 tashmë të para-instaluar. Ndërsa kodi im është shkruar për Python 3, Python 2 duhet të funksionojë me disa ndryshime të vogla.

Apache 2

Vendosni Apache dhe aktivizoni skriptimin Python CGI. Më poshtë janë disa burime të shkëlqyera për vendosjen e Apache në RPi, kështu që nuk do të përsëris këtu. Vetëm ndiqni mësimet më poshtë për të konfiguruar Apache dhe CGI. Sigurohuni që skriptet *.py janë të ekzekutueshme nga një shfletues.

  • https://raspberrywebserver.com/cgiscripting/
  • https://www.knight-of-pi.org/apache-web-server-with-cgi-for-python/

Shoferi Max7291

Instaloni drejtuesin Max7219 duke ndjekur udhëzuesin e fundit të instalimit:

https://max7219.readthedocs.io/en/latest/install.html

Pas instalimit, ekzekutoni kodin shembull, matrix_test.py, për udhëzuesin e instalimit për të shfaqur "Hello World" në Matricën LED. Kjo duhet të funksionojë para se të shkoni në hapin tjetër.

Mesazhe ZeroMQ

Pse na duhen Mesazhe? Provoni të ekzekutoni kodin shembullor të mësipërm, matrix_test.py, në dy ekrane terminale njëkohësisht. Sistemi do të lejojë që kodet e shumta të ekzekutohen njëkohësisht, por do të shihni që mesazhet të mbivendosen, gjë që nuk është e dëshirueshme. Në një mjedis përdorues të vetëm, kjo mund të mos jetë një çështje pasi mund të siguroheni që vetëm një program mund të ekzekutohet në të njëjtën kohë. Në një mjedis me shumë përdorues siç është uebi, sistemi duhet të krijojë një radhë FIFO (E para-në-e parë-dalje) për t'u siguruar që vetëm një person mund të ekzekutojë kodin ndërsa të tjerët presin. Ndërsa mund të ketë zgjidhje të tjera për ta arritur këtë, vendosa të përdor ZeroMQ për të menaxhuar radhën e FIFO. Kodi i serverit ZeroMQ përmban thirrjen e funksionit aktual për të shfaqur një mesazh në matricën LED një nga një, ndërsa serveri në internet vepron si një klient ZeroMQ për të pyetur dhe dërguar mesazhe në serverin ZeroMQ. Në këtë mënyrë, ndërsa përdorues të shumtë mund të paraqesin mesazhe përmes një faqeje uebi njëkohësisht, serveri ZeroMQ do të shfaqë vetëm një mesazh në të njëjtën kohë.

Për këtë projekt, ne thjesht do të instalojmë paketën Python pyzmq dhe jo të gjithë paketën ZeroMQ.

vrapo:

sudo pip3 instaloni pyzmq

Lexoni udhëzuesin ZeroMQ në https://zguide.zeromq.org dhe provoni shembullin e serverit dhe klientit të përshëndetjes botërore në Python. Kopjoni kodin shembull të Python për serverin dhe klientin në RPi dhe sigurohuni që ata të punojnë para se të shkoni në hapin tjetër.

Hapi 3: Konfigurimi i faqes në internet

Në faqen në internet, kam përdorur kuadrin bootstrap css/js për ta bërë faqen të duket e bukur. Kjo është krejtësisht opsionale.

Shkarkoni skedarin e bashkangjitur led_msg.tar.gz në rrënjën ose nën-drejtorinë Apache. Për të hequr skedarin tar gzip'd, ekzekutoni:

tar -xzvf led_msg.tar.gz

Kjo krijon skedarët e mëposhtëm:

msg.py (programi kryesor)

templates/interstitial.html (template html) templates/send_msg.html (template html) static/img/led_150x150.jpg (jpg e përdorur në modelin html)

Opsionale, instaloni kuadrin bootstrap css/js nën drejtorinë statike.

Vendosni URL -në për msg.py shfletuesin tuaj dhe sigurohuni që faqja e internetit të shfaqet. Mos dërgoni një mesazh akoma !!!

Para se të dorëzohen mesazhet, serveri ZeroMQ duhet të fillojë të pranojë mesazhe nga klienti i faqes në internet dhe t'i shfaqë ato në matricën LED. Asgjë nuk do të shfaqet në ekran nëse serveri ZeroMQ nuk po funksionon.

Shkarkoni kodin e bashkangjitur max7219_server.py në drejtorinë tuaj të shtëpisë, jo në Apache rrënjë ku mund të ekzekutohet nga përdoruesit e uebit. Drejtojeni atë si rrënjë:

sudo python max7219_server.py

Tani serveri ZeroMQ është gati për të marrë mesazhe nga faqja e internetit. Futni dhe dorëzoni një mesazh të thjeshtë nga faqja e internetit. Nëse gjithçka është konfiguruar saktë, do ta shihni atë mesazh në ekranin e serverit ZeroMQ si dhe në Matricën LED.

Nëse doni të fikni serverin, thjesht bëni Control-C për të dalë nga ekrani i serverit.

Kjo eshte. Shpresoj se do ta shijoni këtë projekt aq sa unë.

Një përmirësim që mund të bëni është të bëni komunikimin ZeroMQ midis serverit dhe klientëve asinkron në mënyrë që faqja e internetit të mos presë ndërsa shfaqen mesazhe të tjera. Gjithashtu, mund të bashkëngjitni një matricë LED shtesë në modalitetin kaskadë. Do ta lë këtë për ty.

Recommended: