Daftar Isi:

ESP8266 Termometer Digital Dengan Layar LCD: 7 Langkah
ESP8266 Termometer Digital Dengan Layar LCD: 7 Langkah

Video: ESP8266 Termometer Digital Dengan Layar LCD: 7 Langkah

Video: ESP8266 Termometer Digital Dengan Layar LCD: 7 Langkah
Video: ESP8266 Wi-Fi Clock -LCD 2024, Juli
Anonim
Image
Image
Modul Grafis LCD 128x128 RGB TFT ILI 9163C
Modul Grafis LCD 128x128 RGB TFT ILI 9163C

Hari ini, saya akan menunjukkan cara menggunakan layar LCD TFT pada NodeMCU ESP8266 untuk menampilkan data suhu dan kelembapan untuk lingkungan waktu nyata tertentu. Saya membuat contoh penggunaan layar dengan DHT22, yaitu pengukur suhu dan kelembaban. Dalam video ini, secara khusus, saya menggunakan tampilan ringkas untuk termometer digital kami, yang grafis dan memungkinkan pemantauan pada sistem itu sendiri. Oleh karena itu, tujuan hari ini adalah untuk mempelajari tentang penanganan layar kristal cair menggunakan ESP8266.

Langkah 1: Modul Grafis LCD 128x128 RGB TFT ILI 9163C

Tampilan yang kami gunakan dalam proyek ini adalah 128x128 piksel. Angka 0, 0 ada di sudut kiri atas, dan model ini memiliki fungsi pencetakan teks dan pencetakan grafis, yang akan kita bahas nanti.

Langkah 2: Sensor Kelembaban dan Suhu AM2302 DHT22

Sensor Kelembaban dan Suhu AM2302 DHT22
Sensor Kelembaban dan Suhu AM2302 DHT22

Kami akan menggunakan AM2302 DHT22 dalam perakitan kami, yang merupakan sensor yang sangat saya sukai, karena sangat presisi.

Langkah 3: Sirkuit

sirkuit
sirkuit

Dalam proyek ini, kami memiliki ESP8266 yang sudah diprogram dan menggunakan daya USB. DHT22 terhubung ke Data dan resistor pull-up ke ESP8266, yang mengontrol layar LCD.

Langkah 4: Perakitan

perakitan
perakitan

Di sini, kami memiliki diagram listrik perakitan kami, yang menunjukkan NodeMCU, sensor, dan tampilan. Ingat bahwa ini adalah tampilan serial, i2c, yang lebih mudah digunakan karena memiliki lebih banyak pin.

Langkah 5: Perpustakaan

Perpustakaan
Perpustakaan
Perpustakaan
Perpustakaan

Karena kita akan memprogram tampilan dengan bahasa Arduino C, kita membutuhkan library DHT22, serta LCD.

Pertama, tambahkan perpustakaan "perpustakaan sensor DHT" berikut untuk komunikasi dengan sensor kelembaban dan suhu.

Cukup akses "Sketsa >> Sertakan Perpustakaan >> Kelola Perpustakaan …"

Sekarang, tambahkan perpustakaan berikut, "Adafruit-GFX-Library-master."

Cukup akses "Sketsa >> Sertakan Perpustakaan >> Kelola Perpustakaan …"

Juga, tambahkan perpustakaan "TFT_ILI9163C" untuk komunikasi dengan modul grafis LCD.

Akses tautan ((((((https://github.com/sumotoy/TFT_ILI9163C))))) dan unduh perpustakaan.

Buka zip file dan tempel ke folder perpustakaan Arduino IDE.

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

Langkah 6: Kode

Pertama mari kita tambahkan perpustakaan yang akan digunakan dalam kode kita.

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

definisi

Kita akan melihat di bawah variabel yang akan kita gunakan selama program, dan instance dari objek.

#define DHTPIN D6 // pino que conectaremos o sensor DHT22#define DHTTYPE DHT22 // DHT22 untuk melakukan sensor dengan utilizaremos (penting untuk konstrutor) DHT dht(DHTPIN, DHTTYPE); // konstruktor melakukan objeto que utilizaremos para se comunicar com o sensor // Definisi warna #define BLACK 0x0000 #define BLUE 0x001F #define RED 0xF800 #define HIJAU 0x07E0 #define CYAN 0x07FF #define MAGENTA #define 0xF81F #define FFE0 #0xdefine YELOW definisikan _CS D1 // koneksi cepat o CS lakukan módulo LCD #define _DC D4 // koneksi cepat o RS lakukan módulo LCD TFT_ILI9163C display = TFT_ILI9163C(_CS, _DC); // konstruktor melakukan objeto que utilizaremos para se comunicar com o módulo LCD

Mempersiapkan

Dalam fungsi setup (), kami menginisialisasi variabel "dht," yang bertanggung jawab untuk komunikasi dengan sensor kelembaban dan suhu. Kami juga akan menginisialisasi variabel "tampilan" yang digunakan untuk berkomunikasi dengan modul LCD.

Kami juga akan mengonfigurasi objek untuk mulai menggambar di layar.

pengaturan batal(batal) { dht.begin(); // inicializao para se comunicar com o sensor display.begin(); // inicializao para se comunicar com o modulo LCD display.clearScreen(); // limpa a tela, removendo todos os desenhos display.fillScreen(BLACK); // pinta a toda de preto display.setTextSize(2); // configura o tamanho melakukan texto com o tamanho 2 display.setTextColor(GREEN); // mengonfigurasi dan melakukan teks untuk tampilan.setCursor(5, 10); // posisi kursor untuk datangçar a escrita a partir do (x, y) display.print("TEMPERATUR"); // escreve em tela display.setCursor(22, 70); // reposisi atau tampilan kursor.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 }

Lingkaran

Dalam fungsi loop (), kami akan mengambil kelembaban dan suhu yang dibaca oleh sensor dan ditulis di layar di lokasi tertentu. Pada setiap interval 5 detik, nilainya dibaca dari sensor dan ditulis di layar.

void loop(){ int h = dht.readHumidity(); // faz a leitura da umidade lakukan sensor int t = dht.readTemperature(); // faz a leitura da suhu lakukan sensor //sebagai 2 baris utilizando o método “fillRect”, são para fazer a limpeza lakukan lokal onde escreveremos a umidade e a suhu, apagaremos o valor atual para escrever novamente atualizado. display.fillRect(5, 32, 120, 20, HITAM); // fillRect(x, y, lebar, tinggi, warna); display.fillRect(5, 92, 120, 20, HITAM); display.setCursor(40, 35); // reposisi kursor untuk escrever display.print(t); // escreve a temperature 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); // reposisi kursor untuk escrever display.print(h); // escreve a umidade em tela display.print("%"); // escreve atau simbol dari "porcentagem" untuk menunjukkan penundaan umidade(5000); }

Langkah 7: Beberapa Fungsi Menarik Lainnya

// Memutar isi layar (parameter 0, 1, 2 atau 3)

display.setRotation (uint8_t);

// Membalikkan warna tampilan (membuat negatif)

display.invertDisplay (boolean);

// Menggambar satu piksel pada layar pada posisi (x, y)

display.drawPixel (x, y, warna);

// Menggambar garis vertikal pada posisi

display.drawFastVLine (x, y, lebar, warna);

// Menggambar garis vertikal pada posisi yang ditentukan

display.drawFastHLine (x, y, lebar, warna);

// Menggambar garis horizontal pada posisi yang ditentukan

display.drawRect (x, y, lebar, tinggi, warna);

// Menggambar lingkaran pada posisi yang ditentukan

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

Direkomendasikan: