Inhoudsopgave:

ESP8266 digitale thermometer met lcd-scherm - Ajarnpa
ESP8266 digitale thermometer met lcd-scherm - Ajarnpa

Video: ESP8266 digitale thermometer met lcd-scherm - Ajarnpa

Video: ESP8266 digitale thermometer met lcd-scherm - Ajarnpa
Video: ESP8266 DHT11 Sensor and OLED Display | Nodemcu Temperature and Humidity Code | Weather Station 2024, Juli-
Anonim
Image
Image
Grafische LCD-module 128x128 RGB TFT ILI 9163C
Grafische LCD-module 128x128 RGB TFT ILI 9163C

Vandaag laat ik je zien hoe je een TFT LCD-scherm op de ESP8266 NodeMCU gebruikt om temperatuur- en vochtigheidsgegevens weer te geven voor een bepaalde realtime omgeving. Ik maak een voorbeeld van het gebruik van het display met DHT22, de temperatuur- en vochtigheidsmeter. In deze video gebruik ik specifiek een compact display voor onze digitale thermometer, die grafisch is en monitoring op het systeem zelf mogelijk maakt. Het doel van vandaag is daarom om te leren over de bediening van het liquid crystal display met behulp van de ESP8266.

Stap 1: Grafische LCD-module 128x128 RGB TFT ILI 9163C

Het scherm dat we in dit project gebruiken is 128x128 pixels. De 0, 0 bevindt zich in de linkerbovenhoek en dit model heeft zowel tekstafdruk- als grafische afdrukfuncties, die we later zullen behandelen.

Stap 2: Vochtigheids- en temperatuursensor AM2302 DHT22

Vochtigheids- en temperatuursensor AM2302 DHT22
Vochtigheids- en temperatuursensor AM2302 DHT22

We zullen de AM2302 DHT22 in onze montage gebruiken, een sensor die ik erg leuk vind, omdat hij erg nauwkeurig is.

Stap 3: Circuit

Stroomkring
Stroomkring

In het project hebben we een ESP8266 die al is geprogrammeerd en de USB-stroom gebruikt. De DHT22 is verbonden met de data en de pull-up weerstand met de ESP8266, die het LCD-scherm bestuurt.

Stap 4: Montage

samenkomst
samenkomst

Hier hebben we het elektrische schema van onze assemblage, die de NodeMCU, de sensor en het display toont. Onthoud dat dit een serieel display is, i2c, dat gemakkelijker te gebruiken is omdat het meer pinnen heeft.

Stap 5: Bibliotheek

Bibliotheek
Bibliotheek
Bibliotheek
Bibliotheek

Omdat we het display gaan programmeren met Arduino C-taal, hebben we de DHT22-bibliotheek nodig, evenals het LCD-scherm.

Voeg eerst de volgende "DHT-sensorbibliotheek" -bibliotheek toe voor communicatie met de vochtigheids- en temperatuursensor.

Ga gewoon naar "Schets >> Bibliotheken opnemen >> Bibliotheken beheren …"

Voeg nu de volgende bibliotheek toe, "Adafruit-GFX-Library-master."

Ga gewoon naar "Schets >> Bibliotheken opnemen >> Bibliotheken beheren …"

Voeg ook de bibliotheek "TFT_ILI9163C" toe voor communicatie met de grafische LCD-module.

Ga naar de link (((((https://github.com/sumotoy/TFT_ILI9163C))))) en download de bibliotheek.

Pak het bestand uit en plak het in de bibliothekenmap van de Arduino IDE.

C: / Programmabestanden (x86) / Arduino / bibliotheken

Stap 6: Coderen

Laten we eerst de bibliotheken toevoegen die in onze code zullen worden gebruikt.

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

definities

We zullen hieronder de variabelen zien die we tijdens het programma zullen gebruiken, en de instantie van de objecten.

#define DHTPIN D6 // pino que conectaremos o sensor DHT22#define DHTTYPE DHT22 // DHT22 é o tipo do sensor que utilizaremos (belangrijk voor construtor) DHT dht(DHTPIN, DHTTYPE); // construtor do objeto que utilizaremos para se comunicar com o sensor // Kleurdefinities #define BLACK 0x0000 #define BLUE 0x001F #define RED 0xF800 #define GREEN 0x07E0 #define CYAAN 0x07FF #define MAGENTA 0xF81F #define0 YELLOWdefine 0xF definieer _CS D1 // pino que conectaremos of CS met modulaire LCD #define _DC D4 // pino que conectaremos of RS met modulaire LCD TFT_ILI9163C display = TFT_ILI9163C(_CS, _DC); // construtor om gebruik te maken van de comunicar com of módulo LCD

Opstelling

In de functie setup () initialiseren we de variabele "dht", die verantwoordelijk is voor de communicatie met de vochtigheidssensor en temperatuur. We zullen ook de variabele "display" initialiseren die wordt gebruikt om met de LCD-module te communiceren.

We zullen het object ook configureren om op het scherm te tekenen.

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

Lus

In de loop ()-functie halen we de vochtigheid en temperaturen op die door de sensor zijn gelezen en op het scherm op de specifieke locatie zijn geschreven. Met elk interval van 5 seconden wordt de waarde van de sensor afgelezen en op het scherm geschreven.

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 escreverdo novamente atualiza. display.fillRect(5, 32, 120, 20, ZWART); // fillRect (x, y, breedte, hoogte, kleur); display.fillRect(5, 92, 120, 20, ZWART); display.setCursor(40, 35); // reposiciona of cursor para escrever display.print(t); // escreve een temperatuur em tela display.print((char)247); // escreve of 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 of cursor para escrever display.print(h); // escreve een umidade em tela display.print("%"); // escreve o símbolo de “porcentagem” para indicar a umidade delay (5000); }

Stap 7: Enkele andere interessante functies

// Roteert de inhoud van het scherm (parameters 0, 1, 2 of 3)

display.setRotation (uint8_t);

// Keert weergavekleuren om (maakt een negatief)

display.invertDisplay (booleaans);

// Tekent een enkele pixel op het scherm op positie (x, y)

display.drawPixel (x, y, kleur);

// Tekent een verticale lijn in positie

display.drawFastVLine (x, y, breedte, kleur);

// Tekent een verticale lijn op de opgegeven positie

display.drawFastHLin (x, y, breedte, kleur);

// Tekent een horizontale lijn op de opgegeven positie

display.drawRect (x, y, breedte, hoogte, kleur);

// Tekent een cirkel op de opgegeven positie

display.drawCircle (x, y, straal, kleur);

Aanbevolen: