Sisukord:

IoT RPi LED -teadetetahvel: 3 sammu (piltidega)
IoT RPi LED -teadetetahvel: 3 sammu (piltidega)

Video: IoT RPi LED -teadetetahvel: 3 sammu (piltidega)

Video: IoT RPi LED -teadetetahvel: 3 sammu (piltidega)
Video: Leap Motion SDK 2024, November
Anonim
Image
Image
Riistvara seadistamine
Riistvara seadistamine

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

Riistvara seadistamine
Riistvara seadistamine
Riistvara seadistamine
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

Tarkvara seadistamine
Tarkvara seadistamine
Tarkvara seadistamine
Tarkvara seadistamine
Tarkvara seadistamine
Tarkvara seadistamine
Tarkvara seadistamine
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: