ST7565 và ESP8266 - Màn hình LCD bự chà bá chưa đến 100k cho thế giới IoT

Mình rất thích LCD ST7565 này, và đã đặt liền 4 con mà mỗi con quá rẻ có 20k. Nhưng khổ một điều, điện áp hoạt động và IO của LCD ST7565 có 3.3V. Bản thân mình lại không thích việc chơi điện trở để chơi LCD này với Arduino. Lý do đơn giản là phải hàn quá nhiều, mình lại lười crying. Hổm nay, mình đang làm loạt bài về ESP8266 và cũng phải gặp vấn đề điện trở để làm cầu phân áp khi giao tiếp giữa ESP8266 và Arduino. Cảm thấy có một mối liên hệ giữa LCD ST7565 và ESP8266 nên mình đã thử tìm cách làm cho thư viện của Nick Chung hoạt động trên ESP8266 này. Mình đã thành công, và mình sẽ chia sẻ thành quả của mình với bạn. Thử ngay nào!

Cần chuẩn bị phần cứng gì?

  • Một con ESP8266v12 (NodeMCU v0.9 mình mua có 80k ở Việt Nam luôn)
  • Một con ST7565 (hàng tháo chip cho rẻ, mình mua cũng có 20k)
  • Vậy là hết 100k rồi.
  • Thêm 7 dây breadboard cái - cái để nối dây nữa là xong!

Cần cài đặt gì?

  • Cài đặt board ESP8266 để lập trình từ Arduino IDE. Các bạn làm theo bài viết sau.
  • Cà đặt thư viện ST7565_homephone_esp8266 của mình. Những thay đổi mình đã chỉnh sửa trong thư viện này:
    • Bỏ PROGMEM cho đơn ký tự char.
    • Bỏ các từ khóa asc vì esp8266 không phải là AVR.
    • Hết rồi, thư viện của Nick Chung (Thái Sơn) chạy quá tốt luôn.

Thử nghiệm

Lắp mạch cho LCD

Tùy con nha, mình lấy con NodeMCU 1.0 vì trong fritzing có con này, chứ mình sài NodeMCU 0.9

Pinout của con LCD ST7565

Chúng ta chỉ cần dùng chân 2, 3, 4, 7, 8, 9, 10 mà thôi. Bạn có thể hàn như mình nè.

Ngoài ra, bạn có thể cấp điện 3v3 vào chỗ bôi đỏ để bật đèn màn hình

Nói chung, bạn có thể lấy mọi ví dụ bài viết về ST7565 của Nick Chung viết trước đây và thử nghiệm trên ESP8266. Nhớ đổi tên chân lại, như con ESP8266 có các chân từ D0 => D9, A0. Ngoài ra, tùy bản ESP8266 mà có nhiều chân (pin) hơn ahihi.

Các thử nghiệm

Vẽ Tam giác

Xem toàn bộ thông tin tại đây.

#include "ST7565_homephone_esp8266.h"//a
ST7565 lcd(D0, D1, D2, D3);//b
 
 
void setup()   {  
  lcd.ON();//c
  lcd.SET(22,0,0,0,4);   //d
}
void loop(){
  lcd.Tri(60,10,30,40,90,40,BLACK);
  lcd.Display();
}  

a : Thêm thư viện

b : Thiết lập pin kết nối

c: Bật màn hình

d : Cài đặt cấu hình giao diện

Viết 1 kí tự tiếng Việt

Xem thông tin tại đây.

#include "ST7565_homephone_esp8266.h"//a
ST7565 lcd(D0, D1, D2, D3);//b
 
 
void setup()   {  
  lcd.ON();//c
  lcd.SET(22,0,0,0,4);   //d
}
void loop(){
  //c1:
  
  lcd.Uni_Char(63,10,u'A',BLACK);//A
  //c2:
  const static char16_t text=u'\x1ED8';//Ộ
  lcd.Uni_Char(63,31,text,BLACK);
  lcd.display();
}

Viết một chuỗi tiếng Việt

Xem thông tin tại đây

Anh em nhớ bỏ macro Uni nha

#include "ST7565_homephone_esp8266.h"//a
ST7565 lcd(D0, D1, D2, D3);//b
 
 
void setup()   {  
  lcd.ON();//c
  lcd.SET(22,0,0,0,4);   //d
}
void loop(){
  //c1:
  lcd.Uni_String( 30, 15, u"\x111\x1ECF", BLACK);//đỏ
  //c2:
  const static char16_t text[] PROGMEM =u"\x111\x65n";//đen
  lcd.Uni_String( 30, 35,text, BLACK);
      
  lcd.Display();
}

 

Kết luận

Tốc độ xử lý của ESP8266 nhanh hơn rất nhiều so với Arduino, các bạn có thể làm game rất mượt mà. Bạn có thể làm nhiều trò vui với ESP8266 và ST7565. Thư viện của Thái Sơn quá đầy đủ để chúng ta có thể chơi một cách ngon lành. Mời bạn xem video ở dưới để cùng chiêm ngưỡng những khả năng độc đáo của thư viện!

Youtube: 
Thử chơi game Ping Pong trên ESP8266 và LCD ST7565
Những hình ảnh về dự án: 
Bài viết truyền cảm hứng: 
lên
17 thành viên đã đánh giá bài viết này hữu ích.
Các dự án được truyền cảm hứng

Bộ điều khiển PID - ứng dụng phần 2 - xe dò line dùng thuật toán PID

Tiép nối bài viết về xe dò line cảm ơn Đỗ Hữu Toàn đã viết hộ mình phần 4. hôm nay mình sẽ làm cho chiếc xe dò line đi mượt và có hồn hơn 

lên
34 thành viên đã đánh giá bài viết này hữu ích.
Các bài viết cùng tác giả

Hướng dẫn làm webapp trong IoT cho iNut Platform bằng node-red-dashboard

Nghiệp làm app, viết code cho các dự án IoT đã từng là một rào cản rất lớn đối với tất cả mọi người. Nhưng từ nay, mọi thứ sẽ cực kỳ đơn giản với iNut Platform. Vi iNut Platform có hệ thống API rất tốt, dễ dàng tích hợp vào mọi dự án bằng cách lập trình kéo thả trên Internet rất là tiện lợi. Hãy cùng khám phá, bạn nhé.

lên
6 thành viên đã đánh giá bài viết này hữu ích.

VMIG - Vòng 3 - Vòng chung kết [Cập nhập 21/12/2015]

Điều mà các bạn đang mong chờ đã đến rồi đây. Hôm nay, 17/12/2015, chúng ta đã biết được 16 nhóm đã xuất sắc đoạt vé vào vòng chung kết cuộc thi VMIG.

lên
4 thành viên đã đánh giá bài viết này hữu ích.