Taula de continguts:

Tauler de missatges LED IoT RPi: 3 passos (amb imatges)
Tauler de missatges LED IoT RPi: 3 passos (amb imatges)

Vídeo: Tauler de missatges LED IoT RPi: 3 passos (amb imatges)

Vídeo: Tauler de missatges LED IoT RPi: 3 passos (amb imatges)
Vídeo: Вещи, которые мистеру Уэлчу больше не разрешается делать в сборнике для чтения RPG № 1-2450 2024, Desembre
Anonim
Image
Image
Configuració del maquinari
Configuració del maquinari

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

Configuració del maquinari
Configuració del maquinari
Configuració del maquinari
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

Configuració del programari
Configuració del programari
Configuració del programari
Configuració del programari
Configuració del programari
Configuració del programari
Configuració del programari
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: