İçindekiler:

ESP8266 LCD Ekranlı Dijital Termometre: 7 Adım
ESP8266 LCD Ekranlı Dijital Termometre: 7 Adım

Video: ESP8266 LCD Ekranlı Dijital Termometre: 7 Adım

Video: ESP8266 LCD Ekranlı Dijital Termometre: 7 Adım
Video: Arduino Dijital Metre Yapımı (16x2 LCD Ekran Kullanımı) 2024, Kasım
Anonim
Image
Image
LCD Grafik Modülü 128x128 RGB TFT ILI 9163C
LCD Grafik Modülü 128x128 RGB TFT ILI 9163C

Bugün, belirli bir gerçek zamanlı ortam için sıcaklık ve nem verilerini görüntülemek için ESP8266 NodeMCU'da bir TFT LCD ekranın nasıl kullanılacağını göstereceğim. Sıcaklık ve nem göstergesi olan DHT22 ile ekranın kullanımına bir örnek yapıyorum. Bu videoda, özellikle dijital termometremiz için grafik olan ve sistemin kendisinde izlemeye izin veren kompakt bir ekran kullanıyorum. Bu nedenle bugünün amacı, ESP8266'yı kullanarak sıvı kristal ekranın kullanımı hakkında bilgi edinmektir.

Adım 1: LCD Grafik Modülü 128x128 RGB TFT ILI 9163C

Bu projede kullandığımız ekran 128x128 pikseldir. 0, 0 sol üst köşededir ve bu model daha sonra ele alacağımız hem metin yazdırma hem de grafik yazdırma işlevlerine sahiptir.

Adım 2: Nem ve Sıcaklık Sensörü AM2302 DHT22

Nem ve Sıcaklık Sensörü AM2302 DHT22
Nem ve Sıcaklık Sensörü AM2302 DHT22

AM2302 DHT22'yi montajımızda kullanacağız, çok hassas olduğu için çok sevdiğim bir sensör.

Adım 3: Devre

Devre
Devre

Projede zaten programlanmış ve USB gücünü kullanan bir ESP8266'mız var. DHT22, Verilere ve çekme direnci, LCD ekranı kontrol eden ESP8266'ya bağlanır.

Adım 4: Montaj

toplantı
toplantı

Burada, NodeMCU'yu, sensörü ve ekranı gösteren montajımızın elektrik şemasına sahibiz. Bunun, daha fazla pime sahip olduğu için kullanımı daha kolay olan seri bir ekran olan i2c olduğunu unutmayın.

Adım 5: Kitaplık

Kütüphane
Kütüphane
Kütüphane
Kütüphane

Ekranı Arduino C dili ile programlayacağımız için LCD'nin yanı sıra DHT22 kütüphanesine de ihtiyacımız var.

Öncelikle nem ve sıcaklık sensörü ile iletişim için aşağıdaki "DHT sensör kütüphanesi" kütüphanesini ekleyin.

Basitçe "Çizim >> Kitaplıkları Dahil Et >> Kitaplıkları Yönet …" seçeneğine erişin.

Şimdi, aşağıdaki kitaplığı ekleyin, "Adafruit-GFX-Library-master."

Basitçe "Çizim >> Kitaplıkları Dahil Et >> Kitaplıkları Yönet …" seçeneğine erişin.

Ayrıca LCD grafik modülü ile iletişim için "TFT_ILI9163C" kitaplığını ekleyin.

Bağlantıya erişin ((((((https://github.com/sumotoy/TFT_ILI9163C))))) ve kitaplığı indirin.

Dosyayı açın ve Arduino IDE'nin kitaplıklar klasörüne yapıştırın.

C: / Program Dosyaları (x86) / Arduino / kitaplıklar

6. Adım: Kod

Öncelikle kodumuzda kullanacağımız kütüphaneleri ekleyelim.

#include // comunicar com o módulo LCD#include // comunicar com o sensor de umidade e sıcaklık

Tanımlar

Program sırasında kullanacağımız değişkenleri ve nesnelerin örneğini aşağıda göreceğiz.

#define DHTPIN D6 // sensör DHT22#define DHTTYPE DHT22 // DHT22 ve sensör kullanımı (yapıcı için önemli) DHT dht(DHTPIN, DHTTYPE); // Construtor nesneyi utilizaremos para se comunicar com o sensor için kullan // Renk tanımları #define BLACK 0x0000 #define BLUE 0x001F #define KIRMIZI 0xF800 #define GREEN 0x07E0 #define CYAN 0x07FF #define MAGENTA 0xF81F #define YELLOW 0xF81F #define YELLOW 0x001F tanımla _CS D1 // CS do que conectaremos o CS do módulo LCD #define _DC D4 // pino que conectaremos o RS do módulo LCD TFT_ILI9163C ekran = TFT_ILI9163C(_CS, _DC); // yapıcı nesne LCD'yi nesnel olarak kullan

Kurmak

setup() fonksiyonunda, nem sensörü ve sıcaklık ile iletişimden sorumlu olan "dht" değişkenini başlatıyoruz. Ayrıca LCD modülü ile iletişim kurmak için kullanılan "ekran" değişkenini de başlatacağız.

Ayrıca nesneyi ekranda çizmeye başlayacak şekilde yapılandıracağız.

geçersiz kurulum(void) { dht.begin(); // comunicar comunicar com o n o n o r m e n e n e n e n e n e n e d e n e n e d e n e n e d e n e d e n e d e n e n e d e n e n e n e n e n e n e n e n e n e n e n e n e m egin(); // LCD display.clearScreen(); // bir tela limpa, kaldır ve todos os desenhos display.fillScreen(BLACK); // bir tela bugün de preto display.setTextSize(2); // tamanho yapılandırması o texto com o tamanho 2 display.setTextColor(GREEN); // texto como verde display.setCursor(5, 10); // bir imleç para gelip bir escrita bir partir do (x, y) display.print("TEMPERATUR"); // escreve em tela display.setCursor(22, 70); // yeniden konumlandırma veya imleç gösterimi.print("UMIDADE"); // escreve em tela display.setTextColor(BEYAZ); // configura a cor do texto como branco (bir partir de agora) delay(1000); // espera de 1 segundo }

Döngü

Döngü () işlevinde, sensör tarafından okunan ve belirli bir konumda ekranda yazılan nem ve sıcaklıkları alacağız. Her 5 saniyelik aralıklarla sensörden değer okunur ve ekrana yazılır.

void loop(){ int h = dht.readHumidity(); // her zaman olduğu gibi algılayıcı int t = dht.readTemperature(); // aşırı sıcaklık ve sıcaklık sensörü // 2 linhas seçeneği olarak “fillRect”, são para fazer ve limpeza do yerel onde escreveremos ve umidade e a temperatura, apagaremos o valor atual para escreveradomente atual. display.fillRect(5, 32, 120, 20, SİYAH); // fillRect(x, y, genişlik, yükseklik, renk); display.fillRect(5, 92, 120, 20, SİYAH); display.setCursor(40, 35); // yeniden konumlandırma veya imleç para escrever display.print(t); // bir sıcaklık escreve em tela display.print((char)247); // símbolo de grau ° através de código display.print("C"); // coloca o “C” para indicar que é é graus Celcius display.setCursor(40, 95); // yeniden konumlandırma veya imleç para escrever display.print(h); // bir umidade em tela display.print("%"); // símbolo de “porcentagem” para indicar a umidade delay(5000); }

7. Adım: Diğer Bazı İlginç İşlevler

// Ekranın içeriğini döndürür (0, 1, 2 veya 3 parametreleri)

display.setRotation (uint8_t);

// Ekran renklerini ters çevirir (negatif yapar)

display.invertDisplay (boole);

// Ekranda (x, y) konumunda tek bir piksel çizer

display.drawPixel (x, y, renk);

// Konumda dikey bir çizgi çizer

display.drawFastVLine (x, y, genişlik, renk);

// Belirtilen konumda dikey bir çizgi çizer

display.drawFastHLine (x, y, genişlik, renk);

// Belirtilen konumda yatay bir çizgi çizer

display.drawRect (x, y, genişlik, yükseklik, renk);

// Belirtilen konumda bir daire çizer

display.drawCircle (x, y, yarıçap, renk);

Önerilen: