Taula de continguts:
- Pas 1: Configuració del maquinari
- Pas 2: Configuració del programari
- Pas 3: Configuració de la pàgina web
Vídeo: Tauler de missatges LED IoT RPi: 3 passos (amb imatges)
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:13
En aquest manual, he creat un tauler de missatges LED connectat a wifi mitjançant un Raspberry Pi (RPi). Els usuaris es connectaran al servidor web de Raspberry Pi mitjançant el seu navegador per enviar missatges curts que apareixeran a la pantalla LED de 8x8. Atès que la interfície de la matriu LED 8x8 amb el controlador MAX7219 a Python està ben documentada per altres usuaris a Internet, aquest projecte se centra a construir una interfície de servidor web i utilitzar la missatgeria ZeroMQ per gestionar els missatges entrants.
Actualització: aquí teniu un projecte de seguiment Tauler de dibuix de matriu LED IoT Decimal / Hexadecimal 8x8 LED
(Sóc una facilitadora del club per a Girls Who Code Club i vaig arribar a aquest senzill projecte per ensenyar als estudiants a dissenyar interfícies web i missatgeria).
Pas 1: Configuració del maquinari
Aquest projecte requereix el següent maquinari:
- Raspberry Pi
- Font d'alimentació USB, com ara Anker, amb un curt cable USB a MicroUSB
- Mòdul de matriu de punts MAX7219 amb un cable de cinta (Aliexpress per menys de 2 $)
- Tancament (n’he fet una d’una caixa de cartró i pintada amb esprai de negre)
La configuració del maquinari és la part més senzilla. Simplement connecteu un cable de cinta de 5 fils de la matriu LED al RPi segons el document de la biblioteca MAX7219.
LED-> RPi ======== VCC-> Pin GPIO # 2 (5v) GND-> Pin GPIO # 6 (GND) DIN-> Pin GPIO # 19CS -> Pin GPIO # 24CLK-> Pin GPIO # 23
Vaig utilitzar una cinta d’escuma de doble cara per fixar la unitat LED a la caixa RPi. Després, vaig fer un recinte d’una caixa de cartró per allotjar tant RPi com bateria.
Pas 2: Configuració del programari
RPi hauria de tenir el programari següent:
- Python 3
- Cercador web Apache 2
- Controlador Max7219 per a Python
- Missatgeria ZeroMQ
Python 3
RPi hauria de tenir Python 3 ja preinstal·lat. Tot i que el meu codi està escrit per a Python 3, Python 2 hauria de funcionar amb pocs canvis menors.
Apache 2
Configureu Apache i activeu la creació de scripts Python CGI. A continuació es mostren alguns recursos fantàstics per configurar Apache a RPi, de manera que no repetiré aquí. Seguiu els tutorials següents per configurar Apache i CGI. Assegureu-vos que els scripts *.py siguin executables des d’un navegador.
- https://raspberrywebserver.com/cgiscripting/
- https://www.knight-of-pi.org/apache-web-server-with-cgi-for-python/
Controlador Max7291
Instal·leu el controlador Max7219 seguint la guia d'instal·lació més recent:
https://max7219.readthedocs.io/en/latest/install.html
Després de la instal·lació, executeu el codi d'exemple, matrix_test.py, per guia d'instal·lació per mostrar "Hello World" al LED Matrix. Això ha de funcionar abans d’anar al següent pas.
Missatgeria ZeroMQ
Per què necessitem la missatgeria? Proveu d'executar el codi d'exemple anterior, matrix_test.py, en dues pantalles de terminal simultàniament. El sistema permetrà executar diversos codis simultàniament, però veureu que es superposen missatges, cosa que no és desitjable. En un entorn d'usuari únic, pot ser que això no sigui un problema, ja que podeu assegurar-vos que només es pogués executar un programa alhora. En un entorn multiusuari com ara el web, el sistema ha de crear una cua FIFO (First-In-First-Out) per assegurar-se que només una persona pugui executar el codi mentre altres esperen. Tot i que hi pot haver altres solucions per aconseguir-ho, vaig decidir utilitzar ZeroMQ per gestionar la cua FIFO. El codi del servidor ZeroMQ conté la trucada de funció real per mostrar un missatge a la matriu de LED d'una en una mentre el servidor web actua com a client ZeroMQ per informar-se i enviar missatges al servidor ZeroMQ. D’aquesta manera, mentre diversos usuaris poden enviar missatges a través d’una pàgina web simultàniament, el servidor ZeroMQ només mostrarà un missatge a la vegada.
Per a aquest projecte, només instal·larem el paquet Python pyzmq i no tot el paquet ZeroMQ.
correr:
sudo pip3 instal·la pyzmq
Llegiu la guia ZeroMQ a https://zguide.zeromq.org i proveu l’exemple del servidor i client hello world a Python. Copieu el codi d'exemple de Python per al servidor i el client a RPi i assegureu-vos que funcionin abans d'anar al següent pas.
Pas 3: Configuració de la pàgina web
A la pàgina web, he utilitzat el framework bootstrap css / js per fer que la pàgina quedi bonica. Això és totalment opcional.
Descarregueu el fitxer led_msg.tar.gz adjunt a l'arrel o al subdirectori Apache. Per retirar el fitxer tar gzip'd, executeu:
tar -xzvf led_msg.tar.gz
Això crea els fitxers següents:
msg.py (programa principal)
templates / interstitial.html (plantilla html) templates / send_msg.html (plantilla html) static / img / led_150x150-j.webp
Opcionalment, instal·leu el framework bootstrap css / js al directori estàtic.
Introduïu l'URL de msg.py al vostre navegador i assegureu-vos que la pàgina web aparegui. Encara no envieu cap missatge !!!
Abans de poder enviar missatges, cal iniciar el servidor ZeroMQ per acceptar missatges del client de la pàgina web i mostrar-los a la matriu de LED. No es mostrarà res a la pantalla si el servidor ZeroMQ no s’està executant.
Baixeu-vos el codi max7219_server.py adjunt al vostre directori personal, no a l'adreça arrel d'Apache, on els usuaris web podrien executar-lo. Executeu-lo com a root:
sudo python max7219_server.py
Ara el servidor ZeroMQ està preparat per rebre missatges de la pàgina web. Introduïu i envieu un missatge senzill des de la pàgina web. Si tot està configurat correctament, veureu aquest missatge a la pantalla del servidor ZeroMQ i a la matriu LED.
Si voleu apagar el servidor, feu només Control-C per sortir de la pantalla del servidor.
Això és. Espero que gaudiu d’aquest projecte tant com jo.
Una millora que podeu fer és fer que la comunicació ZeroMQ entre el servidor i els clients sigui asíncrona perquè la pàgina web no esperi mentre es mostren altres missatges. A més, podeu connectar una matriu LED addicional en mode cascada. Ho deixaré a vosaltres.
Recomanat:
Tauler de missatges de tira LED: 3 passos
Tauler de missatges LED Strip: aquest instructiu us guiarà a través del procés de creació d’un tauler de missatges a partir de tires LED NeoPixel adreçables individualment. Aquest projecte és una versió adaptada d’un rètol produït per Josh Levine, que es pot trobar a https://github.com/bigjo
Com fer un lloc web de tauler de missatges mitjançant PHP i MYSQL: 5 passos
Com fer un lloc web de taulers de missatges amb PHP i MYSQL: aquest instructiu us mostrarà com crear un lloc web de taulers de missatges amb php, mysql, html i css. Si no coneixeu el desenvolupament web, no us preocupeu, hi haurà explicacions i analogies detallades perquè pugueu entendre millor els conceptes. Estora
Wall Stranger Things en un marc (escriviu els vostres propis missatges): 8 passos (amb imatges)
Wall Stranger Things in a Frame (Escriu els teus propis missatges): fa mesos que tinc la intenció de fer-ho després de veure un tutorial amb llums de Nadal (semblava fantàstic, però, a què serveix no mostrar cap missatge, oi?). Així que he creat aquest Stranger Things Wall fa un temps i em va costar força temps
DIA DE VALENTÍ Love Birds: una caixa per enviar i rebre missatges d'àudio de Telegram: 9 passos (amb imatges)
DIA DE VALENTÍ Love Birds: una caixa per enviar i rebre missatge d’àudio de Telegram: consulteu el vídeo aquí Què és Love (birds)? Oh Baby, no em facis mal, no em facis més mal, és un dispositiu independent que rep missatges de veu enviats al teu amor, família o amic. Obriu el quadre, premeu el botó mentre parleu, deixeu anar per enviar el
Les maneres més senzilles d'imprimir converses de missatges de text o missatges instantanis des d'iPhone: 3 passos
Les maneres més senzilles d'imprimir converses de missatges de text o missatges d'iPhone des de l'iPhone: Hola a tothom, en aquest instructiu us mostraré les maneres més senzilles d'imprimir missatges de text des del vostre iPhone. no ve per carta, ni tan sols per correu electrònic, sinó a través de tex