Firmware para displays TFT displays con ESP32

Nuestra misión con este servicio-web es hacer un Firmware para Epaper Firmware con lo cual esta versión para TFT es solo un ejemplo de implementación para que ustedes puedan implementarlo en sus propios programas.
Este ejemplo muestra como hacer estas 3 cosas:

  • Como bajar una imágen JPG desde un URL externo al ESP32
  • Como se lee la imágen en un Buffer que luego se envia al display (based on JPEGDecoder library examples)
  • El uso de un Token de seguridad para que solo este Firmware tenga acceso al recurso (Bearer token)

El Firmware de código abierto esta aquí:

https://github.com/martinberlin/eink-calendar - cale_tft branch





Como compilarlo en tu ESP32 board

Asumimos que tienes familiaridad con la instalación y uso del editor Platformio. La configuración no es complicada. Luego de bajar el repositorio, haz una copia o renombra el fichero:
lib/Config/Config.h.dist a
Config.h

y introduce tus credenciales de WiFi.

Esta es la parte mas importante de la configuración, tienes que indicarle al programa de donde puede bajar la imágen JPG y cual es el token de autorización:
    // Keep in mind this screens need a JPG image response so make sure to select a TFT display in CALE.es
    char screenUrl[] = "http://img.cale.es/jpg/USERNAME/SCREEN_ID";

    // Security setting, leave empty *only* if your screen is public (Not recommended)
    String bearer = "";




Logging de la IP interna del ESP32

Por defecto CALE guarda la IP interna ya que es útil para diferenciarla de las consultas que el mismo sitio hace cuando renderizas tus Screens. Si por alguna razón deseas desabilitar este logging solo tienes que comentar esta linea:
#define ENABLE_INTERNAL_IP_LOG



Selecting the right driver for your display

To select the right Driver for the display you are using, first of all would be great to get familiar with the Bodmer TFT_SPI library and to browse descriptions and examples. I mention that since not all the TFTs need the same pins connected and they are sufficient examples but I cannot cover all configurations since I do not have all the displays to test.
Please check the Bodmer TFT drivers list to select your driver. In the example below I will be using a ILI9341_DRIVER
GPIOs for the TFT SPI interface
For this firmware we did both the display driver and the SPI pins configuration using build_flags so this goes in the platformio.ini file:
    ; DISPLAY_ROTATION: 0 & 2 Portrait. 1 & 3 landscape
build_flags =
  -DUSER_SETUP_LOADED=1
  -DILI9341_DRIVER=1
  -DTFT_WIDTH=240
  -DTFT_HEIGHT=320
  -DTFT_MOSI=23
  -DTFT_SCLK=18
  -DTFT_CS=32
  -DTFT_DC=27
  -DTFT_RST=5
  -DSPI_FREQUENCY=40000000
  -DDISPLAY_ROTATION=1
    
Please keep in mind that USER_SETUP_LOADED tells the Bodmer TFT library to use this configuration and not a file based one.