Obsah:
2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
Dnes vám ukážem, ako používať TFT LCD displej na ESP8266 NodeMCU na zobrazenie údajov o teplote a vlhkosti pre dané prostredie v reálnom čase. Uvádzam príklad použitia displeja s DHT22, čo je ukazovateľ teploty a vlhkosti. V tomto videu konkrétne používam kompaktný displej pre náš digitálny teplomer, ktorý je grafický a umožňuje monitorovanie na samotnom systéme. Cieľom dnešnej doby je teda zoznámiť sa s ovládaním displeja z tekutých kryštálov pomocou ESP8266.
Krok 1: Grafický modul LCD 128 x 128 RGB TFT ILI 9163C
Displej, ktorý v tomto projekte používame, má 128 x 128 pixelov. 0, 0 je v ľavom hornom rohu a tento model má funkcie textovej aj grafickej tlače, ktorými sa budeme zaoberať neskôr.
Krok 2: Senzor vlhkosti a teploty AM2302 DHT22
V našej zostave použijeme AM2302 DHT22, čo je snímač, ktorý sa mi veľmi páči, pretože je veľmi presný.
Krok 3: Okruh
V projekte máme ESP8266, ktorý je už naprogramovaný a používa napájanie USB. DHT22 je pripojený k dátam a výsuvný odpor k ESP8266, ktorý ovláda LCD displej.
Krok 4: Zostavenie
Tu máme elektrický diagram našej zostavy, ktorý ukazuje NodeMCU, senzor a displej. Pamätajte si, že toto je sériový displej i2c, ktorý sa používa jednoduchšie, pretože má viac pinov.
Krok 5: Knižnica
Keďže sa chystáme programovať displej s jazykom Arduino C, potrebujeme knižnicu DHT22, ako aj LCD.
Najprv pridajte nasledujúcu knižnicu „Knižnica snímačov DHT“na komunikáciu so snímačom vlhkosti a teploty.
Jednoducho vstúpte do „Náčrtu >> Zahrnúť knižnice >> Spravovať knižnice …"
Teraz pridajte nasledujúcu knižnicu „Adafruit-GFX-Library-master“.
Jednoducho vstúpte do „Náčrtu >> Zahrnúť knižnice >> Spravovať knižnice …"
Pridajte tiež knižnicu "TFT_ILI9163C" na komunikáciu s grafickým modulom LCD.
Prejdite na odkaz (((((((((https://github.com/sumotoy/TFT_ILI9163C))))))) a stiahnite si knižnicu.
Rozbaľte súbor a vložte ho do priečinka s knižnicami v Arduino IDE.
C: / Programové súbory (x86) / Arduino / knižnice
Krok 6: Kód
Najprv pridáme knižnice, ktoré budú použité v našom kóde.
#include // využitie paraboly comunicar com o modulo LCD#include // využitie para comunicacom com senzor deid deid de temperatura
Definície
Ďalej uvidíme premenné, ktoré budeme používať počas programu, a inštanciu objektov.
#define DHTPIN D6 // pino que conectaremos o sensor DHT22#define DHTTYPE DHT22 // DHT22 é o tipo do sensor que utilizaremos (importante para o o construtor) DHT dht (DHTPIN, DHTTYPE); // konštruktér používa viac ako jeden spoločný snímač alebo snímač // Definície farieb #definovať ČIERNA 0x0000 #definovať MODRÁ 0x001F #definovať ČERVENÁ 0xF800 #definovať ZELENÁ 0x07E0 #definovať KYAN 0x07FF #definovať MAGENTA 0xF81F # definujte _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); // konštrutor do objeto que utilizaremos para se comunicar com o módulo LCD
Nastaviť
Vo funkcii setup () inicializujeme premennú "dht", ktorá je zodpovedná za komunikáciu so snímačom vlhkosti a teplotou. Inicializujeme tiež premennú "zobrazenie", ktorá slúži na komunikáciu s LCD modulom.
Tiež nakonfigurujeme objekt tak, aby začal kresliť na obrazovku.
void setup (void) {dht.begin (); // inicialização para se comunicar com o sensor display.begin (); // inicialização para comunicar com o módulo LCD display.clearScreen (); // limpa a tela, removeendo todos os desenhos display.fillScreen (BLACK); // pinta a tela toda de preto display.setTextSize (2); // configura o tamanho do texto com o tamanho 2 display.setTextColor (ZELENÁ); // konfigurácia a text do zeleného displeja.setCursor (5, 10); // pozícia alebo kurzor parašutistov a konkrétnych parametrov (x, y) display.print ("TEMPERATUR"); // escreve em tela display.setCursor (22, 70); // reposiciona o cursor display.print ("UMIDADE"); // escreve em tela display.setTextColor (WHITE); // konfigurácia a spracovanie textu s oneskorením (časť agora) oneskorenie (1000); // espera de 1 segundo}
Slučka
Vo funkcii loop () získame vlhkosť a teploty načítané snímačom a zapísané na obrazovku v konkrétnom mieste. V každom intervale 5 sekúnd sa zo senzora odčíta hodnota a zapíše sa na obrazovku.
prázdna slučka () {int h = dht.readHumidity (); // faz a leitura da umidade do sensor int t = dht.readTemperature (); // senzor teploty a citlivosti // ako 2 úrovne využívajúce metódu „fillRect“, ktorá obsahuje niekoľko základných teplôt a teplôt, apararemos valor atual para para escrever novamente atualizado. display.fillRect (5, 32, 120, 20, ČIERNY); // fillRect (x, y, šírka, výška, farba); display.fillRect (5, 92, 120, 20, ČIERNY); display.setCursor (40, 35); // umiestnenie kurzora para escrever 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"); // farba o “C” para indikuje que é graus Celcius display.setCursor (40, 95); // umiestnenie kurzora para escrever display.print (h); // escreve a umidade em tela display.print ("%"); // escreve o símbolo de “porcentagem” para indicater a umidade delay (5000); }
Krok 7: Niektoré ďalšie zaujímavé funkcie
// Otočí obsah obrazovky (parametre 0, 1, 2 alebo 3)
display.setRotation (uint8_t);
// obráti farby displeja (urobí negatív)
display.invertDisplay (boolean);
// Nakreslí jeden pixel na obrazovku v polohe (x, y)
display.drawPixel (x, y, color);
// Nakreslí v polohe zvislú čiaru
display.drawFastVLine (x, y, šírka, farba);
// Nakreslí zvislú čiaru na určenom mieste
display.drawFastHLine (x, y, šírka, farba);
// Nakreslí vodorovnú čiaru na určenom mieste
display.drawRect (x, y, šírka, výška, farba);
// Nakreslí kruh na určenom mieste
display.drawCircle (x, y, polomer, farba);