Epaper WeAct Studio

Posted on dim. 10 novembre 2024 in Projets

mqtt.png

Demo pense-bête pour l'utilisation d'un ecran WeAct-EpaperModule-2.13 avec un ESP32-C3 Super mini (nologo)

Composant

On trouvera le matériel chez aliexpress

Github

Cablage

VCC = 3.3V

Ecran ESP32-C3
BUSY 3
RES 2
D/C 1
CS 7
SCL 4
SDA 6
GND GND
VCC 3.3V

Code

pour programmer l'ESP32 j'ai utilisé Arduino-IDE V2

Il est nécessaire d'installer :

  • les cartes ESP32
  • la bibliothèque GxEPD2
// Melange entre 
// GxEPD2_HelloWorld.ino by Jean-Marc Zingg
// et
// EpaperModuleTest_Arduino_ESP32C3.ino by WeActStudio

#define ENABLE_GxEPD2_GFX 0

#include <GxEPD2_BW.h>
#include <GxEPD2_3C.h>
#include <Fonts/FreeMonoBold9pt7b.h>
#include <Fonts/FreeMonoBoldOblique24pt7b.h>

GxEPD2_3C<GxEPD2_213_Z98c, GxEPD2_213_Z98c::HEIGHT> display(GxEPD2_213_Z98c(/*CS=5*/ SS, /*DC=*/ 1, /*RES=*/ 2, /*BUSY=*/ 3)); // GDEY0213Z98 122x250, SSD1680

void setup()
{
  display.init(115200,true,50,false); // issue de l'exemple WeActStudio

  helloWorld();
  display.hibernate();
}

const char HelloWorld[] = "Hello World!";
const char ToulonuX[] = "ToulonuX";

void helloWorld()
{
  display.setRotation(1);
  int16_t tbx, tby; uint16_t tbw, tbh; uint16_t x, y;
  display.setFullWindow();
  display.firstPage();
  do
  {
    display.fillScreen(GxEPD_WHITE);

    display.setFont(&FreeMonoBold9pt7b);
    display.setTextColor(GxEPD_RED);
    display.getTextBounds(HelloWorld, 0, 0, &tbx, &tby, &tbw, &tbh);
    x = ((display.width() - tbw) / 2) - tbx;
    y = ((display.height() - tbh) / 2) - tby - 20;
    display.setCursor(x, y);
    display.print(HelloWorld);

    display.setFont(&FreeMonoBoldOblique24pt7b);
    display.setTextColor(GxEPD_BLACK);
    display.getTextBounds(ToulonuX, 0, 0, &tbx, &tby, &tbw, &tbh);
    x = ((display.width() - tbw) / 2) - tbx;
    y = ((display.height() - tbh) / 2) - tby + 20;
    display.setCursor(x, y);
    display.print(ToulonuX);
  }
  while (display.nextPage());
}

void loop() {};

vue_mage01.avif