Hiển thị thời gian thực bằng màn hình OLED 0.96 sử dụng NodeMCU ESP8266

Hiển thị thời gian thực bằng màn hình OLED 0.96 sử dụng NodeMCU ESP8266

Màn hình OLED 0.96 là một màn hình đang được sử dụng khá nhiều vì sự tiện lợi của chúng. Trong nội dung bài viết hôm nay mình sẽ hướng dẫn các bạn cách để hiển thị thời gian thực lên OLED 0.96 bằng NodeMCU ESP8266.

Tổng quan về màn hình OLED 0.96

Màn hình Oled 0.96 inch sử dụng chuẩn giao tiếp bằng I2C, nên việc giao tiếp một cách dễ dàng và ổn định.

Màn hình cho khả năng hiển thị đẹp, sang trọng, rõ nét và khả năng tiết kiệm pin rất tốt.

Thông tin kỹ thuật

  • Điện áp sử dụng: 3.3~5VDC.
  • Công suất tiêu thụ: 0.04w
  • Góc hiển thị: lớn hơn 160 độ
  • Số điểm hiển thị: 128×64 điểm.
  • Độ rộng màn hình: 0.96 inch
  • Màu hiển thị: Trắng
  • Giao tiếp: I2C
  • Driver: SSD1306

Sơ đồ đấu nối

Màn hình OLED 0.96 NodeMCU ESP8266
VDD 3V3
GND GND
SDA D2 (SDA)
SCL D1 (SCL)

Các linh kiện cần thiết cho dự án

Tên linh kiện Số lượng Shopee
NodeMCU ESP8266 1 Mua ngay
Dây cắm (Cái – Cái) 1 Mua ngay
Màn Hình Oled 0.96 1 Mua ngay

Code mẫu

#include <ESP8266WiFi.h>
#include <time.h>

#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define OLED_RESET LED_BUILTIN  //4
Adafruit_SSD1306 display(OLED_RESET);

const char* ssid = "Nha Tro 4";
const char* password = "nguyennam";

int ledPin = 13;

int timezone = 7 * 3600;
int dst = 0;

#if (SSD1306_LCDHEIGHT != 32)
#error("Height incorrect, please fix Adafruit_SSD1306.h!");
#endif

void setup() {

  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);

  // Clear the buffer.
  display.clearDisplay();
  display.display();
  
  pinMode(ledPin,OUTPUT);
  digitalWrite(ledPin,LOW);

  Serial.begin(115200);

  display.setTextSize(1);
  display.setTextColor(WHITE);
  
  display.setCursor(0,0);
  display.println("Wifi connecting to ");
  display.println( ssid );

  WiFi.begin(ssid,password);

  display.println("\nConnecting");

  display.display();

  while( WiFi.status() != WL_CONNECTED ){
      delay(500);
      display.print("."); 
      display.display();       
  }

  // Clear the buffer.
  display.clearDisplay();
  display.display();
  display.setCursor(0,0);
  
  display.println("Wifi Connected!");
  display.print("IP:");
  display.println(WiFi.localIP() );

  display.display();

  configTime(timezone, dst, "pool.ntp.org","time.nist.gov");
  display.println("\nWaiting for NTP...");

  while(!time(nullptr)){
     Serial.print("*");
     
     delay(1000);
  }
  display.println("\nTime response....OK"); 
  display.display();  
  delay(1000);

  display.clearDisplay();
  display.display();
}

void loop() {
  
  time_t now = time(nullptr);
  struct tm* p_tm = localtime(&now);
  
  Serial.print(p_tm->tm_mday);
  Serial.print("/");
  Serial.print(p_tm->tm_mon + 1);
  Serial.print("/");
  Serial.print(p_tm->tm_year + 1900);
  
  Serial.print(" ");
  
  Serial.print(p_tm->tm_hour);
  Serial.print(":");
  Serial.print(p_tm->tm_min);
  Serial.print(":");
  Serial.println(p_tm->tm_sec);
  
  // Clear the buffer.
  display.clearDisplay();

  display.setTextSize(3);
  display.setTextColor(WHITE);
  
  display.setCursor(0,0);
  display.print(p_tm->tm_hour);
  display.print(":");
  if( p_tm->tm_min <10)
    display.print("0"); 
  display.print(p_tm->tm_min);
  
  display.setTextSize(2);
  display.setCursor(90,5);
  display.print(".");
  if( p_tm->tm_sec <10)
    display.print("0"); 
  display.print(p_tm->tm_sec);

  display.setTextSize(1);
  display.setCursor(0,40);
  display.print(p_tm->tm_mday);
  display.print("/");
  display.print(p_tm->tm_mon + 1);
  display.print("/");
  display.print(p_tm->tm_year + 1900);

  display.display();

  delay(1000); // update every 1 sec

}

Thư viện

  • Download thư viện “Adafruit_GFX.h”: Tải ngay
  • Download thư viện “Adafruit_SSD1306.h”: Tải ngay
BÀI VIẾT LIÊN QUAN
Hướng dẫn cài đặt ESP8266 và kết nối với Blynk LED RGB sử dụng NodeMCU ESP8266 thay đổi màu sắc trên App Blynk
Giám sát nhiệt độ, độ ẩm bằng App Blynk sử dụng NodeMCU ESP8266 Cảnh báo trộm bằng cảm biến PIR (HC-SR501) thông qua App Blynk sử dụng ESP8266
Xác định khoảng cách khi đỗ xe bằng cảm biến HC-SRF04 sử dụng ESP8266 và App Blynk Điều khiển động cơ Servo SG90 bằng App Blynk sử dụng NodeMCU ESP8266
Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận