Innehållsförteckning:

ESP8266 digital termometer med LCD -skärm: 7 steg
ESP8266 digital termometer med LCD -skärm: 7 steg

Video: ESP8266 digital termometer med LCD -skärm: 7 steg

Video: ESP8266 digital termometer med LCD -skärm: 7 steg
Video: Cara mengukur suhu kompor infrared dengan max6675 K-type Thermocoupler (Subtittled) 2024, Juli
Anonim
Image
Image
LCD grafisk modul 128x128 RGB TFT ILI 9163C
LCD grafisk modul 128x128 RGB TFT ILI 9163C

Idag kommer jag att visa dig hur du använder en TFT LCD-skärm på ESP8266 NodeMCU för att visa temperatur- och luftfuktighetsdata för en given realtidsmiljö. Jag gör ett exempel på att använda displayen med DHT22, som är temperatur- och luftfuktighetsmätaren. I den här videon använder jag specifikt en kompakt display för vår digitala termometer, som är grafisk och möjliggör övervakning av själva systemet. Dagens syfte är därför att lära sig om hanteringen av flytande kristallskärmen med hjälp av ESP8266.

Steg 1: LCD -grafikmodul 128x128 RGB TFT ILI 9163C

Displayen vi använder i detta projekt är 128x128 pixlar. 0, 0 finns i det övre vänstra hörnet, och den här modellen har både textutskrift och grafisk utskriftsfunktioner, som vi kommer att ta itu med senare.

Steg 2: Luftfuktighets- och temperatursensor AM2302 DHT22

Luftfuktighets- och temperatursensor AM2302 DHT22
Luftfuktighets- och temperatursensor AM2302 DHT22

Vi kommer att använda AM2302 DHT22 i vår samling, som är en sensor som jag verkligen gillar, eftersom den är mycket exakt.

Steg 3: Krets

Krets
Krets

I projektet har vi en ESP8266 som redan är programmerad och använder USB -ström. DHT22 är ansluten till data och pull-up-motståndet till ESP8266, som styr LCD-displayen.

Steg 4: Montering

hopsättning
hopsättning

Här har vi det elektriska diagrammet över vår enhet, som visar NodeMCU, sensorn och displayen. Kom ihåg att detta är en seriell display, i2c, som är lättare att använda eftersom den har fler stift.

Steg 5: Bibliotek

Bibliotek
Bibliotek
Bibliotek
Bibliotek

Eftersom vi ska programmera displayen med Arduino C -språk, behöver vi DHT22 -biblioteket, liksom LCD -skärmen.

Lägg först till följande "DHT -sensorbibliotek" -bibliotek för kommunikation med fukt- och temperatursensorn.

Gå bara till "Skiss >> Inkludera bibliotek >> Hantera bibliotek …"

Lägg nu till följande bibliotek, "Adafruit-GFX-Library-master."

Gå bara till "Skiss >> Inkludera bibliotek >> Hantera bibliotek …"

Lägg också till "TFT_ILI9163C" -biblioteket för kommunikation med LCD -grafikmodulen.

Gå till länken (((((((https://github.com/sumotoy/TFT_ILI9163C))))) och ladda ner biblioteket.

Packa upp filen och klistra in den i biblioteksmappen i Arduino IDE.

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

Steg 6: Kod

Låt oss först lägga till biblioteken som kommer att användas i vår kod.

#inkludera // nytta för att kommunicera med modulo LCD

Definitioner

Vi kommer att se nedan de variabler som vi kommer att använda under programmet och förekomsten av objekt.

#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 // Färgdefinitioner #define BLACK 0x0000 #define BLUE 0x001F #define RED 0xF800 #define GREEN 0x07E0 #define CYAN 0x07FF #define MAGENTA 0xF81Fine #0fine0def #0fine0def #0fine definiera _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); // Construtor do objeto que utilizaremos para se comunicar com or modulo LCD

Uppstart

I setup () -funktionen initierar vi variabeln "dht", som är ansvarig för kommunikationen med fuktsensorn och temperaturen. Vi kommer också att initialisera "display" -variabeln som används för att kommunicera med LCD -modulen.

Vi kommer också att konfigurera objektet för att börja rita 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 (SVART); // pinta a tela toda de preto display.setTextSize (2); // konfiguration o tamanho gör texto com o tamanho 2 display.setTextColor (GRÖN); // configa 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 markör display.print ("UMIDADE"); // escreve em tela display.setTextColor (WHITE); // configa a cor do texto como branco (a partir de agora) fördröjning (1000); // espera de 1 segundo}

Slinga

I loop () -funktionen kommer vi att hämta fuktigheten och temperaturerna som avläses av sensorn och skrivs på skärmen på den specifika platsen. Vid varje intervall på 5 sekunder läses värdet från sensorn och skrivs 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 display.fillRect (5, 32, 120, 20, SVART); // fillRect (x, y, bredd, höjd, färg); display.fillRect (5, 92, 120, 20, SVART); display.setCursor (40, 35); // reposiciona o markör för escrever display.print (t); // upprätthålla en temperatur på displayen. 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 markör för escrever display.print (h); // visa ett meddelande om tela display.print ("%"); // escreve o símbolo de “porcentagem” para indicar a umidade delay (5000); }

Steg 7: Några andra intressanta funktioner

// Roterar innehållet på skärmen (parametrar 0, 1, 2 eller 3)

display.setRotation (uint8_t);

// Omvänd displayfärger (gör en negativ)

display.invertDisplay (booleskt);

// Ritar en enda pixel på skärmen vid position (x, y)

display.drawPixel (x, y, färg);

// Ritar en vertikal linje på plats

display.drawFastVLine (x, y, bredd, färg);

// Ritar en vertikal linje vid den angivna positionen

display.drawFastHLine (x, y, bredd, färg);

// Ritar en horisontell linje vid den angivna positionen

display.drawRect (x, y, bredd, höjd, färg);

// Ritar en cirkel vid den angivna positionen

display.drawCircle (x, y, radie, färg);

Rekommenderad: