Indholdsfortegnelse:

ESP8266 digitalt termometer med LCD -display: 7 trin
ESP8266 digitalt termometer med LCD -display: 7 trin

Video: ESP8266 digitalt termometer med LCD -display: 7 trin

Video: ESP8266 digitalt termometer med LCD -display: 7 trin
Video: Cara mengukur suhu kompor infrared dengan max6675 K-type Thermocoupler (Subtittled) 2024, November
Anonim
Image
Image
LCD grafisk modul 128x128 RGB TFT ILI 9163C
LCD grafisk modul 128x128 RGB TFT ILI 9163C

I dag vil jeg vise dig, hvordan du bruger et TFT LCD-display på ESP8266 NodeMCU til at vise temperatur- og fugtighedsdata for et givet realtidsmiljø. Jeg laver et eksempel på at bruge displayet med DHT22, som er temperatur- og fugtighedsmåler. I denne video bruger jeg specifikt en kompakt skærm til vores digitale termometer, som er grafisk og muliggør overvågning af selve systemet. Formålet med i dag er derfor at lære om håndteringen af LCD -skærmen ved hjælp af ESP8266.

Trin 1: LCD grafisk modul 128x128 RGB TFT ILI 9163C

Det display, vi bruger i dette projekt, er 128x128 pixels. 0, 0 er i øverste venstre hjørne, og denne model har både tekstudskrivning og grafisk udskrivningsfunktioner, som vi vil behandle senere.

Trin 2: Fugtigheds- og temperatursensor AM2302 DHT22

Fugtigheds- og temperatursensor AM2302 DHT22
Fugtigheds- og temperatursensor AM2302 DHT22

Vi vil bruge AM2302 DHT22 i vores samling, som er en sensor, som jeg virkelig kan lide, da den er meget præcis.

Trin 3: Kredsløb

Kredsløb
Kredsløb

I projektet har vi en ESP8266, der allerede er programmeret og bruger USB -strøm. DHT22 er forbundet til dataene og pull-up-modstanden til ESP8266, som styrer LCD-displayet.

Trin 4: Montering

montage
montage

Her har vi det elektriske diagram over vores samling, som viser NodeMCU, sensoren og displayet. Husk, at dette er en seriel skærm, i2c, som er lettere at bruge, fordi den har flere pins.

Trin 5: Bibliotek

Bibliotek
Bibliotek
Bibliotek
Bibliotek

Da vi skal programmere displayet med Arduino C -sprog, har vi brug for DHT22 -biblioteket samt LCD.

Tilføj først følgende "DHT -sensorbibliotek" -bibliotek til kommunikation med fugtigheds- og temperatursensoren.

Du skal blot få adgang til "Skitse >> Inkluder biblioteker >> Administrer biblioteker …"

Tilføj nu følgende bibliotek, "Adafruit-GFX-Library-master."

Du skal blot få adgang til "Skitse >> Inkluder biblioteker >> Administrer biblioteker …"

Tilføj også biblioteket "TFT_ILI9163C" til kommunikation med LCD -grafikmodulet.

Få adgang til linket (((((((https://github.com/sumotoy/TFT_ILI9163C)))) og download biblioteket.

Pak filen ud, og indsæt den i biblioteksmappen i Arduino IDE.

C: / Programfiler (x86) / Arduino / biblioteker

Trin 6: Kode

Lad os først tilføje de biblioteker, der skal bruges i vores kode.

#inkludere // brug for en komunikar eller en LCD -skærm#inkludere // brug for en komunikar for en temperatur og temperatur

Definitioner

Vi vil nedenfor se de variabler, vi vil bruge under programmet, og forekomsten af objekterne.

#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); // Construtor do objeto que utilizaremos para se comunicar com o sensor // Farvedefinitioner #define BLACK 0x0000 #define BLUE 0x001F #define RED 0xF800 #define GREEN 0x07E0 #define CYAN 0x07FF #define MAGENTA 0xF81Fin #0fine0def #0fine definere _CS D1 // pino que conectaremos o CS til módulo LCD #define _DC D4 // pino que conectaremos o RS do módulo LCD TFT_ILI9163C display = TFT_ILI9163C (_ CS, _DC); // konstruktør, der kan bruges til at kommunikere med en LCD -skærm

Opsætning

I setup () -funktionen initialiserer vi variablen "dht", som er ansvarlig for kommunikationen med fugtighedsføleren og temperaturen. Vi vil også initialisere "display" -variablen, der bruges til at kommunikere med LCD -modulet.

Vi konfigurerer også objektet til at begynde at tegne på skærmen.

void setup (void) {dht.begin (); // inicialização para se comunicar com o sensor display.begin (); // inicialização para se comunicar com o módulo LCD display.clearScreen (); // limpa a tela, removeendo todos os desenhos display.fillScreen (SORT); // pinta a tela toda de preto display.setTextSize (2); // konfiguration o tamanho do texto com o tamanho 2 display.setTextColor (GREEN); // konfiguration 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 cursor display.print ("UMIDADE"); // escreve em tela display.setTextColor (WHITE); // konfiguration a cor do texto como branco (a partir de agora) forsinkelse (1000); // espera de 1 segundo}

Sløjfe

I loop () -funktionen vil vi hente den fugtighed og temperaturer, der læses af sensoren og skrives på skærmen på det specifikke sted. Ved hvert interval på 5 sekunder læses værdien fra sensoren og skrives på skærmen.

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, SORT); // fillRect (x, y, bredde, højde, farve); display.fillRect (5, 92, 120, 20, SORT); display.setCursor (40, 35); // reposiciona o cursor para escrever display.print (t); // registrere en temperatur på displayet. 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); // registrere en umidade em tela display.print ("%"); // escreve o símbolo de “porcentagem” para indicar a umidade delay (5000); }

Trin 7: Nogle andre interessante funktioner

// Roterer skærmens indhold (parametre 0, 1, 2 eller 3)

display.setRotation (uint8_t);

// Vender displayfarver (gør en negativ)

display.invertDisplay (boolsk);

// Tegner en enkelt pixel på skærmen ved position (x, y)

display.drawPixel (x, y, farve);

// Tegner en lodret linje på plads

display.drawFastVLine (x, y, bredde, farve);

// Tegner en lodret linje på den angivne position

display.drawFastHLine (x, y, bredde, farve);

// Tegner en vandret linje på den angivne position

display.drawRect (x, y, bredde, høj, farve);

// Tegner en cirkel på den angivne position

display.drawCircle (x, y, radius, farve);

Anbefalede: