Indholdsfortegnelse:

IoT RPi LED -opslagstavle: 3 trin (med billeder)
IoT RPi LED -opslagstavle: 3 trin (med billeder)

Video: IoT RPi LED -opslagstavle: 3 trin (med billeder)

Video: IoT RPi LED -opslagstavle: 3 trin (med billeder)
Video: Электрический или водяной полотенцесушитель? Что выбрать? Установка. #25 2024, November
Anonim
Image
Image
Hardwareopsætning
Hardwareopsætning

I denne Instructable har jeg lavet et wifi-tilsluttet LED-opslagstavle ved hjælp af en Raspberry Pi (RPi). Brugere opretter forbindelse til Raspberry Pi’s webserver ved hjælp af deres browsere for at indsende korte beskeder, der vises på 8x8 LED -displayet. Da grænsefladen 8x8 LED-matrix med MAX7219-driveren i Python er veldokumenteret af andre på Internettet, fokuserer dette projekt på at opbygge en webserver-grænseflade og bruge ZeroMQ Messaging til at styre indgående meddelelser.

Opdatering: Her er et opfølgningsprojekt IoT Decimal/Hexadecimal 8x8 LED Matrix Drawing Board

(Jeg er en klubfacilitator for Girls Who Code Club, og jeg kom med dette enkle projekt for at undervise eleverne i design af webgrænseflader og messaging.)

Trin 1: Hardwareopsætning

Hardwareopsætning
Hardwareopsætning
Hardwareopsætning
Hardwareopsætning

Dette projekt kræver følgende hardware:

  • Hindbær Pi
  • USB -strømkilde såsom Anker med et kort USB til MicroUSB -kabel
  • MAX7219 dot matrix modul med et båndkabel (Aliexpress for mindre end $ 2)
  • Kabinet (jeg lavede en af en papkasse og spraymalet i sort)

Hardwareopsætning er den lette del. Du skal blot tilslutte et 5 -tråds båndkabel fra LED -matrixen til RPi pr. MAX7219 biblioteksdokument.

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

Jeg brugte et dobbeltsidet skumbånd til at fastgøre LED-enheden til RPi-kabinettet. Derefter lavede jeg et kabinet af en papkasse til både RPi og batteri.

Trin 2: Softwareopsætning

Opsætning af software
Opsætning af software
Opsætning af software
Opsætning af software
Opsætning af software
Opsætning af software
Opsætning af software
Opsætning af software

RPi skal have følgende software:

  • Python 3
  • Apache 2 webserver
  • Max7219 driver til Python
  • ZeroMQ -beskeder

Python 3

RPi skal have Python 3 allerede forudinstalleret. Mens min kode er skrevet til Python 3, burde Python 2 fungere med få mindre ændringer.

Apache 2

Opsæt Apache, og aktiver Python CGI -scripting. Nedenfor er et par gode ressourcer til opsætning af Apache på RPi, så jeg vil ikke gentage her. Følg bare tutorials herunder for at konfigurere Apache og CGI. Sørg for, at *.py -scripts kan eksekveres fra en browser.

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

Max7291 driver

Installer Max7219 -driveren ved at følge den seneste installationsguide:

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

Efter installationen skal du køre eksempelkoden, matrix_test.py, pr. Installationsguide for at få vist "Hello World" på LED Matrix. Dette skal fungere, før du går videre til næste trin.

ZeroMQ -beskeder

Hvorfor har vi brug for Beskeder? Prøv at køre ovenstående eksempelkode, matrix_test.py, på to terminalskærme samtidigt. Systemet tillader flere koder at køre samtidigt, men du vil se beskeder blive overlappet, hvilket ikke er ønskeligt. I et enkelt brugermiljø er dette muligvis ikke et problem, da du kunne sikre dig, at kun ét program kunne køre ad gangen. I et flerbrugermiljø som f.eks. Web skal systemet oprette en FIFO-kø (First-In-First-Out) for at sikre, at kun én person kunne udføre koden, mens andre venter. Selvom der kan være andre løsninger for at opnå dette, besluttede jeg at bruge ZeroMQ til at styre FIFO -køen. ZeroMQ -serverkoden indeholder det faktiske funktionsopkald for at vise en meddelelse på LED -matrixen en ad gangen, mens webserveren fungerer som en ZeroMQ -klient for at forespørge og sende meddelelser til ZeroMQ -serveren. På denne måde, mens flere brugere kunne indsende beskeder via en webside samtidigt, viser ZeroMQ -serveren kun en besked ad gangen.

Til dette projekt installerer vi bare Python -pakken pyzmq og ikke hele ZeroMQ -pakken.

løb:

sudo pip3 installer pyzmq

Læs ZeroMQ -guiden på https://zguide.zeromq.org, og prøv hello world -serveren og klienteksemplet i Python. Kopiér Python -eksempelkoden for både server og klient til RPi, og sørg for, at de fungerer, før du går til næste trin.

Trin 3: Opsætning af webside

På websiden brugte jeg bootstrap css/js framework til at få siden til at se smuk ud. Dette er helt valgfrit.

Download den vedhæftede led_msg.tar.gz-fil til Apache-roden eller undermappen. For at fjerne gzip'd tar -filen skal du køre:

tar -xzvf led_msg.tar.gz

Dette opretter følgende filer:

msg.py (hovedprogram)

skabeloner/interstitial.html (html skabelon) skabeloner/send_msg.html (html skabelon) static/img/led_150x150-j.webp

Du kan eventuelt installere bootstrap css/js -rammen under det statiske bibliotek.

Indtast webadressen til msg.py din browser, og sørg for, at websiden kommer frem. Send ikke en besked endnu !!!

Inden meddelelser kan indsendes, skal ZeroMQ -serveren startes for at acceptere meddelelser fra websideklienten og vise dem på LED -matricen. Intet vises på skærmen, hvis ZeroMQ -serveren ikke kører.

Download den vedhæftede max7219_server.py -kode til din hjemmemappe, ikke i Apache root dir, hvor den kunne udføres af webbrugere. Kør det som root:

sudo python max7219_server.py

Nu er ZeroMQ -serveren klar til at modtage beskeder fra websiden. Indtast og indsend en simpel besked fra websiden. Hvis alt er konfigureret korrekt, vil du se denne meddelelse på ZeroMQ -serverens skærm samt på LED Matrix.

Hvis du vil lukke serveren, skal du bare gøre Control-C for at forlade serverskærmen.

Det er det. Håber du vil nyde dette projekt lige så meget som jeg gjorde.

En forbedring, du kan foretage, er at gøre ZeroMQ -kommunikationen mellem serveren og klienterne asynkrone, så websiden ikke venter, mens andre meddelelser vises. Du kan også vedhæfte yderligere LED -matrix i kaskadetilstand. Jeg overlader det til dig.

Anbefalede: