Sadržaj:

IoT RPi LED oglasna ploča: 3 koraka (sa slikama)
IoT RPi LED oglasna ploča: 3 koraka (sa slikama)

Video: IoT RPi LED oglasna ploča: 3 koraka (sa slikama)

Video: IoT RPi LED oglasna ploča: 3 koraka (sa slikama)
Video: Электрика в квартире своими руками. Финал. Переделка хрущевки от А до Я. #11 2024, Juli
Anonim
Image
Image
Postavljanje hardvera
Postavljanje hardvera

U ovom Instructable-u napravio sam LED ploču s porukama povezanu putem WiFi-a koristeći Raspberry Pi (RPi). Korisnici će se povezati sa web serverom Raspberry Pi koristeći svoje preglednike za slanje kratkih poruka koje će se pojaviti na 8x8 LED ekranu. Budući da povezivanje LED matrice 8x8 s upravljačkim programom MAX7219 u Pythonu dobro dokumentiraju drugi na Internetu, ovaj se projekt fokusira na izgradnju sučelja web poslužitelja i korištenje ZeroMQ poruka za upravljanje dolaznim porukama.

Ažuriranje: Evo sljedećeg projekta IoT Decimal/Hexadecimal 8x8 LED Matrix Drawing Board

(Ja sam voditeljica kluba za Girls Who Code Club i osmislili smo ovaj jednostavan projekt za podučavanje učenika dizajnu web sučelja i razmjeni poruka.)

Korak 1: Postavljanje hardvera

Postavljanje hardvera
Postavljanje hardvera
Postavljanje hardvera
Postavljanje hardvera

Ovaj projekt zahtijeva sljedeći hardver:

  • Raspberry Pi
  • USB izvor napajanja, poput Ankera, s kratkim USB do MicroUSB kabelom
  • MAX7219 matrični modul s matricom s vrpčnim kabelom (Aliexpress za manje od 2 USD)
  • Kućište (napravio sam ga od kartonske kutije i sprejom obojenim u crno)

Postavljanje hardvera je lak dio. Jednostavno spojite petožilni vrpčani kabel s LED matrice na RPi po biblioteci doc MAX7219.

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

Koristio sam dvostranu pjenastu traku za pričvršćivanje LED jedinice na kućište RPi. Zatim sam od kartonske kutije napravio kućište za smještaj i RPi -ja i baterije.

Korak 2: Postavljanje softvera

Postavljanje softvera
Postavljanje softvera
Postavljanje softvera
Postavljanje softvera
Postavljanje softvera
Postavljanje softvera
Postavljanje softvera
Postavljanje softvera

RPi bi trebao imati sljedeći softver:

  • Python 3
  • Apache 2 web server
  • Max7219 upravljački program za Python
  • ZeroMQ razmjena poruka

Python 3

RPi bi trebao imati već instaliran Python 3. Dok je moj kod napisan za Python 3, Python 2 bi trebao raditi s nekoliko manjih promjena.

Apache 2

Postavite Apache i omogućite Python CGI skriptiranje. Ispod je nekoliko sjajnih resursa za postavljanje Apache -a na RPi pa neću ovdje ponavljati. Samo slijedite upute u nastavku za postavljanje Apachea i CGI -ja. Uvjerite se da su skripte *.py izvršne iz preglednika.

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

Max7291 upravljački program

Instalirajte upravljački program Max7219 slijedeći najnoviji vodič za instalaciju:

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

Nakon instalacije pokrenite primjer koda, matrix_test.py, po vodiču za instalaciju da prikažete "Hello World" na LED matrici. Ovo mora raditi prije nego što prijeđete na sljedeći korak.

ZeroMQ razmjena poruka

Zašto nam je potrebna poruka? Pokušajte pokrenuti gornji primjer koda, matrix_test.py, na dva terminala istovremeno. Sistem će omogućiti istovremeni rad više kodova, ali vidjet ćete da se poruke preklapaju, što nije poželjno. U jednom korisničkom okruženju to možda nije problem jer biste mogli biti sigurni da se može pokrenuti samo jedan program odjednom. U okruženju s više korisnika, kao što je web, sistem mora stvoriti FIFO (First-In-First-Out) red kako bi bio siguran da samo jedna osoba može izvršiti kôd dok drugi čekaju. Iako mogu postojati druga rješenja za to, odlučio sam koristiti ZeroMQ za upravljanje FIFO redom. Kod poslužitelja ZeroMQ sadrži stvarni poziv funkcije za prikaz poruke na LED matrici jedan po jedan, dok web poslužitelj djeluje kao klijent ZeroMQ za ispitivanje i slanje poruka na poslužitelj ZeroMQ. Na ovaj način, dok više korisnika može istovremeno slati poruke putem web stranice, server ZeroMQ će prikazivati samo jednu poruku odjednom.

Za ovaj projekt samo ćemo instalirati Python paket pyzmq, a ne cijeli ZeroMQ paket.

trčanje:

sudo pip3 install pyzmq

Pročitajte ZeroMQ vodič na https://zguide.zeromq.org i isprobajte hello world server i klijentski primjer u Pythonu. Kopirajte primjer koda Pythona i za poslužitelj i za klijenta u RPi i provjerite da li rade prije nego prijeđete na sljedeći korak.

Korak 3: Postavljanje web stranice

Na web stranici sam koristio bootstrap css/js framework kako bih stranica izgledala lijepo. Ovo je potpuno neobavezno.

Preuzmite priloženu datoteku led_msg.tar.gz u Apacheov root ili poddirektorij. Da biste poništili gzip'd tar datoteku, pokrenite:

tar -xzvf vodio_msg.tar.gz

Ovo stvara sljedeće datoteke:

msg.py (glavni program)

templates/interstitial.html (html template) templates/send_msg.html (html template) static/img/led_150x150-j.webp

Po želji, instalirajte bootstrap css/js framework ispod statičkog direktorija.

Unesite URL za msg.py svoj preglednik i provjerite otvara li se web stranica. Ne šaljite još poruku !!!

Prije nego što se poruke mogu poslati, poslužitelj ZeroMQ mora biti pokrenut da prihvaća poruke od klijenta web stranice i prikazuje ih na LED matrici. Ništa se neće prikazati na ekranu ako server ZeroMQ nije pokrenut.

Preuzmite priloženi kod max7219_server.py u svoj kućni direktorij, a ne u Apache root dir gdje bi ga mogli izvršiti korisnici weba. Pokreni ga kao root:

sudo python max7219_server.py

Sada je server ZeroMQ spreman za prijem poruka s web stranice. Unesite i pošaljite jednostavnu poruku s web stranice. Ako je sve ispravno postavljeno, vidjet ćete tu poruku na ekranu servera ZeroMQ, kao i na LED matrici.

Ako želite isključiti poslužitelj, samo pritisnite Control-C za izlaz iz ekrana poslužitelja.

To je to. Nadam se da ćete uživati u ovom projektu kao i ja.

Jedno poboljšanje koje biste mogli učiniti je učiniti ZeroMQ komunikaciju između poslužitelja i klijenata asinhronom tako da web stranica ne čeka dok se prikazuju druge poruke. Također, u kaskadnom načinu rada možete priključiti dodatnu LED matricu. To ću prepustiti vama.

Preporučuje se: