Pizarras E-Paper con Waveshare

Pizarras E-Paper con Waveshare

Pizarras E-Paper con Waveshare

Waveshare E-Paper Displays: La Guía Definitiva para Usuarios de ESPHome

Waveshare es una empresa especializada en el diseño y fabricación de componentes electrónicos, como placas de desarrollo, pantallas y sensores, utilizados en áreas como el Internet de las Cosas (IoT), la robótica y la educación. Si alguna vez has visto hermosas pantallas de tinta electrónica (e-paper) de gran tamaño utilizadas con ESPHome y Home Assistant, es muy probable que fueran fabricadas por Waveshare.

A diferencia de los paneles LED o LCD, las pantallas de tinta electrónica suelen tener solo unos pocos colores o vienen únicamente en blanco y negro. Esto se debe a que su tecnología subyacente, principalmente las pantallas electroforéticas (EPD), se basa en el movimiento físico de partículas de pigmento cargadas para formar una imagen. En otras palabras, es como si pequeñas partículas de polvo de colores se movieran físicamente para crear lo que ves, en lugar de que las luces se enciendan o apaguen. Este movimiento físico es mucho más difícil de realizar con muchos colores diferentes de manera rápida y vibrante.

Pizarras E-Paper con Waveshare

📣
¿Te interesan estas ofertas? Las publicamos primero en nuestro canal de Telegram10.247 miembros.

En este artículo, compartiré mi experiencia con las pantallas E-Paper de Waveshare y ESPHome. Mi objetivo es aclarar la confusión sobre qué modelos son compatibles con ESPHome, qué características y colores están soportados y, tal vez, darte algunas ideas para casos de uso.

Compatibilidad entre Waveshare y ESPHome

Waveshare produce una amplia gama de pantallas de tinta electrónica, lo que puede resultar abrumador al considerar la compatibilidad con Home Assistant y ESPHome. Esto se complica aún más por las variaciones de los mismos paneles, haciendo que el proceso de averiguar todo sea aún más difícil.

Para remediar esto en cierta medida, he investigado a fondo en los foros y grupos de discusión para identificar qué modelos están oficialmente soportados, parcialmente soportados y no soportados. Además, dado que Waveshare ofrece una placa controladora ESP32 para E-Paper muy conveniente, he señalado qué paneles son directamente compatibles con ella sin necesidad de controladores adicionales o placas de interconexión.

Cuando elijas una pantalla de tinta electrónica, tu primera decisión será la capacidad de color. Más colores generalmente significan tiempos de refresco más lentos. Algunas pantallas ofrecen refresco parcial para mitigar esto, pero es una característica que no siempre funciona de manera confiable y aumenta el tiempo de refresco completo de la pantalla.

La siguiente decisión será el tamaño de la pantalla. Para pantallas pequeñas de tinta electrónica que actúen como paneles de estado de un solo dispositivo en tu hogar inteligente, una pantalla de 1.5-3″ será suficiente. Sin embargo, si planeas mostrar tableros de control completos con múltiples sensores de datos, deberías considerar pantallas que van de 4 a 13.3″.

📣
¿Te interesan estas ofertas? Las publicamos primero en nuestro canal de Telegram10.247 miembros.

Finalmente, tendrás que tener en cuenta el precio de las pantallas E-Paper de Waveshare. Dado que las pantallas de tinta electrónica son bastante costosas, los gastos pueden acumularse rápidamente, especialmente si estás implementando varias unidades grandes con sus placas controladoras asociadas. Naturalmente, esto es algo muy individual y va más allá del alcance de esta guía.

Placas Controladoras ESP32 y ESP8266 de Waveshare

Todas las pantallas E-Paper de Waveshare, con la excepción del modelo de 7.3″ con 7 colores, son compatibles con la Placa Controladora ESP32 de Waveshare. Aunque algunos modelos también funcionan con la versión ESP8266, recomiendo encarecidamente obtener la versión ESP32, ya que es similar en precio pero tiene un rendimiento superior.

Waveshare E-Paper ESP32 Driver Board

Usar estas placas controladoras hace que la instalación sea prácticamente plug-and-play: solo conecta el cable plano de la pantalla a la placa y estará lista para flashear. Cualquier pantalla que elijas usar con las placas controladoras oficiales siempre tendrá la siguiente configuración de pines:

PINESP32ESP8266Descripción
VCC3V3VCCEntrada de alimentación (3.3V)
GNDGNDGNDTierra
DINGPIO14 (P14)GPIO13 (D7)SPI MOSI, entrada de datos
SCKGPIO13 (P13)GPIO14 (D5)SPI CLK, señal de reloj
CSGPIO15 (P15)GPIO15 (D8)Selección de chip, activa baja
DCGPIO27 (P27)GPIO4 (D2)Datos/Comando, bajo para comandos, alto para datos
RSTGPIO26 (P26)GPIO2 (D4)Reinicio, activo bajo
BUSYGPIO25 (P25)GPIO5 (D1)Estado de ocupación (ocupado)

