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, Srpanj
Anonim
Image
Image
Postavljanje hardvera
Postavljanje hardvera

U ovom Instructable-u napravio sam LED oglasnu ploču povezanu s wifi-jem koristeći Raspberry Pi (RPi). Korisnici će se povezati s web poslužiteljem Raspberry Pi koristeći svoje preglednike za slanje kratkih poruka koje će se pojaviti na 8x8 LED zaslonu. 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 pouč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:

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

Postavljanje hardvera je lakši dio. Jednostavno spojite 5 -žični vrpčani kabel s LED matrice na RPi po dokumentu knjižnice 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 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
  • Poruke ZeroMQ

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.

Apač 2

Postavite Apache i omogućite Python CGI skriptiranje. Ispod je nekoliko sjajnih resursa za postavljanje Apachea na RPi pa se ovdje neću ponavljati. Samo slijedite upute u nastavku za postavljanje Apachea i CGI -ja. Provjerite jesu li 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 za prikaz "Hello World" na LED matrici. Ovo mora raditi prije nego što prijeđete na sljedeći korak.

Poruke ZeroMQ

Zašto nam je potrebna poruka? Pokušajte pokrenuti gornji primjer koda, matrix_test.py, na dva terminala istovremeno. Sustav će dopustiti istovremeni rad više kodova, ali vidjet ćete da se poruke preklapaju, što nije poželjno. U okruženju s jednim korisnikom to možda nije problem jer biste mogli biti sigurni da se istovremeno može pokrenuti samo jedan program. U okruženju s više korisnika, poput weba, sustav 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 poslužitelju ZeroMQ. Na ovaj način, dok više korisnika može slati poruke putem web stranice istovremeno, poslužitelj ZeroMQ prikazat će samo jednu poruku odjednom.

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

trčanje:

sudo pip3 instalirajte pyzmq

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

Korak 3: Postavljanje web stranice

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

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

tar -xzvf vodio_msg.tar.gz

Time se stvaraju sljedeće datoteke:

msg.py (glavni program)

predlošci/međuprostorni.html (html predložak) predlošci/send_msg.html (html predložak) static/img/led_150x150-j.webp

Po želji, instalirajte bootstrap css/js okvir 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 zaslonu ako poslužitelj ZeroMQ nije pokrenut.

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

sudo python max7219_server.py

Sada je poslužitelj ZeroMQ spreman za primanje poruka s web stranice. Unesite i pošaljite jednostavnu poruku s web stranice. Ako je sve ispravno postavljeno, vidjet ćete tu poruku na zaslonu poslužitelja ZeroMQ, kao i na LED matrici.

Ako želite isključiti poslužitelj, samo pritisnite Control-C za izlaz iz zaslona 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 jest učiniti komunikaciju ZeroMQ između poslužitelja i klijenata asinkronom kako web stranica ne bi čekala dok se prikazuju druge poruke. Također, možete priključiti dodatnu LED matricu u kaskadnom načinu rada. To ću prepustiti vama.

Preporučeni: