Indholdsfortegnelse:
Video: IoT RPi LED -opslagstavle: 3 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:28
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
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
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:
Sådan gør du: Installation af Raspberry PI 4 Headless (VNC) med Rpi-imager og billeder: 7 trin (med billeder)
Sådan gør du: Installation af Raspberry PI 4 Headless (VNC) med Rpi-imager og billeder: Jeg planlægger at bruge denne Rapsberry PI i en masse sjove projekter tilbage i min blog. Tjek det gerne ud. Jeg ville tilbage til at bruge min Raspberry PI, men jeg havde ikke et tastatur eller en mus på min nye placering. Det var et stykke tid siden jeg konfigurerede en hindbær
RPi IoT Smart Light Brug af Firebase: 4 trin (med billeder)
RPi IoT Smart Light Brug af Firebase: Denne vejledning viser dig, hvordan du opretter og opsætter en app til at styre Raspberry Pi via Firebase (En online database). Og så 3D -udskrivning af etui til Pi Zero W, en Powerboost 1000C, et batteri og en Blinkt! .For at være nemmest i stand til at følge med, kan jeg
RPi-Zero IoT-hændelsesindikator / farvelampe: 6 trin (med billeder)
RPi-Zero IoT-hændelsesindikator / farvelampe: Ingen ekstra mikrokontroller & Ingen HAT-tilføjelsesmodul påkrævet. RPi-Zero gør alt. Bedre endnu, brug en RPi-Zero W! Prøvebrug: Web Service-statusindikator (f.eks. DowJonesIndex-sporing), statusindikator for politisk eller sportsbegivenhed, humørlys
Sådan adskilles en computer med nemme trin og billeder: 13 trin (med billeder)
Sådan adskilles en computer med nemme trin og billeder: Dette er en instruktion om, hvordan du adskiller en pc. De fleste af de grundlæggende komponenter er modulopbyggede og nemme at fjerne. Det er dog vigtigt, at du er organiseret omkring det. Dette hjælper med at forhindre dig i at miste dele og også ved at lave genmonteringen til
Genanvend optisk drev med RPi: 6 trin (med billeder)
Genanvend optisk drev med RPi: Dette projekt blev til, efter at min elskede bærbare optiske drev begyndte at opføre sig forkert. CD -bakken dukkede gentagne gange ud, når jeg gav min bærbare et skub eller flyttede den på nogen måde. Min diagnose af problemet var, at der må have været nogle