Waveshare e-Paper Driver HAT je výstupní modul pro Arduino či Raspberry Pi. Tento modul nám umožňuje připojit různé druhy ePaper displejů a ovládat je skrze SPI rozhraní, které je vyvedeno na modulu. Použití s Raspberry Pi je pak ještě jednodušší díky připravenému 40pin GPIO konektoru, který Raspberry Pi desky používají. Modul se skládá ze dvou částí, adaptér a prodlužovací deska. Všechny flex konektory pro připojení displeje jsou oboustranné, takže je možné zapojit jak displeje od firmy Waveshare, tak i spoustu dalších. Některé displeje na trhu mají totiž zrcadlově otočené piny na flex kabelu. Pro napájení modulu e-Paper Driver HAT se doporučuje použít napětí 3,3 Voltu, případně jinak podle použitého displeje. Pro větší kompatibilitu s displeji je také dvěma přepínači možné ovlivnit velikost odporu pro RESET (přepínač A/B) či typ SPI komunikace (přepínač 1/0).
Pro úspěšné propojení e-Paper Driveru a ESP32 propojíme všech 8 vodičů z adaptéru. Přípojíme BUSY na IO4, RST na IO16, DC na IO17, CS na IO5, CLK na IO18, DIN na IO23, GND na GND a VCC na 3V3. Pro ovládací piny BUSY, RST, DC a CS lze použít také jiné volné piny. Změnu je ale nutné provést také na začátku programu. Piny CLK a DIN jsou připojeny na HW SPI rozhraní (CLK=SCK, DIN=MOSI).
Pro úspěšné nahrání uvedeného ukázkového programu je nutné stáhnout knihovnu GxEPD2. Můžete ji stáhnout a naimportovat jako tento ZIP archiv nebo použít Správce knihoven v Arduino IDE.
Ukázkový kód obsahuje na svém začátku připojení potřebné knihovny a použitého fontu pro výpis textu. V uvedeném ukázkovém programu z knihovny pak můžete najít všechny podporované typy displejů v jejich dvou nebo tříbarevných variantách. Jako další najdeme v programu nastavení čísel propojovacích pinů a vytvoření objektu displeje z knihovny, kdy já jsem testoval modul s displejem 4,2“, tři barvy. Ve funkci setup provedeme inicializaci displeje, přičemž v závorce uvedené číslo udává rychlost komunikace po Sériové lince, kam se budou vypisovat ladící informace. V dalším kroku provedeme výpis dat pomocí připravené funkce a v posledním kroku přepneme displej do stavu hibernace. Smyčka loop v tomto programu neprovádí žádné příkazy. Funkce vypisDataEpaper obsahuje základní práci s textem. První příkaz může nastavit otáčení displeje o 90, 180 či 270 stupňů. Další příkaz nastaví vybraný font. Dále nastavíme barvu pro tištěný text a zapneme inicializaci přepisu displeje. Samotný výpis se pak děje v do-while cyklu, kde nejprve vyplníme displej bílou barvou, dále na dvě různá místa nastavíme kurzor a vytiskneme nastavený text. Pro druhý text pak ještě můžeme vyzkoušet červenou barvu.
// Waveshare e-Paper Driver HAT
// navody.dratek.cz
// Program vychází z příkladu
// GxEPD2_HelloWorld.ino dodaného s knihovnou
// připojení potřebné knihovny ve variantě pro tříbarevný displej
// níže je zakomentované připojení černobílé varianty displejů
#include <GxEPD2_3C.h>
//#include <GxEPD2_BW.h>
// připojení fontu pro výpis textu
#include <Fonts/FreeMonoBold9pt7b.h>
// nastavení propojovacích pinů
#define BUSY 4
#define RST 16
#define DC 17
#define CS 5
// CLK = IO18, DIN = IO23
// vytvoření objektu displeje z knihovny,
// všechny podporované displeje najdete v původním příkladu z knihovny
GxEPD2_3C<GxEPD2_420c, GxEPD2_420c::HEIGHT> display(GxEPD2_420c(CS, DC, RST, BUSY));
void setup() {
// inicializace displeje, číslo v závorce udává rychlost,
// jakou se budou vypisovat ladící údaje na sériovou linku
display.init(115200);
// funkce pro vypsání dat na displej
vypisDataEpaper();
// přepnutí displeje do stavu hibernace
display.hibernate();
}
void vypisDataEpaper() {
// možné nastavení otočení displeje,
// zadává se jako 1, 2, 3 (90, 180, 270 stupňů)
display.setRotation(0);
// nastavení použitého fontu
display.setFont(&FreeMonoBold9pt7b);
// nastavení barvy textu
display.setTextColor(GxEPD_BLACK);
// inicializace přepisu displeje
display.setFullWindow();
// následující do-while cyklus obstará výpis vybraného textu
display.firstPage();
do {
// vyplnění displeje bílou barvou
display.fillScreen(GxEPD_WHITE);
// nastavení kurzoru (x, y), při výpisu textu
// označuje kurzor pozici řádku, levý-dolní pixel písmen
display.setCursor(100, 100);
// výpis textu
display.print("Test ePaper s ESP32");
// přepnutí textu na červenou barvu
display.setTextColor(GxEPD_RED);
// nastavení kurzoru
display.setCursor(75, 200);
// výpis textu
display.print("navody.dratek.cz");
}
while (display.nextPage());
}
void loop() {
// zde se už nic neděje :)
};
Po nahrání uvedeného ukázkového kódu do ESP32 desky s připojeným e-Paper Driver modulem a e-Paper displejem dostaneme například tento výsledek:
Waveshare e-Paper Driver HAT je šikovný modul, který nám zjednodušuje zapojení různých e-Paper displejů jak od firmy Waveshare, tak i dalších. Jeho výhodou je taktéž dodávaný prodlužovací adaptér, který nám prodlouží propojení až na 20 cm mezi modulem a displejem. Díky tomu se může hodit do projektů jako je domácí meteostanice, elektronický kalendář a další zařízení, které nepotřebují častý přepis dat. Ten totiž může podle počtu použitých barev a velikosti displeje zabrat i nižší desítky sekund. Ohromnou výhodou ale zůstává téměř nulová klidová spotřeba, protože technologie eInk obecně spotřebovává elektrickou energii pouze při přepisování obsahu. Pozn.: Pro tento příklad jsem použil ESP32, protože má o mnoho větší paměť oproti Arduino UNO deskám. Na těch je možné zobrazit jednoduchý text, ale velice rychle se může stát, že v průběhu dojde paměť a poté displej přestane korektně vypisovat data. Vedle ESP32 je pak možné provozovat displej i na dalších platformách jako STM Nucleo, ESP8266, ESP32-S2 či již zmíněné Raspberry Pi.
Motorizovaný kulový ventil. Má široké uplatnění v různých průmyslových a obytných instalacích. Může být integrován do automatických systémů řízení, kde je možné ovládat průtok dálkově nebo automatizovaně podle předem nastavených podmínek.
Motorizované kulové vently s obvodem CR01, CR02, CR03 nebo CR04 je poměrně jednoduché po elektrické stránce správně zapojit. U ventilu s obvodem CR05 je tomu ale trochu jinak - ventil si sám nehlídá krajní polohy otevření, nebo zavření. Z toho důvodu vznikl tento článek, ukazující některé výhody, použití a především správné zapojení ventilu s obvodem CR05.