Sisukord:

ESP8266 LCD -ekraaniga digitaalne termomeeter: 7 sammu
ESP8266 LCD -ekraaniga digitaalne termomeeter: 7 sammu

Video: ESP8266 LCD -ekraaniga digitaalne termomeeter: 7 sammu

Video: ESP8266 LCD -ekraaniga digitaalne termomeeter: 7 sammu
Video: Подключаем LCD к ESP8266. Терморегулятор - Часть 2 2024, November
Anonim
Image
Image
LCD graafikamoodul 128x128 RGB TFT ILI 9163C
LCD graafikamoodul 128x128 RGB TFT ILI 9163C

Täna näitan teile, kuidas kasutada EST8266 NodeMCU TFT LCD-ekraani temperatuuri ja niiskuse andmete kuvamiseks antud reaalajas keskkonnas. Toon näite ekraani kasutamisest koos DHT22 -ga, mis on temperatuuri ja niiskuse mõõtur. Selles videos kasutan konkreetselt meie digitaalse termomeetri jaoks kompaktset ekraani, mis on graafiline ja võimaldab jälgida süsteemi ennast. Seetõttu on tänase päeva eesmärk õppida tundma vedelkristallekraani käsitsemist ESP8266 abil.

Samm: LCD graafikamoodul 128x128 RGB TFT ILI 9163C

Selles projektis kasutatav ekraan on 128x128 pikslit. 0, 0 on vasakus ülanurgas ja sellel mudelil on nii teksti- kui ka graafilise printimise funktsioonid, millega me hiljem tegeleme.

2. samm: niiskus- ja temperatuuriandur AM2302 DHT22

Niiskuse ja temperatuuri andur AM2302 DHT22
Niiskuse ja temperatuuri andur AM2302 DHT22

Kasutame oma koostes AM2302 DHT22, mis on mulle väga meeldiv andur, kuna see on väga täpne.

3. samm: ahel

Vooluring
Vooluring

Projektis on meil ESP8266, mis on juba programmeeritud ja kasutab USB -toiteallikat. DHT22 on ühendatud andmetega ja tõmbetakistus ESP8266-ga, mis juhib LCD-ekraani.

4. samm: kokkupanek

Kokkupanek
Kokkupanek

Siin on meie koostamise elektriskeem, mis näitab NodeMCU -d, andurit ja ekraani. Pidage meeles, et see on jadakuva i2c, mida on lihtsam kasutada, kuna sellel on rohkem tihvte.

Samm: raamatukogu

Raamatukogu
Raamatukogu
Raamatukogu
Raamatukogu

Kuna me kavatseme ekraani programmeerida Arduino C keelega, vajame DHT22 raamatukogu ja LCD -d.

Kõigepealt lisage niiskus- ja temperatuurianduriga suhtlemiseks järgmine teek "DHT -andmekogu".

Avage lihtsalt jaotis "Visand >> Kaasa raamatukogud >> Raamatukogude haldamine …"

Nüüd lisage järgmine raamatukogu "Adafruit-GFX-Library-master".

Avage lihtsalt jaotis "Visand >> Kaasa raamatukogud >> Raamatukogude haldamine …"

Lisage LCD -graafikamooduliga suhtlemiseks ka teek "TFT_ILI9163C".

Avage link ((((((((https://github.com/sumotoy/TFT_ILI9163C))))) ja laadige kogu alla.

Pakkige fail lahti ja kleepige see Arduino IDE raamatukogude kausta.

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

6. samm: kood

Kõigepealt lisame teegid, mida meie koodis kasutatakse.

#include // utilizada para se comunicar com o modeulo LCD#include // utilizada para se comunicar com o sensor de deumid and Temperatura

Mõisted

Allpool näeme programmi ajal kasutatavaid muutujaid ja objektide eksemplare.

#define DHTPIN D6 // pino que conectaremos o sensor DHT22#define DHTTYPE DHT22 // DHT22 é o tipo do sensor que utilizaremos (oluline parameeter) DHT dht (DHTPIN, DHTTYPE); // construtor do objeto que utilizaremos para se comunicar com o sensor // Värvimääratlused #define BLACK 0x0000 #define BLUE 0x001F #define RED 0xF800 #define GREEN 0x07E0 #define CYAN 0x07FF #define MAGENTA 0xFF ##define define _CS D1 // pino que conectaremos o CS do modeulo LCD #define _DC D4 // pino que conectaremos o RS do LCD LCD TFT_ILI9163C display = TFT_ILI9163C (_ CS, _DC); // construtor do objeto que utilizaremos para se comunicar com or modeulo LCD

Seadistamine

Funktsioonis setup () lähtestame muutuja "dht", mis vastutab suhtluse eest niiskusanduri ja temperatuuriga. Samuti lähtestame muutuja "display", mida kasutatakse LCD -mooduliga suhtlemiseks.

Samuti seadistame objekti ekraanile joonistama.

tühine seadistus (tühine) {dht.begin (); // inicialização para se comunicar com o sensor display.begin (); // inicialização para se comunicar com või moodulo LCD display.clearScreen (); // limpa a tela, removeendo todos os desenhos display.fillScreen (MUST); // pinta a tela toda de preto display.setTextSize (2); // configura o tamanho do texto com o tamanho 2 display.setTextColor (GREEN); // seadistage korrektne tekstinäidik. displayCursor (5, 10); // positsioon või kursor parameeter ja escrita a partir do (x, y) display.print ("TEMPERATUR"); // escreve em tela display.setCursor (22, 70); // reposiciona või kursori kuva.print ("UMIDADE"); // escreve em tela display.setTextColor (VALGE); // configura a cor do texto como branco (partir de agora) delay (1000); // espera de 1 segundo}

Loop

Funktsiooni loop () abil toome välja niiskuse ja temperatuurid, mida andur loeb ja ekraanile konkreetsesse kohta kirjutab. Iga 5 -sekundilise intervalliga loetakse väärtus andurilt ja kirjutatakse ekraanile.

void loop () {int h = dht.readHumidity (); // faz a leitura da umidade do sensor int t = dht.readTemperature (); // faz a leitura da temperatura 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 temperatura, apagaremos o valor atual para escrever novamente atualizado. display.fillRect (5, 32, 120, 20, MUST); // fillRect (x, y, laius, kõrgus, värv); display.fillRect (5, 92, 120, 20, MUST); display.setCursor (40, 35); // reposiciona või kursori 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 või kursori escrever display.print (h); // escreve umidade em tela display.print ("%"); // escreve o símbolo de “porcentagem”, mis näitab umidade delay (5000); }

Samm: mõned muud huvitavad funktsioonid

// Pöörab ekraani sisu (parameetrid 0, 1, 2 või 3)

display.setRotation (uint8_t);

// Pöörab ekraani värve (muudab negatiivse)

display.invertDisplay (boolean);

// Joonistab ekraanile ühe piksli asukohas (x, y)

display.drawPixel (x, y, värv);

// Joonistab asendisse vertikaalse joone

display.drawFastVLine (x, y, laius, värv);

// Joonistab määratud asendisse vertikaalse joone

display.drawFastHLine (x, y, laius, värv);

// Joonistab määratud asendisse horisontaaljoone

display.drawRect (x, y, laius, kõrgus, värv);

// Joonistab määratud asukohta ringi

display.drawCircle (x, y, raadius, värv);

Soovitan: