Page 1 of 1

2.9 inch E-Paper module display Black&White

Posted: 30 Jan 2024 22:19
by Levy
Am avut ocazia sa ma joc cu un display e-paper, de 2.9 inchi alb negru.
Pentru a putea controla acest display am avut nevoie de libraria GxEPD2, unde am si gasit cateva exemple cu care am putut testa displayul.

Pentru a putea folosi acest display, in exemplul folosit in fisierul GxEPD2_display_selection.h la linia 211 trebuie sa scoateti cele doua // fin fata liniei, pentru a activa linia (altfel compilatorul va considera linia un comentariu!).

Eu a trebuit sa editez aceea linie pentru ca am folosit un ESP32 pentru teste si pentru ca nu l-am conectat de ESP32 asa cum este descrisa in linia amintita.
Asa arata linia 211 in cazul meu:

Code: Select all

GxEPD2_BW<GxEPD2_290_T94_V2, GxEPD2_290_T94_V2::HEIGHT> display(GxEPD2_290_T94_V2(/*CS=5*/ SS, /*DC=*/ 19, /*RST=*/ 12, /*BUSY=*/ 4)); // GDEM029T94 128x296, SSD1680, Waveshare 2.9" V2 variant

Daca conectati asa cum este in aceea linie atunci doar activati linia.
Conexiunea mea dintre ESP32 si display a fost urmatoarea:

Code: Select all

BUSY  - EPD_BUSY 4
RES  - EPD_RST 12
DC  - EPD_DC 19
CS  - EPD_CS 5
SCL  - EPD_SCK 18
SDA  - EPD_MOSI 23


Ce este interesant de retinut la aceste displayuri.
Au o rata de improspatare foarte mica. Ecranul intreg poate dura pana la 3 secunde la varianta alb/negru si pana la 19 secunde la varianta alb/negru/rosu.
Un alt aspect interesant este ca pe display se pastreaza imaginea afisata chiar si dupa ce lasam displayul fara tensiune.
Chiar si eu l-am primit cu o imagine (a vanzatorului) afisata pe display chiar cand l-am scos din cutie.

Image

Displayul vine insotit cu pini

Image

pentru a putea fi cositoriti de modul



si cu un cablu prevazut cu un conector cu ajutorul caruia putem sa ne conectam de display fara a avea nevoie de lipituri.

Image

Displayul a venit intr-o cutie de plastic

Image

care protejeaza bine displayul de eventualele probleme ce ar putea aparea in timpul transportului.

Modulul l-am cumparat de aici.

Am facut un scurt video cu felul in care ruleaza exemplul din librarie pe display.


Re: 2.9 inch E-Paper module display Black&White

Posted: 31 Jan 2024 23:31
by Levy
Am gasit un proiect care este relativ usor de reprodus cu acest display si cu un ESP32.
ESP32-e-Paper-Weather-Display
Ca sa nu va incurcati prin cod ar fi ideal sa faceti legaturile asa cum le-a facut si autorul.
Pentru a afisa in limba Romana am adaugat fisierul lang_ro.h care arata asa:

Code: Select all

#define FONT(x) x##_tf

//Temperature - Humidity - Forecast
const String TXT_FORECAST_VALUES  = "Valori de prognoza pe 3 zile";
const String TXT_CONDITIONS       = "Conditii";
const String TXT_DAYS             = "(Zile)";
const String TXT_TEMPERATURES     = "Temperatura";
const String TXT_TEMPERATURE_C    = "Temperatura (*C)";
const String TXT_TEMPERATURE_F    = "Temperatura (*F)";
const String TXT_HUMIDITY_PERCENT = "Umiditate (%)";

// Pressure
const String TXT_PRESSURE         = "Presiune";
const String TXT_PRESSURE_HPA     = "Presiune (hPa)";
const String TXT_PRESSURE_IN      = "Presiune (in)";
const String TXT_PRESSURE_STEADY  = "Stabil";
const String TXT_PRESSURE_RISING  = "In crestere";
const String TXT_PRESSURE_FALLING = "In cadere";

//RainFall / SnowFall
const String TXT_RAINFALL_MM = "Precipitatii (mm)";
const String TXT_RAINFALL_IN = "Precipitatii (in)";
const String TXT_SNOWFALL_MM = "Zapada (mm)";
const String TXT_SNOWFALL_IN = "Zapada (in)";
const String TXT_PRECIPITATION_SOON = "Prec.";


//Sun
const String TXT_SUNRISE  = "Rasarit";
const String TXT_SUNSET   = "Apus";

//Moon
const String TXT_MOON_NEW             = "Nou";
const String TXT_MOON_WAXING_CRESCENT = "Semiluna in crestere";
const String TXT_MOON_FIRST_QUARTER   = "Primul patrar";
const String TXT_MOON_WAXING_GIBBOUS  = "Semiluna";
const String TXT_MOON_FULL            = "Luna plina";
const String TXT_MOON_WANING_GIBBOUS  = "Luna in scadere";
const String TXT_MOON_THIRD_QUARTER   = "Al treilea patrar";
const String TXT_MOON_WANING_CRESCENT = "Semiluna în scadere";

//Power / WiFi
const String TXT_POWER  = "Putere";
const String TXT_WIFI   = "WiFi";
const char* TXT_UPDATED = "Actualizat:";


//Wind
const String TXT_WIND_SPEED_DIRECTION = "Viteza/Directia vantului";
const String TXT_N   = "N";
const String TXT_NNE = "NNE";
const String TXT_NE  = "NE";
const String TXT_ENE = "ENE";
const String TXT_E   = "E";
const String TXT_ESE = "ESE";
const String TXT_SE  = "SE";
const String TXT_SSE = "SSE";
const String TXT_S   = "S";
const String TXT_SSW = "SSW";
const String TXT_SW  = "SW";
const String TXT_WSW = "WSW";
const String TXT_W   = "W";
const String TXT_WNW = "WNW";
const String TXT_NW  = "NW";
const String TXT_NNW = "NNW";

//Day of the week
const char* weekday_D[] = { "Dum", "Lun", "Mar", "Mie", "Joi", "Vin", "Sam" };

//Month
const char* month_M[] = { "Ian", "Feb", "Mar", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Oct", "Noi", "Dec" };

Nu cred ca am tradus bine partea cu fazele lunii, dar oricum era doar o varianta de teste pentru a vedea daca afiseaza in limba romana daca acesta este adaugata.
Partea proasta este ca de pe Openweathermap.com datele vin cu diacritice iar acest font nu poate afisa diacriticele.

Atasez o imagine cu rezultatul
Image

Daca ma uit prin consola seriala de fapt afiseaza: "nori împrăștiați" pe display este afisat ce vedeti in imaginea de mai sus! :haha: :haha:

Re: 2.9 inch E-Paper module display Black&White

Posted: 13 Feb 2024 17:57
by Levy
Am facut un scurt video despre felul in care se face proiectul cu statia meteo cu acest display.