Lo siguiente que necesitas determinar es la configuración correcta de la resistencia de la placa. Ambos modelos tienen un pequeño interruptor que debes cambiar a la posición correcta según el modelo de tu pantalla E-Paper. En ambas placas, esto puede ser A o B, que corresponden a las siguientes pantallas E-Paper de Waveshare:

ModoESP32ESP8266
A – Modo1.54″ E-Paper
1.54″ E-Paper (B)
2.9″ E-Paper
2.9″ E-Paper (B)
4.2″ E-Paper
4.2″ E-Paper (B)
13.3″ E-Paper (K)
1.54″ E-Paper
2.9″ E-Paper
B – Modo2.7″ E-Paper
2.7″ E-Paper (B)
5.83″ E-Paper
7.5″ E-Paper
7.5″ E-Paper (B)
1.54″ E-Paper (B)
2.7″ E-Paper
2.7″ E-Paper (B)
2.9″ E-Paper (B)
4.2″ E-Paper
4.2″ E-Paper (B)
7.5″ E-Paper
7.5″ E-Paper (B)

Empezando con Waveshare y ESPHome

Para comenzar con Waveshare y ESPHome, simplemente conecta el cable plano de la pantalla E-Paper a la placa controladora ESP. En mi ejemplo, estoy utilizando la Placa Controladora ESP32 E-Paper de Waveshare y una Pantalla E-Paper Tri-color de 7.5″ de Waveshare. Además, estoy utilizando el Componente de Pantalla por defecto de ESPHome para este modelo, ya que descubrí que LVGL causa más problemas de los que resuelve y su desarrollo no está aún allí.

Waveshare 7.5″ Tri-color E-Paper Display and ESP32 Driver Board

La placa ESP32 se inicializa como cualquier otra placa ESP en ESPHome, con la configuración básica siendo la misma. La funcionalidad principal implica definir el componente waveshare_epaper y la conexión spi antes de que se pueda renderizar algo en la pantalla. Por ejemplo:

yaml
esphome:
name: waveshare
friendly_name: waveshare
…..
spi:
clk_pin: GPIO13
mosi_pin: GPIO14
display:

  • platform: waveshare_epaper
    id: waveshare
    model: 7.50in-bV3-bwr #Versión 3 de la pantalla E-Paper de 7.5″ (B), soporta renderizado B/W/R.
    cs_pin:
    number: GPIO15
    ignore_strapping_warning: True
    dc_pin: GPIO27
    busy_pin:
    number: GPIO25
    inverted: true
    reset_pin: GPIO26
    lambda: |-

En esta placa, GPIO15 es un pin de arranque. Estos pines son leídos por el chip durante un reinicio para configurar su funcionamiento inicial, como habilitar el modo de arranque (flasheo) o establecer el voltaje de operación. Al agregar ignore_strapping_warning: true, le estoy diciendo a ESPHome que ignore la advertencia.

Además, el pin Busy en los modelos 7.30in-f, 7.50inV2 y V3 de Waveshare debe estar invertido para evitar daños permanentes en la pantalla. ¡No olvides establecer este parámetro, de lo contrario podrías experimentar problemas y causar daños en la pantalla!

Definiendo Colores

El siguiente paso es definir colores en la configuración de ESPHome. Estos deben tener un ID único, que será llamado en la función lambda para renderizar componentes en la pantalla. Puedes definirlos en HEX o RGB. Para mi pantalla tri-color en particular:

yaml
color:

  • id: color_black
    red: 100%
    green: 100%
    blue: 100%
    white: 100%
  • id: color_red
    red: 100%
    green: 0%
    blue: 0%
    white: 0%

Notarás que el color de fondo, que es blanco, no está definido. Esto se debe a que no es necesario definirlo y usarlo, ya que la pantalla llena todo con blanco cuando no se establece un color en la lambda.

Agregando Fuentes

El siguiente paso es agregar algunas fuentes que ESPHome pueda usar para renderizar texto y datos de sensores en la pantalla. ESPHome tiene un Componente de Renderizado de Fuentes muy capaz y versátil, que permite usar múltiples fuentes de una variedad de fuentes. Incluso puedes cargarlas y alojarlas localmente. Por ejemplo:

yaml
font:

  • file:
    type: gfonts
    family: Source Code Pro
    weight: 700
    id: font_roboto
    size: 26
  • file: "gfonts://Roboto"
    id: roboto_20
    size: 20

Agregando Íconos

Si estás buscando crear un tablero de control rico con íconos de diseño de material, la forma más simple es agregar y definir cada ícono manualmente como una imagen. Necesitas definir el tipo, que puede ser binario, escala de grises, rgb o rgb565 y establecer un tamaño de ícono. La desventaja de este enfoque es que no puedes cambiar el color y el tamaño en la lambda, lo que significa que necesitarías agregar el mismo ícono varias veces si pretendes usarlo en un color o dimensión diferentes. Por ejemplo:

yaml
image:

  • file: mdi:alert-outline
    type: binary
    id: alert
    resize: 80×80
    …..