ในโปรเจกต์นี้ พี่จะพาน้องไปสร้างคอนโทรลเลอร์สำหรับ LED RGB WS2812B โดยใช้บอร์ด Wemos D1 Mini กับแอป WLED กัน
เจ้าโปรเจกต์นี้พี่เจอตอนที่พี่หาวิธีทำ "คอนโทรลเลอร์ LED RGB" ที่ใช้ง่ายๆ นะ WLED นี่มันทั้งเป็นชื่อแอป และก็เป็นชื่อกลุ่มนักพัฒนาที่สร้างคอนโทรลเลอร์นี้ขึ้นมาให้ทุกคนใช้ควบคุม LED RGB ได้ง่ายๆ
WS2812B เป็น LED ประเภทนึงที่แอป WLED นี้คุมได้ ก่อนหน้านี้พี่เคยทำโปรเจกต์ติดตั้ง WS2812B ง่ายๆ กับ Arduino Uno มาบ้าง แต่อันต่อไปพี่อยากควบคุม LED RGB ให้เปลี่ยนเอฟเฟกต์ไฟได้ตามใจ จะผ่าน Wi-Fi หรือผ่านเน็ตก็สะดวกหมด ขอบคุณทีม WLED ด้วยนะ
Wemos D1 Mini คือบอร์ดพัฒนาที่ใช้ ESP8266 เป็นแกน Wemos เป็นไมโครคอนโทรลเลอร์เหมือน Arduino แต่มันมีโมดูล Wi-Fi ในตัวแล้ว เพราะงั้นพี่ว่า Wemos นี่เกินพอสำหรับโปรเจกต์นี้เลย
ด้านล่างเป็นเอกสารของพี่แต่เป็นภาษาอินโดนีเซีย หวังว่าน้องจะเข้าใจนะ :)
Ultimate Photon Engineering: สถาปัตยกรรมของ WLED
โปรเจกต์ ควบคุม WS2812B ผ่าน Wi-Fi ด้วย WLED ช่วยให้เราควบคุมแถบ LED Addressable ได้อย่างลื่นไหลและมีลูกเล่น WLED เป็นเฟิร์มแวร์โอเพนซอร์สที่ทรงพลัง มันเปลี่ยนไมโครคอนโทรลเลอร์ ESP8266 ให้กลายเป็นคอนโทรลเลอร์ LED เต็มฟีเจอร์ ที่เข้าถึงได้ผ่าน Wi-Fi
สถาปัตยกรรมฮาร์ดแวร์ของ WLED
การตั้งค่าฮาร์ดแวร์หลักนั้นเรียบง่ายมาก แค่มีของสำคัญไม่กี่ชิ้น:
- ESP8266 Wemos D1 Mini หรือ NodeMCU: อันนี้เป็นสมองของระบบ ทำหน้าที่รันเฟิร์มแวร์ WLED และจัดการการสื่อสารเครือข่าย
- แถบ LED WS2812B NeoPixel: พวกนี้คือ LED Addressable ที่เราจะควบคุม แต่ละ LED มีชิปขับ (driver chip) ในตัวแล้ว ทำให้ควบคุมพิกเซลแต่ละจุดได้ผ่านสายข้อมูลเส้นเดียว
- แหล่งจ่ายไฟ 5V โดยเฉพาะ (ห้ามใช้ชาร์จมือถือ!): แหล่งจ่ายไฟที่แรงพอเป็นสิ่งสำคัญมาก แถบ WS2812B สามารถกินกระแสได้สูง โดยเฉพาะตอนเปิดสีขาวเต็มความสว่าง ถ้าใช้แหล่งจ่ายไฟที่อ่อนเกิน (เช่น ชาร์จมือถือ USB ทั่วไป) จะทำให้แรงดันตก, การทำงานผิดปกติ และไฟดับได้
การใช้งานแหล่งจ่ายไฟ 5A
การจัดการพลังงานเป็นส่วนที่สำคัญที่สุดของโปรเจกต์ LED ที่เสถียร แหล่งจ่ายไฟที่ถูกต้องตามสเปคจะช่วยให้ระบบทำงานได้คงที่และปกป้องชิ้นส่วนของคุณ
- คำนวณความต้องการ: หาค่าการกินกระแสสูงสุด กฎง่ายๆ ที่ใช้กันคือ 60mA ต่อหนึ่ง LED (สีแดง, เขียว, น้ำเงิน อย่างละ 20mA) ตอนเปิดสีขาวเต็มสว่าง สำหรับแถบ 30 LED ก็คือ 30 * 0.06 = 1.8A อย่าลืมเผื่อความปลอดภัยอีก 20-30% เพราะงั้นแหล่งจ่ายไฟ 5V, 3A ก็จะเหมาะกับตัวอย่างนี้
- ใช้แหล่งจ่ายไฟโดยเฉพาะ: อย่างที่บอกไป ชาร์จ USB ทั่วไปไม่พอ ใช้แหล่งจ่ายไฟ DC 5V ที่ควบคุมแรงดันได้ (แบบที่ใช้กับ CCTV หรือโปรเจกต์ LED) และมีค่ากระแสเพียงพอ
- ป้อนไฟเพิ่ม (Power Injection): สำหรับแถบที่ยาวกว่า (เกิน 1-2 เมตร) คุณต้องป้อนไฟที่ปลายทั้งสองข้าง หรือหลายจุดตามแถบ เพื่อป้องกันแรงดันตก ซึ่งจะแสดงผลเป็น LED ที่ห่างจากแหล่งจ่ายไฟยิ่งสว่างน้อยลงและสีจะเบี่ยงไปทางแดงมากขึ้น
ไขความลับการแฟลชไฟล์ไบนารี (esptool)
การติดตั้งเฟิร์มแวร์ WLED ก็คือการอัดไฟล์ไบนารีลงไปในหน่วยความจำของ ESP8266 นั่นเอง กระบวนการนี้ที่มักใช้เครื่องมือชื่อ esptool นั้นง่ายนิดเดียว:
- เตรียมไฟล์ไบนารี: ดาวน์โหลดไฟล์ไบนารี (.bin) เวอร์ชั่นล่าสุดของ WLED จากหน้าเผยแพร่บน GitHub ทางการของ WLED
- เชื่อมต่อบอร์ด: ต่อ Wemos D1 Mini ของคุณเข้ากับคอมด้วยสาย USB ตรวจสอบให้แน่ใจว่าได้ติดตั้งไดรเวอร์ USB ที่ถูกต้องแล้ว ระบบจะได้รู้จักบอร์ดเป็นพอร์ตอนุกรม (COM)
- แฟลชเฟิร์มแวร์: คุณสามารถใช้ตัวติดตั้งเว็บของ WLED, โปรแกรม
esptoolแบบ command-line หรือเครื่องมือ GUI อย่าง NodeMCU PyFlasher ก็ได้ กระบวนการนี้จะเกี่ยวข้องกับการทำให้ ESP8266 เข้าสู่โหมดแฟลช (มักทำโดยกดปุ่มค้างไว้ตอนเสียบสาย หรือต่อ GPIO0 ลงกราวด์) เลือกพอร์ตอนุกรมและไฟล์ไบนารีที่ถูกต้อง แล้วเริ่มกระบวนการเขียน พอเสร็จเรียบร้อย บอร์ดจะรีบูตและสร้างเครือข่าย Wi-Fi Access Point ชื่อ "WLED-AP" ขึ้นมา
เมื่อแฟลชเสร็จแล้ว คุณก็สามารถเชื่อมต่อกับเครือข่าย "WLED-AP" เปิดเบราว์เซอร์ไปที่ 4.3.2.1 ตั้งค่าอุปกรณ์ให้เชื่อมต่อกับ Wi-Fi บ้านคุณ แล้วเริ่มต้นสร้างเอฟเฟกต์แสงสุดตระการตาได้เลย ไปลุยกันเลยวัยรุ่น!