Sadržaj:

ESP8266 Digitalni termometar sa LCD ekranom: 7 koraka
ESP8266 Digitalni termometar sa LCD ekranom: 7 koraka

Video: ESP8266 Digitalni termometar sa LCD ekranom: 7 koraka

Video: ESP8266 Digitalni termometar sa LCD ekranom: 7 koraka
Video: Using Digispark Attiny85 Mini Arduino boards: Lesson 108 2024, Juli
Anonim
Image
Image
LCD grafički modul 128x128 RGB TFT ILI 9163C
LCD grafički modul 128x128 RGB TFT ILI 9163C

Danas ću vam pokazati kako koristiti TFT LCD ekran na ESP8266 NodeMCU za prikaz podataka o temperaturi i vlažnosti za dato okruženje u stvarnom vremenu. Naveo sam primjer korištenja zaslona s DHT22, a to je mjerač temperature i vlažnosti. U ovom videu, konkretno, koristim kompaktni ekran za naš digitalni termometar, koji je grafički i omogućava nadzor na samom sistemu. Stoga je današnji cilj, dakle, naučiti rukovanje zaslonom s tekućim kristalima pomoću ESP8266.

Korak 1: LCD grafički modul 128x128 RGB TFT ILI 9163C

Ekran koji koristimo u ovom projektu je 128x128 piksela. 0, 0 se nalazi u gornjem lijevom kutu, a ovaj model ima funkcije štampanja teksta i grafike, o čemu ćemo kasnije govoriti.

Korak 2: Senzor vlage i temperature AM2302 DHT22

Senzor vlage i temperature AM2302 DHT22
Senzor vlage i temperature AM2302 DHT22

U našem sastavljanju koristit ćemo AM2302 DHT22, koji je senzor koji mi se jako sviđa, jer je vrlo precizan.

Korak 3: Krug

Krug
Krug

U projektu imamo ESP8266 koji je već programiran i koristi USB napajanje. DHT22 je spojen na Data, a pull-up otpornik na ESP8266, koji kontrolira LCD zaslon.

Korak 4: Montaža

Montaža
Montaža

Ovdje imamo električni dijagram našeg sklopa koji prikazuje NodeMCU, senzor i zaslon. Upamtite da je ovo serijski zaslon, i2c, koji je lakši za upotrebu jer ima više pinova.

Korak 5: Biblioteka

Biblioteka
Biblioteka
Biblioteka
Biblioteka

Budući da ćemo zaslon programirati na jeziku Arduino C, potrebna nam je biblioteka DHT22, kao i LCD.

Prvo dodajte sljedeću biblioteku "DHT sensor library" za komunikaciju sa senzorom vlažnosti i temperature.

Jednostavno pristupite "Sketch >> Include Libraries >> Manage Libraries …"

Sada dodajte sljedeću biblioteku, "Adafruit-GFX-Library-master".

Jednostavno pristupite "Sketch >> Include Libraries >> Manage Libraries …"

Takođe, dodajte biblioteku "TFT_ILI9163C" za komunikaciju sa LCD grafičkim modulom.

Pristupite vezi ((((((((https://github.com/sumotoy/TFT_ILI9163C)))))) i preuzmite biblioteku.

Raspakirajte datoteku i zalijepite je u mapu biblioteke Arduino IDE -a.

C: / Programske datoteke (x86) / Arduino / biblioteke

Korak 6: Kodiranje

Prvo dodajmo biblioteke koje će se koristiti u našem kodu.

#include // iskorištavanje parametra komunikacionog komodiranog LCD ekrana#include // iskorištavanje para komunikacionog kom senzora za umidadu i temperaturu

Definicije

U nastavku ćemo vidjeti varijable koje ćemo koristiti tokom programa i instancu objekata.

#define DHTPIN D6 // pino que conectaremos o senzoru DHT22#define DHTTYPE DHT22 // DHT22 je o tipo do senzora koji se koristi (važno za konstruktor) DHT dht (DHTPIN, DHTTYPE); // konstruktor ne koristi kako bi se upotrijebio komunikacijski senzor // Definicije boja #define CRNO 0x0000 #define PLAVO 0x001F #define CRVENO 0xF800 #define ZELENO 0x07E0 #define CYAN 0x07FF #define MAGENTA 0xF81FFEFdef #defineFEFEFExDexFineFdeF #defineFEFEFEFE #defineFEFEFEFExFEFE #defineFEFEFEFdeFEFE #defineFEFEFExFEFE #Define 0FEFEFEFEFEFEFEFE #DEFineFEFEFEFEFEFE #DEFineFDEFEFEFE #DEFEFEFEFEFE #DEFEFEFEFEFEFEFEFEE #def definirati _CS D1 // pino que konektare o CS -u za upravljanje LCD #define _DC D4 // pino que konektare za RS za upravljanje LCD TFT_ILI9163C prikaz = TFT_ILI9163C (_ CS, _DC); // konstruktor ne koristi objekte koji se koriste za komunikaciju sa LCD ekranom

Postaviti

U funkciji setup () pokrećemo varijablu "dht", koja je odgovorna za komunikaciju sa senzorom vlažnosti i temperaturom. Također ćemo inicijalizirati varijablu "display" koja se koristi za komunikaciju s LCD modulom.

Također ćemo konfigurirati objekt za početak crtanja na ekranu.

void setup (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, removendo todos os desenhos display.fillScreen (BLACK); // pinta a tela toda de preto display.setTextSize (2); // konfiguracija tamanha za tekstualni com o tamanho 2 display.setTextColor (ZELENO); // konfigurira tekstualnu poruku prema verdi display.setCursor (5, 10); // pozicija kursora za dolaznu poziciju i prikaz do (x, y) display.print ("TEMPERATUR"); // escreve em tela display.setCursor (22, 70); // repozicioniranje kursora display.print ("UMIDADE"); // escreve em tela display.setTextColor (BIJELO); // konfiguracija a cor do texto como branco (a partr de agora) delay (1000); // espera de 1 segundo}

Petlja

U funkciji loop () dohvatit ćemo vlažnost i temperature koje očitava senzor i zapisuju na ekranu na određenoj lokaciji. U svakom intervalu od 5 sekundi, vrijednost se očitava sa senzora i zapisuje na ekran.

void loop () {int h = dht.readHumidity (); // faz a leitura to umidade do senzor int t = dht.readTemperature (); // faz a leitura da temperatura do senzora // kao 2 linhas seguintes utilizendo the método “fillRect”, são para fazer a limpeza to local to end escreveremos a umidade e a temperature, apagaremos or valor atual para escrever newmente atualizado. display.fillRect (5, 32, 120, 20, CRNO); // fillRect (x, y, širina, visina, boja); display.fillRect (5, 92, 120, 20, CRNO); display.setCursor (40, 35); // repozicioniranje kursora za escrever display.print (t); // escreve a temperature em tela display.print ((char) 247); // escreve o símbolo de grau ° através de código display.print ("C"); // koloka o “C” paralelno prikazana Celcius display.setCursor (40, 95); // prikaz kursora za escrever display.print (h); // escreve a umidade em tela display.print ("%"); // escreve o símbolo de "porcentagem" para indicar a umidade delay (5000); }

Korak 7: Neke druge zanimljive funkcije

// Rotira sadržaj ekrana (parametri 0, 1, 2 ili 3)

display.setRotation (uint8_t);

// Mijenja boje prikaza (stvara negativ)

display.invertDisplay (boolean);

// Crta jedan piksel na ekranu u položaju (x, y)

display.drawPixel (x, y, boja);

// Povlači okomitu liniju u položaju

display.drawFastVLine (x, y, širina, boja);

// Povlači okomitu liniju na navedenoj poziciji

display.drawFastHLine (x, y, širina, boja);

// Povlači vodoravnu liniju na navedenoj poziciji

display.drawRect (x, y, širina, visina, boja);

// Crtanje kruga na navedenoj poziciji

display.drawCircle (x, y, poluprečnik, boja);

Preporučuje se: