Sadržaj:
- Korak 1: LCD grafički modul 128x128 RGB TFT ILI 9163C
- Korak 2: Senzor vlage i temperature AM2302 DHT22
- Korak 3: Krug
- Korak 4: Montaža
- Korak 5: Knjižnica
- Korak 6: Kodiranje
- Korak 7: Neke druge zanimljive funkcije
Video: ESP8266 Digitalni termometar s LCD zaslonom: 7 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:37
Danas ću vam pokazati kako koristiti TFT LCD zaslon na ESP8266 NodeMCU za prikaz podataka o temperaturi i vlažnosti za dato okruženje u stvarnom vremenu. Navodim primjer korištenja zaslona s DHT22, a to je mjerač temperature i vlažnosti. U ovom videu konkretno koristim kompaktni zaslon za naš digitalni termometar, koji je grafički i omogućuje nadzor na samom sustavu. Stoga je današnji cilj stoga naučiti rukovanje zaslonom s tekućim kristalima pomoću ESP8266.
Korak 1: LCD grafički modul 128x128 RGB TFT ILI 9163C
Zaslon koji koristimo u ovom projektu je 128x128 piksela. 0, 0 je u gornjem lijevom kutu, a ovaj model ima i funkcije ispisa teksta i grafičkog ispisa, o čemu ćemo kasnije govoriti.
Korak 2: Senzor vlage i temperature AM2302 DHT22
U našem ćemo sastavu koristiti AM2302 DHT22, senzor koji mi se jako sviđa, jer je vrlo precizan.
Korak 3: 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
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: Knjižnica
Budući da ćemo zaslon programirati jezikom Arduino C, potrebna nam je knjižnica DHT22, kao i LCD.
Prvo dodajte sljedeću biblioteku "Knjižnica DHT senzora" za komunikaciju s osjetnikom 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đer, dodajte knjižnicu "TFT_ILI9163C" za komunikaciju s LCD grafičkim modulom.
Pristupite vezi ((((((((https://github.com/sumotoy/TFT_ILI9163C)))))) i preuzmite biblioteku.
Raspakirajte datoteku i zalijepite je u mapu knjižnica Arduino IDE -a.
C: / Programske datoteke (x86) / Arduino / knjižnice
Korak 6: Kodiranje
Prvo dodajmo knjižnice koje će se koristiti u našem kodu.
#include // iskorištavanje za komunikacijski com o módulo LCD#include // korištenje za parametar comunicar com o senzor de umidade e temperature
Definicije
U nastavku ćemo vidjeti varijable koje ćemo koristiti tijekom programa i instancu objekata.
#define DHTPIN D6 // pino que conectaremos o senzoru DHT22#define DHTTYPE DHT22 // DHT22 é o tipo do senzor que utilizaremos (važno za konstruktor) DHT dht (DHTPIN, DHTTYPE); // construtor učiniti objeto que utilizaremos para sebi comunicar com o senzor // definicije boja #define CRNA 0x0000 #define PLAVA 0x001F #define CRVENA 0xF800 #define ZELENA 0x07E0 #define cijan 0x07FF #define magenta 0xF81F #define ŽUTA 0xFFE0 #define BIJELA 0xFFFF # 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); // konstruktor ne koristi que iskorištavanje parametara za komunikacijski com o módulo LCD
Postaviti
U funkciji setup () inicijaliziramo 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 zaslonu.clearScreen (); // limpa a tela, removendo todos os desenhos display.fillScreen (BLACK); // pinta a tela toda de preto display.setTextSize (2); // konfiguracija o tamanho do texto com o tamanho 2 display.setTextColor (ZELENO); // konfiguracija a cor do texto como verde display.setCursor (5, 10); // poziciona o kurzor para começar a escrita a partir do (x, y) display.print ("TEMPERATUR"); // escreve em tela display.setCursor (22, 70); // repoziciona o pokazivaču pokazivača.print ("UMIDADE"); // escreve em tela display.setTextColor (BIJELO); // konfiguracija a cor do texto como branco (a partir 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 zaslonu na određenom mjestu. U svakom intervalu od 5 sekundi, vrijednost se očitava sa senzora i zapisuje na zaslon.
void loop () {int h = dht.readHumidity (); // faz a leitura da umidade do sensor int t = dht.readTemperature (); // faz a leitura da temperature 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 temperature, apagaremos o valor atual para escrever novamente 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); // repoziciona o kurzor para 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"); // coloca o “C” para indicar que é graus Celcius display.setCursor (40, 95); // repoziciona o kurzor para 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
// Okreće sadržaj zaslona (parametri 0, 1, 2 ili 3)
display.setRotation (uint8_t);
// Obrće boje prikaza (čini negativ)
display.invertDisplay (boolean);
// Crta jedan piksel na zaslonu 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 navedenom položaju
display.drawFastHLine (x, y, širina, boja);
// Povlači vodoravnu liniju na navedenom položaju
display.drawRect (x, y, širina, visina, boja);
// Crta krug na navedenom mjestu
display.drawCircle (x, y, radijus, boja);
Preporučeni:
Koristite pametni telefon kao beskontaktni termometar / prijenosni termometar: 8 koraka (sa slikama)
Koristite pametni telefon kao beskontaktni termometar / prijenosni termometar: Mjerenje tjelesne temperature beskontaktnim / beskontaktnim poput termo pištolja. Napravio sam ovaj projekt jer je Thermo Gun sada jako skup, pa moram pronaći alternativu za izradu DIY -a. A svrha je napraviti s niskobudžetnom verzijom.SuppliesMLX90614Ardu
Digitalni RPi LED termometar: 6 koraka (sa slikama)
Digitalni RPi LED termometar: Raspbian OSSaznajte kako sam napravio ovaj digitalni LED termometar s Raspberry Pi Zero W, LED trakom, OLED zaslonom i prilagođenom PCB -om. Automatski se pokreće popis gradova i prikazuje temperatura na OLED -u zaslon i LED diode. Ali
Digitalni termometar DHT11 pomoću ESP8266: 4 koraka
Digitalni termometar DHT11 pomoću ESP8266: U prethodnom članku već sam govorio o DH11 i kako ga prikazati na izlaznim uređajima kao što su 7 segmentni, LCD, serijski monitor i RGB prsten. U ovom članku ću vam pokazati kako pratiti temperaturu i vlagu pomoću preglednika na mobitelu
Infracrveni termometar na bazi Arduina - IR termometar na bazi Arduina: 4 koraka
Infracrveni termometar na bazi Arduina | Infracrveni termometar pomoću Arduina: Bok dečki, u ovim uputama napravit ćemo beskontaktni termometar pomoću arduina. Budući da je ponekad temperatura tekućine/krutine previsoka ili preniska, a onda je teško stupiti u kontakt s njom i pročitati je temperatura u tom prizoru
Acme digitalni termometar W/ DS18B20 Temp sonda & I2C LCD: 5 koraka
Acme digitalni termometar W/ DS18B20 Temp Probe & I2C LCD: ovo je vrlo jednostavan projekt koji ne košta puno i neće oduzeti mnogo vremena. Stavio sam ga u Amazon kutiju jer je bio tamo, ali ovo se moglo montirati u gotovo sve