สวัสดีครับ วันนี้จะมาแนะนำหน้าจอสำหรับแสดงผลขนาด 320x240 ราคาประหยัด ที่ให้สี RGB ครบถ้วนและยังรองรับการ Touch screen ด้วย ซึ่งในบทความนี้จะสาธิตวิธีใช้ร่วมกับ Nodemcu V2 กันนะครับ เริ่มกันเลย
อุปกรณ์ที่ใช้
1. Nodemcu V2
3. Breadboard
4. Jumper
Lab 1 : ติดตั้งไลบรารี่และต่อวงจร
ในบทความนี้จะสมมติว่าเราได้ติดตั้งบอร์ด esp8266 บน Arduino IDE เรียบร้อยแล้ว หากใครยังไม่เคยติดตั้ง esp8266 บน Arduino IDE มาก่อน สามารถหาวิธีได้ตาม Youtube หากติดตั้งเรียบร้อยแล้วเราจะเริ่มด้วยการติดตั้งไลบรารี่ โดยตัวไลบรารี่ที่ใช้จัดการกับหน้าจอ ili9341 นี้หากเราดูใน Library manager จะเห็นว่ามีให้เลือกมากมายหลายตัวด้วยกัน ดังรูป
โดยทั่วไปไลบรารี่หลักของ ili9341 จะเป็นของ Adafruit ชื่อว่า Adafruit_ILI9341 ที่พัฒนาขึ้นมาให้ใช้ได้กับ Arduino และ ESP8266/ESP32 แต่ไม่นานมานี้มีไลบรารี่นึงที่พัฒนาแยกขึ้นมาโดยเล็งเห็นว่าเราสามารถ ปรับปรุงโค้ดบางส่วนของ Adafruit_ILI9341 ให้รันบน ESP8266/ESP32/STM32 ได้อย่างเต็มประสิทธิภาพที่สุด ไลบรารี่นั้นคือ “TFT_espi” https://github.com/Bodmer/TFT_eSPI) ที่พัฒนามาให้ใช้ได้กับหน้าจอ ILI9341, ILI9163, ST7735, S6D02A1, ILI9481, ILI9486, ILI9488, HX8357D, ST7789 และ ST7796 เมื่อรู้ Library ที่เราจะใช้แล้ว มาติดตั้งกันเลย
1.1 ติดตั้ง Library
วิธีการติดตั้ง Library ให้กดที่ Tools->Manager Libraries พิมพ์ TFT_espi ลงในช่องค้นหา แล้วกด install ดังรูป
1.2 ตั้งค่าไลบรารี่
ไลบรารี่นี้เป็นไลบรารี่ที่ต้องมีการตั้งค่าไลบรารี่ โดยแก้โค้ดในโฟลเดอร์ไลบรารี่เพื่อให้ไลบรารี่รู้ว่าเราต้องการใช้กับหน้าจอ บอร์ด ขนาดจอ ยี่ห้อไหน ขาสัญญาณเท่าไรอย่างเฉพาะเจาะจง เพื่อให้โค้ดทำงานได้รวดเร็วที่สุด โดยบนระบบปฏิบัติการ Windows เราสามารถหาไฟล์ตั้งค่าได้จากใน Documents\Arduino\libraries\TFT_eSPI ชื่อไฟล์ว่า User_Setup.h ดังรูป (สำหรับระบบปฏิบัติการอื่นๆให้ดูที่ File->Preferance ดูในช่อง Sketchbook location ต่อท้ายด้วย \libraries\TFT_eSPI\User_Setup.h )
ในไฟล์นี้จะแบ่งการตั้งค่าออกเป็น 4 Sections ซึ่งจะไม่ลงรายละเอียดในที่นี้ แต่จะเป็นการเลือกไดร์ฟเวอร์จอ ขนาดจอ ตำแหน่งขาสัญญาณและอื่นๆ โดยค่าเบื้องต้นของไลบรารี่จะใช้ไดร์ฟเวอร์ของ ili9341 กับตำแหน่งขาบนบอร์ด ESP8266 (Nodemcu) อยู่แล้ว เหลือแค่ว่ายังไม่มีการเปิดใช้งาน Touch screen ให้เราทำการเปิดใช้งาน Touch screen โดยไปที่บรรทัดที่ 160 ให้เราเอา // หน้า #define TOUCH_CS PIN_D2 ออกดังรูป
จากนั้นปิดไฟล์ ก็เป็นอันเสร็จสิ้นขั้นตอนการ Setup ให้ไลบรารี่ใช้กับ Nodemcu และจอ ili9341 แล้วล่ะครับ
1.3 ต่อวงจร
ให้ต่อวงจร Nodemcu กับ ili9341 ดังรูป
1.4 ทดสอบระบบ
ให้เข้าไปที่ Arduino IDE กดที่ File->Example -> TFT_eSPI -> 320 x 240 -> TFT_Meters ดังรูป
เพื่อความเร็วในการอัพโหลด เราสามารถเพิ่มความเร็วการอัพโหลดได้ผ่าน Tools-> Upload speed เป็นจาก 115200 เป็น 256000 และค่าอื่นๆดังรูป
หลังจาก Upload โค้ดตัวอย่าง เราควรได้ผลลัพธ์เป็นมิเตอร์ทั้งแบบโค้งและแบบตรงสวยงามดังรูป
ตอนต่อไปจะมาพูดถึงเรื่องฟังก์ชันการวาดรูปทรงต่างๆกันครับ
ธนบดี บุหลันศรีชาติ
ผู้เขียน