Obsah:

Digitální teploměr ESP8266 s LCD displejem: 7 kroků
Digitální teploměr ESP8266 s LCD displejem: 7 kroků

Video: Digitální teploměr ESP8266 s LCD displejem: 7 kroků

Video: Digitální teploměr ESP8266 s LCD displejem: 7 kroků
Video: Jak připojit i2C LCD modul k Arduino MEGA 2560, Uno 2024, Listopad
Anonim
Image
Image
LCD grafický modul 128x128 RGB TFT ILI 9163C
LCD grafický modul 128x128 RGB TFT ILI 9163C

Dnes vám ukážu, jak pomocí TFT LCD displeje na ESP8266 NodeMCU zobrazovat údaje o teplotě a vlhkosti pro dané prostředí v reálném čase. Ukážu příklad použití displeje s DHT22, což je ukazatel teploty a vlhkosti. V tomto videu konkrétně používám kompaktní displej pro náš digitální teploměr, který je grafický a umožňuje monitorování samotného systému. Cílem dnešní doby je tedy seznámit se s ovládáním displeje z tekutých krystalů pomocí ESP8266.

Krok 1: LCD grafický modul 128x128 RGB TFT ILI 9163C

Displej, který v tomto projektu používáme, má 128 x 128 pixelů. The 0, 0 is in the left left corner, and this model has both text-printing and graphic-printing functions, which will will handle later.

Krok 2: Senzor vlhkosti a teploty AM2302 DHT22

Senzor vlhkosti a teploty AM2302 DHT22
Senzor vlhkosti a teploty AM2302 DHT22

V naší sestavě použijeme AM2302 DHT22, což je senzor, který se mi opravdu líbí, protože je velmi přesný.

Krok 3: Okruh

Obvod
Obvod

V projektu máme ESP8266, který je již naprogramován a používá napájení USB. DHT22 je připojen k Data a pull-up odpor k ESP8266, který ovládá LCD displej.

Krok 4: Sestavení

Shromáždění
Shromáždění

Zde máme elektrické schéma naší sestavy, které ukazuje NodeMCU, senzor a displej. Pamatujte, že se jedná o sériový displej i2c, který je jednodušší na používání, protože má více pinů.

Krok 5: Knihovna

Knihovna
Knihovna
Knihovna
Knihovna

Protože se chystáme programovat displej jazykem Arduino C, potřebujeme knihovnu DHT22 a také LCD.

Nejprve přidejte následující knihovnu „Knihovna snímačů DHT“pro komunikaci se snímačem vlhkosti a teploty.

Jednoduše otevřete "Skica >> Zahrnout knihovny >> Spravovat knihovny …"

Nyní přidejte následující knihovnu „Adafruit-GFX-Library-master“.

Jednoduše otevřete "Skica >> Zahrnout knihovny >> Spravovat knihovny …"

Také přidejte knihovnu "TFT_ILI9163C" pro komunikaci s grafickým modulem LCD.

Otevřete odkaz ((((((((https://github.com/sumotoy/TFT_ILI9163C))))))) a stáhněte si knihovnu.

Rozbalte soubor a vložte jej do složky knihoven Arduino IDE.

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

Krok 6: Kód

Nejprve přidejme knihovny, které budou použity v našem kódu.

#include // využití para se komunikujícím com o modul modulu LCD#include // použití para se comunicar com o sensor de umidade e temperatura

Definice

Níže uvidíme proměnné, které budeme během programu používat, a instanci objektů.

#define DHTPIN D6 // pino que conectaremos o sensor DHT22#define DHTTYPE DHT22 // DHT22 é o tipo do sensor que utilizaremos (importante para o construtor) DHT dht (DHTPIN, DHTTYPE); // konstruktor do objeto que utilizaremos para se comunicar com o sensor // Color definitions #define BLACK 0x0000 #define BLUE 0x001F #define RED 0xF800 #define GREEN 0x07E0 #define CYAN 0x07FF #define MAGENTA 0xF81F #fefe 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); // konstruktor do objeto que utilizaremos para se comunicar com o módulo LCD

Založit

Ve funkci setup () inicializujeme proměnnou „dht“, která je zodpovědná za komunikaci se snímačem vlhkosti a teplotou. Inicializujeme také proměnnou „zobrazení“, která slouží ke komunikaci s modulem LCD.

Objekt také nakonfigurujeme tak, aby začal kreslit na obrazovku.

neplatné nastavení (void) {dht.begin (); // inicialização para se comunicar com o senzor display.begin (); // inicialização para se 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); // konfigurace o tamanho do texto com o tamanho 2 display.setTextColor (ZELENÁ); // konfigurace a text do textového pole se zeleným displejem.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 o cursor display.print ("UMIDADE"); // escreve em tela display.setTextColor (WHITE); // zpoždění konfigurace (1000); // espera de 1 segundo}

Smyčka

Ve funkci loop () získáme vlhkost a teploty načtené snímačem a zapsané na obrazovku v konkrétním místě. V každém intervalu 5 sekund se hodnota načte ze senzoru a zapíše se na obrazovku.

void loop () {int h = dht.readHumidity (); // faz a leitura da umidade do sensor int t = dht.readTemperature (); // čidlo teploty a teploty // // jako 2 různé možnosti využití „fillRect“, které mohou obsahovat místní a místní teploty a teploty, různé barvy a nové paraboly. display.fillRect (5, 32, 120, 20, ČERNÝ); // fillRect (x, y, šířka, výška, barva); display.fillRect (5, 92, 120, 20, ČERNÝ); display.setCursor (40, 35); // reposiciona o cursor 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"); // coloca o “C” para indicar que é graus Celcius display.setCursor (40, 95); // reposiciona o cursor 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: Některé další zajímavé funkce

// Otočí obsah obrazovky (parametry 0, 1, 2 nebo 3)

display.setRotation (uint8_t);

// Obrací barvy zobrazení (dělá záporné)

display.invertDisplay (boolean);

// Nakreslí jeden pixel na obrazovku v poloze (x, y)

display.drawPixel (x, y, color);

// Nakreslí svislou čáru v poloze

display.drawFastVLine (x, y, width, color);

// Nakreslí svislou čáru v zadané poloze

display.drawFastHLine (x, y, width, color);

// Nakreslí vodorovnou čáru v zadané poloze

display.drawRect (x, y, šířka, výška, barva);

// Nakreslí kruh v zadané poloze

display.drawCircle (x, y, poloměr, barva);

Doporučuje: