Sisällysluettelo:
Video: IoT RPi LED -viestitaulu: 3 vaihetta (kuvilla)
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:01
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
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
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:
Ohjeet: Raspberry PI 4 Headless (VNC) -asennus Rpi-imagerilla ja kuvilla: 7 vaihetta (kuvien kanssa)
Ohjeet: Raspberry PI 4 Headless (VNC) -asennuksen asentaminen Rpi-imagerilla ja kuvilla: Aion käyttää tätä Rapsberry PI: tä joukossa hauskoja projekteja blogissani. Voit vapaasti tarkistaa sen. Halusin palata käyttämään Raspberry PI: tä, mutta minulla ei ollut näppäimistöä tai hiirtä uudessa paikassa. Siitä on aikaa, kun asetin Vadelman
RPI kotitekoinen hattu: 5 vaihetta (kuvilla)
RPI Kotitekoinen hattu: Hei, Nimeni on Boris ja tämä on ensimmäinen Instructables Minulla on Raspberry Pi 3B+ ja käytän sitä yksinkertaiseen kodin automaatioon, kuten television, AC: n ja joidenkin valojen hallintaan. ja aloin tehdä yksinkertaisia piirilevyjä (minä
Digitaalinen RPi LED -lämpömittari: 6 vaihetta (kuvilla)
Digitaalinen RPi LED -lämpömittari: Raspbian OSLisätietoja siitä, miten tein tämän digitaalisen LED -lämpömittarin, jossa on Raspberry Pi Zero W, LED -nauha, OLED -näyttö ja mukautettu piirilevy.Se kiertää automaattisesti kaupunkiluettelon ja näyttää OLED -lämpötilan näyttö ja LEDit. Mutta
RPi IoT Smart Light Firebasen avulla: 4 vaihetta (kuvilla)
RPi IoT Smart Light Firebasen avulla: Tässä oppaassa kerrotaan, miten voit luoda ja määrittää sovelluksen Raspberry Pi: n hallintaan Firebasen (online -tietokanta) kautta. Ja sitten 3D -tulostuskotelo Pi Zero W: lle, Powerboost 1000C, akku ja Blinkt
RPi-Zero IoT -tapahtuman ilmaisin / värilamppu: 6 vaihetta (kuvilla)
RPi-Zero IoT -tapahtuman ilmaisin / värilamppu: Ei muita mikro-ohjaimia, & Ei HAT-lisämoduulia, RPi-Zero tekee kaiken. Käytä vielä paremmin RPi-Zero W: tä! Esimerkkikäyttö: Verkkopalvelun tilan ilmaisin (esim. DowJonesIndex-seuranta), poliittisten tai urheilutapahtumien tilan ilmaisin, tunnelmavalo