Sisällysluettelo:

IoT RPi LED -viestitaulu: 3 vaihetta (kuvilla)
IoT RPi LED -viestitaulu: 3 vaihetta (kuvilla)

Video: IoT RPi LED -viestitaulu: 3 vaihetta (kuvilla)

Video: IoT RPi LED -viestitaulu: 3 vaihetta (kuvilla)
Video: Kamera-LAMP, jossa on henkilön seuranta ja tunnistaminen. 2024, Marraskuu
Anonim
Image
Image
Laitteiston asennus
Laitteiston asennus

Tässä Instructable-ohjelmassa olen tehnyt wifi-yhdistetyn LED-ilmoitustaulun Raspberry Pi (RPi) -laitteella. Käyttäjät muodostavat yhteyden Raspberry Pi -verkkopalvelimeen selaimensa kautta lähettääkseen lyhytsanomia, jotka näkyvät 8x8 LED -näytöllä. Koska 8x8 LED-matriisin liittäminen MAX7219-ohjaimeen Pythonissa on muiden hyvin dokumentoitua Internetissä, tämä projekti keskittyy verkkopalvelinliittymän rakentamiseen ja ZeroMQ Messagingin käyttämiseen saapuvien viestien hallintaan.

Päivitys: Tässä on jatkohanke IoT Decimal/Hexadecimal 8x8 LED Matrix Drawing Board

(Olen klubin fasilitaattori Girls Who Code Clubille ja keksin tämän yksinkertaisen projektin opettaakseni oppilaille web -käyttöliittymän suunnittelua ja viestintää.)

Vaihe 1: Laitteiston asennus

Laitteiston asennus
Laitteiston asennus
Laitteiston asennus
Laitteiston asennus

Tämä projekti vaatii seuraavat laitteistot:

  • Raspberry Pi
  • USB -virtalähde, kuten Anker, lyhyellä USB -MicroUSB -kaapelilla
  • MAX7219 pistematriisimoduuli nauhakaapelilla (Aliexpress alle 2 dollaria)
  • Kotelo (tein yhden pahvilaatikosta ja sumutinmaalattu mustaksi)

Laitteiston asennus on helppo osa. Liitä vain 5 -johtiminen nauhakaapeli LED -matriisista RPi: hen MAX7219 -kirjaston mukaan.

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

Kiinnitin LED-yksikön RPi-koteloon kaksipuolisella vaahtoteipillä. Sitten tein kotelon pahvilaatikosta sekä RPi: lle että akulle.

Vaihe 2: Ohjelmiston asennus

Ohjelmiston asennus
Ohjelmiston asennus
Ohjelmiston asennus
Ohjelmiston asennus
Ohjelmiston asennus
Ohjelmiston asennus
Ohjelmiston asennus
Ohjelmiston asennus

RPi: ssä pitäisi olla seuraava ohjelmisto:

  • Python 3
  • Apache 2 -verkkoselain
  • Max7219 -ohjain Pythonille
  • ZeroMQ -viestit

Python 3

RPiin pitäisi olla asennettu Python 3 valmiiksi. Vaikka koodini on kirjoitettu Python 3: lle, Python 2: n pitäisi toimia pienillä muutoksilla.

Apache 2

Asenna Apache ja ota käyttöön Python CGI -komentosarja. Alla on pari hienoa resurssia Apachen asentamiseen RPi: hen, joten en toista tätä täällä. Asenna Apache ja CGI noudattamalla alla olevia opetusohjelmia. Varmista, että *.py -komentosarjat voidaan suorittaa selaimella.

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

Kuljettaja max7291

Asenna Max7219 -ohjain noudattamalla uusinta asennusopasta:

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

Suorita asennuksen jälkeen esimerkkikoodi, matrix_test.py, asennusoppaan kohdalta näyttääksesi "Hello World" LED -matriisissa. Tämän on toimittava ennen seuraavaan vaiheeseen siirtymistä.

ZeroMQ -viestit

Miksi tarvitsemme viestejä? Yritä suorittaa yllä oleva esimerkkikoodi, matrix_test.py, kahdessa päätelaitteen näytössä samanaikaisesti. Järjestelmä sallii useiden koodien suorittamisen samanaikaisesti, mutta näet viestit päällekkäin, mikä ei ole toivottavaa. Yhden käyttäjän ympäristössä tämä ei välttämättä ole ongelma, koska voit varmistaa, että vain yksi ohjelma voi toimia kerrallaan. Monen käyttäjän ympäristössä, kuten verkossa, järjestelmän on luotava FIFO (First-In-First-Out) -jono varmistaakseen, että vain yksi henkilö voi suorittaa koodin muiden odottaessa. Vaikka tähän voi olla muitakin ratkaisuja, päätin käyttää ZeroMQ: ta FIFO -jonon hallintaan. ZeroMQ -palvelinkoodi sisältää varsinaisen toimintokutsun, joka näyttää viestin LED -matriisissa yksi kerrallaan, kun taas verkkopalvelin toimii ZeroMQ -asiakkaana tiedustellakseen ja lähettääkseen viestejä ZeroMQ -palvelimelle. Tällä tavalla, vaikka useat käyttäjät voisivat lähettää viestejä verkkosivun kautta samanaikaisesti, ZeroMQ -palvelin näyttää vain yhden viestin kerrallaan.

Tätä projektia varten asennamme vain Python -paketin pyzmq eikä koko ZeroMQ -pakettia.

juosta:

sudo pip3 asentaa pyzmq

Lue ZeroMQ -opas osoitteesta https://zguide.zeromq.org ja kokeile hello world -palvelin- ja asiakasesimerkkiä Pythonissa. Kopioi sekä palvelimen että asiakkaan Python -esimerkkikoodi RPi: hen ja varmista, että ne toimivat, ennen kuin siirryt seuraavaan vaiheeseen.

Vaihe 3: Verkkosivun asetukset

Verkkosivulla käytin bootstrap css/js -kehystä, jotta sivu näyttäisi kauniilta. Tämä on täysin valinnaista.

Lataa liitteenä oleva led_msg.tar.gz-tiedosto Apache-päähakemistoon. Poista gzip'd -tar -tiedoston tähti suorittamalla:

tar -xzvf led_msg.tar.gz

Tämä luo seuraavat tiedostot:

msg.py (pääohjelma)

templates/interstitial.html (html -malli) templates/send_msg.html (html -malli) staattinen/img/led_150x150-j.webp

Vaihtoehtoisesti voit asentaa bootstrap css/js -kehyksen staattisen hakemiston alle.

Anna selaimesi msg.py -osoitteen URL -osoite ja varmista, että verkkosivu tulee näkyviin. Älä lähetä vielä viestiä !!!

Ennen kuin viestejä voidaan lähettää, ZeroMQ -palvelin on käynnistettävä vastaanottamaan verkkosivun asiakassanoman viestit ja näyttämään ne LED -matriisissa. Mikään ei näy näytöllä, jos ZeroMQ -palvelin ei ole käynnissä.

Lataa liitteenä oleva max7219_server.py -koodi kotihakemistoosi, ei Apache -päähakemistoon, jossa web -käyttäjät voivat suorittaa sen. Suorita se pääkäyttäjänä:

sudo python max7219_server.py

Nyt ZeroMQ -palvelin on valmis vastaanottamaan viestejä verkkosivulta. Kirjoita ja lähetä yksinkertainen viesti verkkosivulta. Jos kaikki on asetettu oikein, näet viestin ZeroMQ -palvelinnäytössä ja LED -matriisissa.

Jos haluat sulkea palvelimen, poistu palvelinnäytöstä painamalla Control-C.

Se siitä. Toivottavasti pidät tästä projektista yhtä paljon kuin minä.

Yksi parannus, jonka voit tehdä, on tehdä ZeroMQ -viestintä palvelimen ja asiakkaiden välillä epätahdiksi, jotta verkkosivu ei odota muiden viestien näyttämistä. Voit myös liittää ylimääräisen LED -matriisin kaskaditilassa. Jätän sen sinulle.

Suositeltava: