Përmbajtje:

ESP8266 Termometër dixhital me ekran LCD: 7 hapa
ESP8266 Termometër dixhital me ekran LCD: 7 hapa

Video: ESP8266 Termometër dixhital me ekran LCD: 7 hapa

Video: ESP8266 Termometër dixhital me ekran LCD: 7 hapa
Video: Using HT16K33 4 digit seven segment display with ESP8266 NodeMCU and D1 Mini 2024, Nëntor
Anonim
Image
Image
Modul grafik LCD 128x128 RGB TFT ILI 9163C
Modul grafik LCD 128x128 RGB TFT ILI 9163C

Sot, unë do t'ju tregoj se si të përdorni një ekran TFT LCD në ESP8266 NodeMCU për të shfaqur të dhënat e temperaturës dhe lagështisë për një mjedis të caktuar në kohë reale. Unë bëj një shembull të përdorimit të ekranit me DHT22, i cili është matësi i temperaturës dhe lagështisë. Në këtë video, veçanërisht, unë përdor një ekran kompakt për termometrin tonë dixhital, i cili është grafik dhe lejon monitorimin në vetë sistemin. Qëllimi i sotëm, pra, është të mësosh në lidhje me trajtimin e ekranit të kristaleve të lëngëta duke përdorur ESP8266.

Hapi 1: Moduli grafik LCD 128x128 RGB TFT ILI 9163C

Ekrani që përdorim në këtë projekt është 128x128 piksele. 0, 0 është në këndin e sipërm të majtë, dhe ky model ka funksione të printimit të tekstit dhe printimit grafik, me të cilët do të merremi më vonë.

Hapi 2: Sensori i lagështisë dhe temperaturës AM2302 DHT22

Sensori i lagështisë dhe temperaturës AM2302 DHT22
Sensori i lagështisë dhe temperaturës AM2302 DHT22

Ne do të përdorim AM2302 DHT22 në asamblenë tonë, i cili është një sensor që më pëlqen shumë, pasi është shumë i saktë.

Hapi 3: Qarku

Qarku
Qarku

Në projekt, ne kemi një ESP8266 që është programuar tashmë dhe përdor fuqinë USB. DHT22 është i lidhur me të dhënat dhe rezistenca tërheqëse me ESP8266, e cila kontrollon ekranin LCD.

Hapi 4: Asambleja

Kuvendi
Kuvendi

Këtu, ne kemi diagramin elektrik të montimit tonë, i cili tregon NodeMCU, sensorin dhe ekranin. Mos harroni se ky është një ekran serik, i2c, i cili është më i lehtë për t'u përdorur sepse ka më shumë kunja.

Hapi 5: Biblioteka

Librari
Librari
Librari
Librari

Meqenëse do të programojmë ekranin me gjuhën Arduino C, ne kemi nevojë për bibliotekën DHT22, si dhe LCD.

Së pari, shtoni bibliotekën e mëposhtme "biblioteka e sensorëve DHT" për komunikim me sensorin e lagështisë dhe temperaturës.

Thjesht hyni në "Skiconi >> Përfshi Bibliotekat >> Menaxhoni Bibliotekat …"

Tani, shtoni bibliotekën e mëposhtme, "Adafruit-GFX-Library-master".

Thjesht hyni në "Skiconi >> Përfshi Bibliotekat >> Menaxhoni Bibliotekat …"

Gjithashtu, shtoni bibliotekën "TFT_ILI9163C" për komunikim me modulin grafik LCD.

Hyni në lidhjen ((((((https://github.com/sumotoy/TFT_ILI9163C)))) dhe shkarkoni bibliotekën.

Zbërtheni skedarin dhe ngjiteni në dosjen e bibliotekave të Arduino IDE.

C: / Skedarët e programit (x86) / Arduino / bibliotekat

Hapi 6: Kodi

Së pari le të shtojmë bibliotekat që do të përdoren në kodin tonë.

#include // useizada para se comunicar com o módulo LCD#include // useizada para se comunicar com o sensor de umidade e temperatura

Përkufizimet

Më poshtë do të shohim variablat që do të përdorim gjatë programit, dhe shembullin e objekteve.

#define DHTPIN D6 // pino que contectaremos o sensor DHT22#define DHTTYPE DHT22 // DHT22 ose për të bërë një sensor për të përdorur (e rëndësishme për ndërtuesin) DHT dht (DHTPIN, DHTTYPE); // construtor bëjë objeto que utilizaremos para se comunicar com o sensor // përkufizimet Color #define BLACK 0x0000 #define BLUE 0x001F #define RED 0xF800 #define GREEN 0x07E0 #define CYAN 0x07FF #define Magenta 0xF81F #define YELLOW 0xFFE0 #define WHITE 0xFFFF # përkufizoni _CS D1 // pino que conectaremos ose CS për një ekran LCD #përcaktoni _DC D4 // pino que conectaremos ose RS për një ekran LCD TFT_ILI9163C = TFT_ILI9163C (_ CS, _DC); // konstruktori do të përdorë për përdorim nga sistemi i komunikimit në ekranin e LCD

Konfigurimi

Në funksionin e konfigurimit (), ne inicializojmë ndryshoren "dht", e cila është përgjegjëse për komunikimin me sensorin e lagështisë dhe temperaturën. Gjithashtu do të inicializojmë ndryshoren "ekran" që përdoret për të komunikuar me modulin LCD.

Ne gjithashtu do të konfigurojmë objektin për të filluar vizatimin në ekran.

void setup (void) {dht.begin (); // inicialização para se të komunikoni me ekranin e sensorit.filloni (); // inicializim për të komunikuar me një ekran LCD.clearScreen (); // limpa a tela, removendo 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 (GREEN); // configura a cor do texto como verde display.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 shfaqja e kursorit.print ("UMIDADE"); // escreve em tela display.setTextColor (E BARDH); // configura a cor do texto como branco (a partir de agora) vonesë (1000); // espera de 1 segundo}

Lak

Në funksionin e lakut (), ne do të marrim lagështinë dhe temperaturat e lexuara nga sensori dhe të shkruara në ekran në vendin e caktuar. Në çdo interval prej 5 sekondash, vlera lexohet nga sensori dhe shkruhet në ekran.

lak void () {int h = dht.readHumidity (); // faz a leitura da umidade do sensor int t = dht.readTemperature (); // faz a leitura da temperatura do sensor // si 2 linja të përdorura për përdorimin e metodës "fillRect", për shembull për fazën e një limpeze për një rritje lokale në temperaturën dhe temperaturën, apagaremos ose vlerave të vërteta për escrever novamente atualizado. display.fillRect (5, 32, 120, 20, ZI); // fillRect (x, y, gjerësia, lartësia, ngjyra); display.fillRect (5, 92, 120, 20, ZI); display.setCursor (40, 35); // reposiciona o kursori për shfaqjen escrever.print (t); // ruani një 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 indikatorit të kësaj graus Celcius display.setCursor (40, 95); // reposiciona ose kursori për shfaqjen escrever.print (h); // ruani një ekran umidade em tela.print ("%"); // ruani simbolin e "porcentagem" për të treguar një vonesë umidade (5000); }

Hapi 7: Disa funksione të tjera interesante

// Rrotullon përmbajtjen e ekranit (parametrat 0, 1, 2 ose 3)

display.setRotation (uint8_t);

// Kthen ngjyrat e ekranit (bën një negativ)

display.invertDisplay (boolean);

// Vizaton një piksel të vetëm në ekran në pozicionin (x, y)

display.drawPixel (x, y, ngjyra);

// Vizaton një vijë vertikale në pozicion

display.drawFastVLine (x, y, gjerësia, ngjyra);

// Vizaton një vijë vertikale në pozicionin e specifikuar

display.drawFastHLine (x, y, gjerësia, ngjyra);

// Vizaton një vijë horizontale në pozicionin e specifikuar

display.drawRect (x, y, gjerësia, lartësia, ngjyra);

// Vizaton një rreth në pozicionin e specifikuar

display.drawCircle (x, y, rrezja, ngjyra);

Recommended: