Tabla de contenido:

Tablero de mensajes LED IoT RPi: 3 pasos (con imágenes)
Tablero de mensajes LED IoT RPi: 3 pasos (con imágenes)

Video: Tablero de mensajes LED IoT RPi: 3 pasos (con imágenes)

Video: Tablero de mensajes LED IoT RPi: 3 pasos (con imágenes)
Video: Muestra mensajes facilmente en matriz led 8x64 2024, Mes de julio
Anonim
Image
Image
configuración de hardware
configuración de hardware

En este Instructable, hice un tablero de mensajes LED con conexión wifi usando una Raspberry Pi (RPi). Los usuarios se conectarán al servidor web de la Raspberry Pi utilizando sus navegadores para enviar mensajes cortos que se mostrarán en la pantalla LED de 8x8. Dado que la interconexión de la matriz LED 8x8 con el controlador MAX7219 en Python está bien documentada por otros en Internet, este proyecto se centra en la creación de una interfaz de servidor web y el uso de la mensajería ZeroMQ para administrar los mensajes entrantes.

Actualización: Aquí hay un proyecto de seguimiento IoT Decimal / Hexadecimal 8x8 LED Matrix Drawing Board

(Soy facilitadora del club Girls Who Code Club y se me ocurrió este sencillo proyecto para enseñar a los estudiantes sobre el diseño y la mensajería de la interfaz web).

Paso 1: configuración del hardware

configuración de hardware
configuración de hardware
configuración de hardware
configuración de hardware

Este proyecto requiere el siguiente hardware:

  • Frambuesa pi
  • Fuente de alimentación USB como Anker con un cable corto de USB a MicroUSB
  • Módulo de matriz de puntos MAX7219 con un cable plano (Aliexpress por menos de $ 2)
  • Recinto (hice uno con una caja de cartón y lo pinté con spray en negro)

La configuración del hardware es la parte fácil. Simplemente conecte un cable plano de 5 hilos desde la matriz de LED al RPi según el documento de la biblioteca MAX7219.

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

Usé una cinta de espuma de doble cara para fijar la unidad LED a la carcasa del RPi. Luego, hice un recinto con una caja de cartón para alojar tanto el RPi como la batería.

Paso 2: configuración del software

Configuración del software
Configuración del software
Configuración del software
Configuración del software
Configuración del software
Configuración del software
Configuración del software
Configuración del software

RPi debe tener el siguiente software:

  • Python 3
  • Servidor web Apache 2
  • Controlador Max7219 para Python
  • Mensajería ZeroMQ

Python 3

RPi debería tener Python 3 ya preinstalado. Si bien mi código está escrito para Python 3, Python 2 debería funcionar con algunos cambios menores.

Apache 2

Configure Apache y habilite las secuencias de comandos CGI de Python. A continuación se muestran dos excelentes recursos para configurar Apache en RPi, por lo que no repetiré aquí. Simplemente siga los tutoriales a continuación para configurar Apache y CGI. Asegúrese de que los scripts *.py sean ejecutables desde un navegador.

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

Controlador Max7291

Instale el controlador Max7219 siguiendo la última guía de instalación:

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

Después de la instalación, ejecute el código de ejemplo, matrix_test.py, según la guía de instalación para mostrar "Hello World" en la matriz de LED. Esto tiene que funcionar antes de pasar al siguiente paso.

Mensajería ZeroMQ

¿Por qué necesitamos mensajería? Intente ejecutar el código de ejemplo anterior, matrix_test.py, en dos pantallas de terminal simultáneamente. El sistema permitirá que se ejecuten varios códigos simultáneamente, pero verá que los mensajes se superponen, lo que no es deseable. En un entorno de un solo usuario, esto puede no ser un problema, ya que puede asegurarse de que solo se pueda ejecutar un programa a la vez. En un entorno multiusuario como la web, el sistema tiene que crear una cola FIFO (primero en entrar, primero en salir) para asegurarse de que solo una persona pueda ejecutar el código mientras otros esperan. Si bien puede haber otras soluciones para lograr esto, decidí usar ZeroMQ para administrar la cola FIFO. El código del servidor ZeroMQ contiene la llamada de función real para mostrar un mensaje en la matriz de LED de uno en uno mientras el servidor web actúa como un cliente ZeroMQ para consultar y enviar mensajes al servidor ZeroMQ. De esta manera, mientras que varios usuarios pueden enviar mensajes a través de una página web simultáneamente, el servidor ZeroMQ solo mostrará un mensaje a la vez.

Para este proyecto, solo instalaremos el paquete Python pyzmq y no todo el paquete ZeroMQ.

correr:

sudo pip3 instalar pyzmq

Lea la guía de ZeroMQ en https://zguide.zeromq.org y pruebe el ejemplo de servidor y cliente hello world en Python. Copie el código de ejemplo de Python para el servidor y el cliente en RPi y asegúrese de que funcionen antes de pasar al siguiente paso.

Paso 3: configuración de la página web

En la página web, utilicé el marco bootstrap css / js para que la página se viera bonita. Esto es totalmente opcional.

Descargue el archivo led_msg.tar.gz adjunto a la raíz o subdirectorio de Apache. Para descomprimir el archivo tar gzip, ejecute:

tar -xzvf led_msg.tar.gz

Esto crea los siguientes archivos:

msg.py (programa principal)

templates / interstitial.html (plantilla html) templates / send_msg.html (plantilla html) static / img / led_150x150-j.webp

Opcionalmente, instale el marco bootstrap css / js en el directorio estático.

Ingrese la URL de msg.py en su navegador y asegúrese de que aparezca la página web. ¡No envíe un mensaje todavía!

Antes de que se puedan enviar mensajes, se debe iniciar el servidor ZeroMQ para aceptar mensajes del cliente de la página web y mostrarlos en la matriz de LED. No se mostrará nada en la pantalla si el servidor ZeroMQ no se está ejecutando.

Descargue el código adjunto max7219_server.py en su directorio de inicio, no en el directorio raíz de Apache, donde los usuarios web podrían ejecutarlo. Ejecútelo como root:

sudo python max7219_server.py

Ahora el servidor ZeroMQ está listo para recibir mensajes de la página web. Ingrese y envíe un mensaje simple desde la página web. Si todo está configurado correctamente, verá ese mensaje en la pantalla del servidor ZeroMQ, así como en la matriz de LED.

Si desea apagar el servidor, simplemente haga Control-C para salir de la pantalla del servidor.

Eso es todo. Espero que disfrutes de este proyecto tanto como yo.

Una mejora que podría hacer es hacer que la comunicación ZeroMQ entre el servidor y los clientes sea asíncrona para que la página web no espere mientras se muestran otros mensajes. Además, puede conectar una matriz de LED adicional en modo cascada. Eso te lo dejo a ti.

Recomendado: