ESP8266 Digitális hőmérő LCD kijelzővel: 7 lépés
ESP8266 Digitális hőmérő LCD kijelzővel: 7 lépés
Image
Image
LCD grafikus modul 128x128 RGB TFT ILI 9163C
LCD grafikus modul 128x128 RGB TFT ILI 9163C

Ma megmutatom, hogyan használhat TFT LCD kijelzőt az ESP8266 NodeMCU készüléken a hőmérséklet és páratartalom adatainak megjelenítéséhez egy adott valós idejű környezetben. Példát hozok a kijelző DHT22 -vel való használatára, amely a hőmérséklet- és páratartalommérő. Ebben a videóban kifejezetten kompakt kijelzőt használok digitális hőmérőnkhöz, amely grafikus és lehetővé teszi a rendszer megfigyelését. A mai cél tehát az, hogy megismerjük a folyadékkristályos kijelző kezelését az ESP8266 segítségével.

1. lépés: LCD grafikus modul 128x128 RGB TFT ILI 9163C

Az ebben a projektben használt kijelző 128x128 pixel. A 0, 0 a bal felső sarokban található, és ez a modell szövegnyomtatási és grafikus nyomtatási funkciókkal is rendelkezik, amelyekkel később foglalkozunk.

2. lépés: Páratartalom és hőmérséklet érzékelő AM2302 DHT22

Páratartalom és hőmérséklet érzékelő AM2302 DHT22
Páratartalom és hőmérséklet érzékelő AM2302 DHT22

Összeszerelésünkben az AM2302 DHT22 -t fogjuk használni, ez az érzékelő nagyon tetszik, mivel nagyon pontos.

3. lépés: Áramkör

Áramkör
Áramkör

A projektben van egy ESP8266, amely már be van programozva és használja az USB tápellátást. A DHT22 az adatokhoz, a felhúzó ellenállás pedig az LCD kijelzőt vezérlő ESP8266-hoz van csatlakoztatva.

4. lépés: Összeszerelés

Összeszerelés
Összeszerelés

Itt van a szerelvény elektromos diagramja, amely a NodeMCU -t, az érzékelőt és a kijelzőt mutatja. Ne feledje, hogy ez egy soros kijelző, az i2c, amely könnyebben használható, mert több tűvel rendelkezik.

5. lépés: Könyvtár

Könyvtár
Könyvtár
Könyvtár
Könyvtár

Mivel a kijelzőt Arduino C nyelvre programozzuk, szükségünk van a DHT22 könyvtárra, valamint az LCD -re.

Először adja hozzá a következő "DHT szenzortár" könyvtárat a páratartalom- és hőmérséklet -érzékelővel való kommunikációhoz.

Egyszerűen nyissa meg a "Vázlat >> Könyvtárak felvétele >> Könyvtárak kezelése …" lehetőséget.

Most adja hozzá a következő könyvtárat: "Adafruit-GFX-Library-master".

Egyszerűen nyissa meg a "Vázlat >> Könyvtárak felvétele >> Könyvtárak kezelése …" lehetőséget.

Ezenkívül adja hozzá a "TFT_ILI9163C" könyvtárat az LCD grafikus modullal való kommunikációhoz.

Nyissa meg a linket (((((((((https://github.com/sumotoy/TFT_ILI9163C))))) és töltse le a könyvtárat.

Csomagolja ki a fájlt, és illessze be az Arduino IDE könyvtárak mappájába.

C: / Program Files (x86) / Arduino / libraries

6. lépés: Kód

Először is adjuk hozzá a kódunkban használt könyvtárakat.

#include // utilizada para se comunicar com o módulo LCD#include // utilizada para se comunicar com o sensor de umidade and Temperatura

Definíciók

Az alábbiakban a program során használt változókat és az objektumok példányát látjuk.

#define DHTPIN D6 // pino que conectaremos o sensor DHT22#define DHTTYPE DHT22 // DHT22 é o tipo do sensor que utilizaremos (fontos a konstruktorhoz) DHT dht (DHTPIN, DHTTYPE); // construtor do objeto que utilizaremos para se comunicar com o sensor // Színmeghatározások #define BLACK 0x0000 #define BLUE 0x001F #define RED 0xF800 #define GREEN 0x07E0 #define CYAN 0x07FF #define MAGENTA 0xFFY #xfine YX define _CS D1 // pino que conectaremos o CS do módulo LCD #define _DC D4 // pino que conectaremos o RS do módulo LCD TFT_ILI9163C display = TFT_ILI9163C (_ CS, _DC); // construtor do objeto que utilizaremos para se comunicar com o módulo LCD

Beállít

A setup () függvényben inicializáljuk a "dht" változót, amely felelős a páratartalom -érzékelővel és a hőmérséklettel való kommunikációért. Inicializáljuk a "display" változót is, amelyet az LCD -modullal való kommunikációhoz használunk.

Azt is beállítjuk, hogy az objektum elkezdjen rajzolni a képernyőn.

void setup (void) {dht.begin (); // inicialização para se comunicar com o sensor display.begin (); // inicialização para se comunicar com o módulo LCD display.clearScreen (); // limpa a tela, removeendo todos os desenhos display.fillScreen (FEKETE); // pinta a tela toda de preto display.setTextSize (2); // configura o tamanho do texto com o tamanho 2 display.setTextColor (ZÖLD); // configure a cor do texto como verde display.setCursor (5, 10); // posiciona o cursor para começar a escrita a partir do (x, y) display.print ("TEMPERATUR"); // escreve em tela display.setCursor (22, 70); // reposiciona vagy kurzor display.print ("UMIDADE"); // escreve em tela display.setTextColor (FEHÉR); // configura a cor do texto como branco (a partir de agora) delay (1000); // espera de 1 segundo}

Hurok

A loop () függvényben lekérjük a páratartalmat és a hőmérsékletet, amelyet az érzékelő leolvasta és a képernyőre írt az adott helyen. Minden 5 másodperces időközönként az érték leolvasásra kerül az érzékelőből, és megjelenik a képernyőn.

void loop () {int h = dht.readHumidity (); // faz a leitura da umidade do sensor int t = dht.readTemperature (); // faz a leitura da temperatura do sensor // as 2 linhas seguintes utilizando o método “fillRect”, são para fazer a limpeza do local onde escreveremos a umidade e a temperatura, apagaremos o valor atual para escrever novamente atualizado. display.fillRect (5, 32, 120, 20, FEKETE); // fillRect (x, y, szélesség, magasság, szín); display.fillRect (5, 92, 120, 20, FEKETE); display.setCursor (40, 35); // reposiciona vagy kurzor paracrever display.print (t); // escreve a temperatura em tela display.print ((char) 247); // escreve o símbolo de grau ° através de código display.print ("C"); // coloca o “C” para indicar que é graus Celcius display.setCursor (40, 95); // reposiciona vagy kurzor paracrever display.print (h); // egy umidade em tela display létrehozása.print ("%"); // escreve o símbolo de “porcentagem” para indicar a umidade delay (5000); }

7. lépés: Néhány más érdekes funkció

// Elforgatja a képernyő tartalmát (0, 1, 2 vagy 3 paraméter)

display.setRotation (uint8_t);

// Megfordítja a kijelző színeit (negatív)

display.invertDisplay (boolean);

// Egyetlen képpontot rajzol a képernyőre az (x, y) pozícióban

display.drawPixel (x, y, color);

// Függőleges vonalat rajzol a helyzetben

display.drawFastVLine (x, y, szélesség, szín);

// Függőleges vonalat rajzol a megadott helyre

display.drawFastHLine (x, y, szélesség, szín);

// Vízszintes vonalat rajzol a megadott helyre

display.drawRect (x, y, szélesség, magasság, szín);

// Kört rajzol a megadott pozícióban

display.drawCircle (x, y, sugár, szín);

Ajánlott: