ESP32 OLED
Hướng dẫn này sẽ chỉ bạn cách sử dụng ESP32 để hiển thị dữ liệu trên màn hình OLED. Cụ thể, chúng ta sẽ học cách in ký tự và số, vẽ đường thẳng và hình dạng, và hiển thị hình ảnh trên màn hình OLED.
Linh Kiện Cần Thiết
| 1 | × | mô-đun phát triển ESP-WROOM-32 | ||
| 1 | × | Alternatively, ESP32 Uno-form board | ||
| 1 | × | Alternatively, ESP32 S3 Uno-form board | ||
| 1 | × | Cáp USB Type-C | ||
| 1 | × | Màn hình OLED I2C SSD1306 128x64 | ||
| 1 | × | Màn hình OLED I2C SSD1306 128x32 | ||
| 1 | × | breadboard (bo mạch thí nghiệm) | ||
| 1 | × | Dây nối Jumper | ||
| 1 | × | (Tùy chọn) Giắc cấp nguồn DC | ||
| 1 | × | (Khuyến nghị) Screw Terminal Expansion Board for ESP32 | ||
| 1 | × | (Khuyến nghị) Breakout Expansion Board for ESP32 | ||
| 1 | × | (Khuyến nghị) Power Splitter for ESP32 |
Or you can buy the following kits:
| 1 | × | DIYables ESP32 Starter Kit (ESP32 included) | ||
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | ||
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Về Màn Hình OLED
Có nhiều loại màn hình OLED khác nhau có thể hoạt động với ESP32. Chúng khác nhau về giao tiếp truyền thông (I2C, SPI), màu sắc (trắng, xanh, hai màu...), và kích thước (128x64, 128×32...)

Hướng dẫn này sử dụng màn hình OLED I2C SSD1306 128x64
Sơ Đồ Chân Màn Hình OLED I2C
Màn hình OLED I2C bao gồm 4 chân:
- Chân GND: nên được kết nối với ground của ESP32
- Chân VCC: nên được kết nối với chân 5 volt của ESP32.
- Chân SCL: là chân clock I2C.
- Chân SDA: là chân data I2C.

Sơ Đồ Kết Nối
- Cách kết nối ESP32 với màn hình OLED 128x64 sử dụng breadboard

This image is created using Fritzing. Click to enlarge image
Nếu bạn chưa rõ cách cấp nguồn cho ESP32 và các linh kiện khác, xem: Cách Cung Cấp Nguồn Điện Cho ESP32.
- Cách kết nối ESP32 với màn hình OLED 128x64 sử dụng bo mạch breakout có terminal vít

※ Lưu ý:
- Thứ tự các chân của module OLED có thể khác nhau giữa các nhà sản xuất. LUÔN LUÔN sử dụng nhãn được in trên module OLED. Hãy quan sát kỹ!
Cách Sử Dụng OLED với ESP32
Cài đặt thư viện OLED SSD1306
- Nhấp vào biểu tượng Libraries trên thanh bên trái của Arduino IDE.
- Gõ SSD1306 trong hộp tìm kiếm, sau đó tìm thư viện SSD1306 của Adafruit
- Cài đặt thư viện bằng cách nhấp vào nút Install.

- Một cửa sổ xuất hiện yêu cầu bạn cài đặt các dependencies cho thư viện
- Cài đặt tất cả dependencies cho thư viện bằng cách nhấp vào nút Install All.

Cách lập trình cho OLED
- Bao gồm thư viện
- Định nghĩa kích thước màn hình (123x64 hoặc 128 x32)
- Khai báo đối tượng OLED SSD1306
- Trong hàm setup(), khởi tạo màn hình OLED
- Và sau đó bạn có thể hiển thị văn bản, hình ảnh, vẽ đường thẳng ...
Code ESP32 - Hiển Thị Văn Bản Trên OLED
Code ESP32 dưới đây hiển thị văn bản trên OLED
Chúng ta có thể làm nhiều hơn bằng cách sử dụng các hàm sau:
- oled.clearDisplay(): hàm này được sử dụng để xóa màn hình
- oled.setTextSize(n): hàm này được sử dụng để thiết lập kích thước font, hỗ trợ kích thước từ 1 đến 8
- oled.setTextColor(WHITE): hàm này được sử dụng để thiết lập màu văn bản
- oled.setCursor(x,y): hàm này được sử dụng để thiết lập tọa độ bắt đầu hiển thị văn bản
- oled.drawPixel(x,y, color): hàm này được sử dụng để vẽ một pixel tại tọa độ x,y
- oled.setTextColor(BLACK, WHITE): hàm này được sử dụng để thiết lập màu văn bản và màu nền, theo thứ tự
- oled.println("message"): hàm này được sử dụng để in một chuỗi
- oled.println(number): hàm này được sử dụng để in một số
- oled.println(number, HEX): hàm này được sử dụng để in một số theo định dạng hex
- oled.display(): hàm này được sử dụng để áp dụng các thay đổi
- oled.startscrollright(start, stop): hàm này được sử dụng để cuộn văn bản từ trái sang phải
- oled.startscrollleft(start, stop): hàm này được sử dụng để cuộn văn bản từ phải sang trái
- oled.startscrolldiagright(start, stop): hàm này được sử dụng để cuộn văn bản từ góc dưới trái lên góc trên phải
- oled.startscrolldiagleft(start, stop): hàm này được sử dụng để cuộn văn bản từ góc dưới phải lên góc trên trái
- oled.stopscroll(): hàm này được sử dụng để dừng việc cuộn
Code ESP32 - Vẽ Hình Trên OLED
Code dưới đây cho thấy cách vẽ một số hình trên OLED
Sau khi chạy code, bạn sẽ thấy một hình chữ nhật, hình tròn và tam giác trên màn hình OLED.

Code ESP32 – Hiển Thị Hình Ảnh Trên OLED
Để hiển thị hình ảnh trên OLED, cần chuyển đổi hình ảnh thành mảng bitmap. Có một công cụ trực tuyến để chuyển đổi hình ảnh thành mảng bitmap. Hình ảnh dưới đây cho thấy cách thực hiện. Tôi đã chuyển đổi biểu tượng ESP32 thành mảng bitmap.

Sau khi chuyển đổi, sao chép code mảng và cập nhật nó trong mảng bitmap_image trong code sau:
Bằng cách chạy code trên, bạn sẽ thấy hình ảnh được hiển thị trên OLED như hình dưới đây.
