Spisu treści:

Termometr cyfrowy ESP8266 z wyświetlaczem LCD: 7 kroków
Termometr cyfrowy ESP8266 z wyświetlaczem LCD: 7 kroków

Wideo: Termometr cyfrowy ESP8266 z wyświetlaczem LCD: 7 kroków

Wideo: Termometr cyfrowy ESP8266 z wyświetlaczem LCD: 7 kroków
Wideo: [Automatyka ESP Easy] #2 - Przekaźniki, wyświetlacz OLED, serwer czasu 2024, Lipiec
Anonim
Image
Image
Moduł graficzny LCD 128x128 RGB TFT ILI 9163C
Moduł graficzny LCD 128x128 RGB TFT ILI 9163C

Dzisiaj pokażę, jak używać wyświetlacza TFT LCD na NodeMCU ESP8266 do wyświetlania danych temperatury i wilgotności dla danego środowiska czasu rzeczywistego. Podaję przykład wykorzystania wyświetlacza z DHT22, czyli miernikiem temperatury i wilgotności. W tym filmie używam w szczególności kompaktowego wyświetlacza naszego termometru cyfrowego, który jest graficzny i umożliwia monitorowanie samego systemu. Dlatego dzisiejszym celem jest poznanie obsługi wyświetlacza ciekłokrystalicznego za pomocą ESP8266.

Krok 1: Moduł graficzny LCD 128x128 RGB TFT ILI 9163C

Wyświetlacz, którego używamy w tym projekcie to 128x128 pikseli. 0, 0 znajduje się w lewym górnym rogu, a ten model ma zarówno funkcje drukowania tekstu, jak i grafiki, którymi zajmiemy się później.

Krok 2: Czujnik wilgotności i temperatury AM2302 DHT22

Czujnik wilgotności i temperatury AM2302 DHT22
Czujnik wilgotności i temperatury AM2302 DHT22

W naszym montażu użyjemy AM2302 DHT22, który jest czujnikiem, który bardzo lubię, ponieważ jest bardzo precyzyjny.

Krok 3: Obwód

Okrążenie
Okrążenie

W projekcie mamy ESP8266 już zaprogramowany i korzystający z zasilania USB. DHT22 jest podłączony do Data, a rezystor podciągający do ESP8266, który steruje wyświetlaczem LCD.

Krok 4: Montaż

montaż
montaż

Tutaj mamy schemat elektryczny naszego zespołu, który pokazuje NodeMCU, czujnik i wyświetlacz. Pamiętaj, że jest to wyświetlacz szeregowy i2c, który jest łatwiejszy w obsłudze, ponieważ ma więcej pinów.

Krok 5: Biblioteka

Biblioteka
Biblioteka
Biblioteka
Biblioteka

Ponieważ zamierzamy programować wyświetlacz w języku Arduino C, potrzebujemy biblioteki DHT22, a także wyświetlacza LCD.

Najpierw dodaj następującą bibliotekę "biblioteki czujników DHT" do komunikacji z czujnikiem wilgotności i temperatury.

Wystarczy przejść do „Szkic >> Dołącz biblioteki >> Zarządzaj bibliotekami…”

Teraz dodaj następującą bibliotekę „Adafruit-GFX-Library-master”.

Wystarczy przejść do „Szkic >> Dołącz biblioteki >> Zarządzaj bibliotekami…”

Należy również dodać bibliotekę "TFT_ILI9163C" do komunikacji z modułem graficznym LCD.

Uzyskaj dostęp do linku ((((((https://github.com/sumotoy/TFT_ILI9163C))))) i pobierz bibliotekę.

Rozpakuj plik i wklej go do folderu bibliotek Arduino IDE.

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

Krok 6: Kod

Najpierw dodajmy biblioteki, które będą używane w naszym kodzie.

#include //utilizada dla komunikacji com o modulo LCD#include //utilizada dla komunikacji com o sensor de umidade e temperatura

Definicje

Poniżej zobaczymy zmienne, których będziemy używać podczas programu oraz instancję obiektów.

#define DHTPIN D6 // piny związane z czujnikiem DHT22#define DHTTYPE DHT22 // DHT22 i rodzaje czujników używanych (ważne dla konstruktora) DHT dht(DHTPIN, DHTTYPE); // Konstruktor do obsługi komunikacji z czujnikiem // Definicje kolorów #define BLACK 0x0000 #define BLUE 0x001F #define RED 0xF800 #define GREEN 0x07E0 #define CYAN 0x07FF #define MAGENTA 0xF81F #defineHFE 0xdef 0 zdefiniuj _CS D1 // połączenie z modułem LCD o CS do modułu LCD #define _DC D4 // połączenie z modułem z modułem LCD TFT_ILI9163C wyświetlacz = TFT_ILI9163C(_CS, _DC); // construtor do objeto que utilizaremos para se comunicar com o módulo LCD

Ustawiać

W funkcji setup() inicjujemy zmienną „dht”, która odpowiada za komunikację z czujnikiem wilgotności i temperatury. Inicjujemy również zmienną „display”, która służy do komunikacji z modułem LCD.

Skonfigurujemy również obiekt, aby zaczął rysować na ekranie.

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(); // pozbądź się teli, usuń todos os desenhos display.fillScreen(BLACK); // pinta a tele toda preto display.setTextSize(2); // skonfiguruj o tamanho wykonaj tekst com o tamanho 2 display.setTextColor(GREEN); // skonfiguruj a cor do texto como verde display.setCursor(5, 10); // posiciona o kursor para começar a escrita a partir do (x, y) display.print("TEMPERATUR"); // chowaj em tel display.setCursor(22, 70); // zmiana położenia kursora display.print("UMIDADE"); // zachowaj tela display.setTextColor(WHITE); // configura a cor do texto como branco (partir de agora) delay(1000); // espera od 1 drugiego }

Pętla

W funkcji pętli () odzyskamy wilgotność i temperaturę odczytaną przez czujnik i zapisaną na ekranie w określonym miejscu. Co 5 sekund wartość odczytywana jest z czujnika i zapisywana na ekranie.

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, BLACK); // fillRect(x, y, szerokość, wysokość, kolor); display.fillRect(5, 92, 120, 20, BLACK); display.setCursor(40, 35); // zmiana położenia kursora na escrever display.print(t); // odpisz temperaturę em tela display.print((char)247); // escreve o symbolu grau ° através de código display.print("C"); // coloca o „C” para indicar que é graus Celcius display.setCursor(40, 95); // zmiana położenia kursora na escrever display.print(h); // odłóż umidade em tela display.print("%"); // escreve o símbolo de “porcentagem” para indicar a umidade delay(5000); }

Krok 7: Inne ciekawe funkcje

// Obraca zawartość ekranu (parametry 0, 1, 2 lub 3)

display.setRotation (uint8_t);

// Odwraca kolory wyświetlania (tworzy negatyw)

display.invertDisplay (wartość logiczna);

// Rysuje pojedynczy piksel na ekranie w pozycji (x, y)

display.drawPixel (x, y, kolor);

// Rysuje pionową linię w pozycji

display.drawFastVLine (x, y, szerokość, kolor);

// Rysuje pionową linię w określonej pozycji

display.drawFastHLine (x, y, szerokość, kolor);

// Rysuje poziomą linię w określonej pozycji

display.drawRect (x, y, szerokość, wysokość, kolor);

// Rysuje okrąg w określonej pozycji

display.drawCircle (x, y, promień, kolor);

Zalecana: