Mục lục:

Nhiệt kế kỹ thuật số ESP8266 với màn hình LCD: 7 bước
Nhiệt kế kỹ thuật số ESP8266 với màn hình LCD: 7 bước

Video: Nhiệt kế kỹ thuật số ESP8266 với màn hình LCD: 7 bước

Video: Nhiệt kế kỹ thuật số ESP8266 với màn hình LCD: 7 bước
Video: Bài 7: Đồng hồ dự báo thời tiết sử dụng kít wifi ESP8266 và LCD TFT 1.8 inch - Project ứng dụng IOT 2024, Tháng bảy
Anonim
Image
Image
Mô-đun đồ họa LCD 128x128 RGB TFT ILI 9163C
Mô-đun đồ họa LCD 128x128 RGB TFT ILI 9163C

Hôm nay, tôi sẽ hướng dẫn bạn cách sử dụng màn hình TFT LCD trên ESP8266 NodeMCU để hiển thị dữ liệu nhiệt độ và độ ẩm cho một môi trường thời gian thực nhất định. Tôi làm một ví dụ về việc sử dụng màn hình hiển thị với DHT22, là máy đo nhiệt độ và độ ẩm. Đặc biệt, trong video này, tôi sử dụng một màn hình nhỏ gọn cho nhiệt kế kỹ thuật số của chúng tôi, có đồ họa và cho phép theo dõi trên chính hệ thống. Do đó, mục tiêu của ngày hôm nay là tìm hiểu về cách xử lý màn hình tinh thể lỏng bằng ESP8266.

Bước 1: Mô-đun đồ họa LCD 128x128 RGB TFT ILI 9163C

Màn hình chúng tôi sử dụng trong dự án này là 128x128 pixel. 0, 0 nằm ở góc trên bên trái và mô hình này có cả chức năng in văn bản và in đồ họa, chúng tôi sẽ giải quyết ở phần sau.

Bước 2: Cảm biến độ ẩm và nhiệt độ AM2302 DHT22

Cảm biến nhiệt độ và độ ẩm AM2302 DHT22
Cảm biến nhiệt độ và độ ẩm AM2302 DHT22

Chúng tôi sẽ sử dụng AM2302 DHT22 trong bộ phận lắp ráp của mình, đây là cảm biến mà tôi thực sự thích, vì nó rất chính xác.

Bước 3: Mạch

Mạch điện
Mạch điện

Trong dự án, chúng tôi có một ESP8266 đã được lập trình và sử dụng nguồn USB. DHT22 được kết nối với Dữ liệu và điện trở kéo lên với ESP8266, điều khiển màn hình LCD.

Bước 4: Lắp ráp

cuộc họp
cuộc họp

Ở đây, chúng tôi có sơ đồ điện của cụm lắp ráp của chúng tôi, trong đó hiển thị NodeMCU, cảm biến và màn hình. Hãy nhớ rằng đây là màn hình nối tiếp, i2c, dễ sử dụng hơn vì nó có nhiều chân hơn.

Bước 5: Thư viện

Thư viện
Thư viện
Thư viện
Thư viện

Vì chúng ta sẽ lập trình màn hình bằng ngôn ngữ Arduino C, chúng ta cần thư viện DHT22, cũng như màn hình LCD.

Đầu tiên, thêm thư viện "thư viện cảm biến DHT" sau để giao tiếp với cảm biến độ ẩm và nhiệt độ.

Chỉ cần truy cập "Phác thảo >> Bao gồm Thư viện >> Quản lý Thư viện…"

Bây giờ, hãy thêm thư viện sau, "Adafruit-GFX-Library-master."

Chỉ cần truy cập "Phác thảo >> Bao gồm Thư viện >> Quản lý Thư viện…"

Ngoài ra, hãy thêm thư viện "TFT_ILI9163C" để giao tiếp với mô-đun đồ họa LCD.

Truy cập liên kết ((((((https://github.com/sumotoy/TFT_ILI9163C))))) và tải xuống thư viện.

Giải nén tệp và dán vào thư mục thư viện của Arduino IDE.

C: / Tệp chương trình (x86) / Arduino / thư viện

Bước 6: Mã

Đầu tiên, hãy thêm các thư viện sẽ được sử dụng trong mã của chúng ta.

#include // useizada para se comunicar com o módulo LCD # bao gồm // useizada para se comunicar com o sensor de umidade e temperatura

Định nghĩa

Chúng ta sẽ thấy bên dưới các biến mà chúng ta sẽ sử dụng trong chương trình và phiên bản của các đối tượng.

#define DHTPIN D6 // pino que conectaremos o sensor DHT22 # define DHTTYPE DHT22 // DHT22 é o tipo do sensor que usingizaremos (importante para o construtor) DHT dht (DHTPIN, DHTTYPE); // construtor do objeto que tasizaremos para se comunicar com o sensor // Định nghĩa về màu sắc #define BLACK 0x0000 #define BLUE 0x001F #define RED 0xF800 #define GREEN 0x07E0 #define CYAN 0x07FF #define MAGENTAFF 0xFELL0 #define WHITE xác định _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 tasizaremos para se comunicar com o módulo LCD

Cài đặt

Trong hàm setup (), chúng tôi khởi tạo biến "dht", biến này chịu trách nhiệm giao tiếp với cảm biến độ ẩm và nhiệt độ. Chúng tôi cũng sẽ khởi tạo biến "hiển thị" được sử dụng để giao tiếp với mô-đun LCD.

Chúng tôi cũng sẽ cấu hình đối tượng để bắt đầu vẽ trên màn hình.

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, removendo todos os desenhos display.fillScreen (BLACK); // pinta a tela toda de preto display.setTextSize (2); // configura o tamanho do texto com o tamanho 2 display.setTextColor (GREEN); // configura a cor do texto como verde display.setCursor (5, 10); // posiciona o con trỏ para começar a escrita a partir do (x, y) display.print ("TEMPERATUR"); // escreve em tela display.setCursor (22, 70); // reposiciona o con trỏ display.print ("UMIDADE"); // escreve em tela display.setTextColor (WHITE); // configura a cor do texto como cámco (a partir de agora) delay (1000); // espera de 1 segundo}

Vòng

Trong hàm loop (), chúng ta sẽ lấy độ ẩm và nhiệt độ được cảm biến đọc và ghi trên màn hình tại vị trí cụ thể. Ở mỗi khoảng thời gian 5 giây, giá trị được đọc từ cảm biến và được ghi trên màn hình.

void loop () {int h = dht.readHumidity (); // faz a leitura da umidade do sensor int t = dht.readTempe Heat (); // faz a leitura da temperatura do sensor // as 2 linhas seguintes usingizando 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, width, height, color); display.fillRect (5, 92, 120, 20, BLACK); display.setCursor (40, 35); // reposiciona o con trỏ para escrever display.print (t); // escreve a temperatura 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); // reposiciona o con trỏ para escrever display.print (h); // escreve a umidade em tela display.print ("%"); // escreve o símbolo de “porcentagem” para indicar a umidade delay (5000); }

Bước 7: Một số chức năng thú vị khác

// Xoay nội dung của màn hình (tham số 0, 1, 2 hoặc 3)

display.setRotation (uint8_t);

// Đảo ngược màu hiển thị (làm cho âm)

display.invertDisplay (boolean);

// Vẽ một pixel trên màn hình tại vị trí (x, y)

display.drawPixel (x, y, màu);

// Vẽ một đường thẳng đứng ở vị trí

display.drawFastVLine (x, y, width, color);

// Vẽ một đường thẳng đứng tại vị trí được chỉ định

display.drawFastHLine (x, y, width, color);

// Vẽ một đường ngang tại vị trí đã chỉ định

display.drawRect (x, y, width, heigh, color);

// Vẽ một vòng tròn tại vị trí được chỉ định

display.drawCircle (x, y, bán kính, màu sắc);

Đề xuất: