Obsah:

Digitálny teplomer ESP8266 s LCD displejom: 7 krokov
Digitálny teplomer ESP8266 s LCD displejom: 7 krokov

Video: Digitálny teplomer ESP8266 s LCD displejom: 7 krokov

Video: Digitálny teplomer ESP8266 s LCD displejom: 7 krokov
Video: Текстовые LCD дисплей на контроллере HD44780, Уроки Arduino 2024, November
Anonim
Image
Image
LCD grafický modul 128x128 RGB TFT ILI 9163C
LCD grafický modul 128x128 RGB TFT ILI 9163C

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

Senzor vlhkosti a teploty AM2302 DHT22
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

Obvod
Obvod

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

zhromaždenie
zhromaždenie

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

Knižnica
Knižnica
Knižnica
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);

Odporúča: