Tartalomjegyzék:

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

Videó: ESP8266 Digitális hőmérő LCD kijelzővel: 7 lépés

Videó: ESP8266 Digitális hőmérő LCD kijelzővel: 7 lépés
Videó: #11 - Az LCD kijelző 2024, November
Anonim
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: