ควบคุม WS2812B LEDs ได้ง่ายๆ ผ่านเซิร์ฟเวอร์ RESTful อันทรงพลังที่รันบน Arduino จัดไปวัยรุ่น! ปลดปล่อยความคิดสร้างสรรค์ด้วยการรันโปรแกรมซับซ้อนผ่านการอัปโหลดไฟล์ง่ายๆ ใน Light Definition Language (LDL) โปรเจกต์นี้ไม่เหมือนคอนโทรลเลอร์ LED ทั่วไปนะน้อง: ผู้ใช้ไม่ต้องมีความรู้เทคนิคอะไรมาก แค่ใช้เครื่องมือที่เป็นมิตรก็สามารถสร้าง LDL แล้วส่งไปให้เซิร์ฟเวอร์ได้เลย
ตัวอย่าง: สลับสีแดง/น้ำเงิน ทุกๆ 1 วินาที วนไปเรื่อยๆ:

ตัวอย่าง: โปรแกรมไฟคริสต์มาสที่ซับซ้อนขึ้นมาหน่อย
{
"name": "Bottle Program",
"instructions": [
{
"repeat": {
"times": 0,
"instructions": [
{
"repeat": {
"times": 10,
"instructions": [
"0505000003FF00000099003333FF"
]
}
},
"0401000005000000000FF00",
"0401000005133FF33000000",
"04010000050000000FF0000",
"04010000051FF0000000000",
"040100000500000003333FF",
"040100000513333FF000000",
"030100000101919FF000000FF00",
"030100000111919FF000000FF00",
"070100000A3C104FF00000099003333FFFFFF00"
]
}
}
]
}
เป้าหมายของโปรเจกต์
ปลดปล่อยความคิดสร้างสรรค์และทำให้ดีไซน์ไฟของคุณมีชีวิตขึ้นมาด้วย LED driver ที่ใช้ง่ายสุดๆ! โปรแกรมไฟสวยๆ ด้วย Light Definition Language (LDL) ที่เข้าใจง่าย - เข้าถึงได้ทุกคน ไม่ว่าความรู้เทคนิคจะมากน้อยแค่ไหนก็ตาม
- ปลดล็อกศักยภาพการแสดงไฟด้วย Light Definition Language (LDL) มาตรฐานและทรงพลังสำหรับควบคุม LED
- ให้ผู้ใช้ทุกทักษะสามารถสร้างโปรแกรม LED สุดตระการตาใน LDL ได้ด้วยเครื่องมือที่ใช้งานง่าย
- ควบคุม LED ได้อย่างราบรื่นด้วยคำสั่ง HTTP ง่ายๆ เพื่อสื่อสารกับเซิร์ฟเวอร์
- ยกระดับประสบการณ์ LED ด้วยฟีเจอร์ที่เป็นมิตร - รวมถึงการตั้งค่าผ่าน Wifi hotspot แบบง่ายๆ, การค้นหาเซิร์ฟเวอร์อัตโนมัติด้วย UDP, และการอัปเดตอัตโนมัติเพื่อการทำงานที่ราบรื่น
- นำการออกแบบแสงไฟมาสู่ทุกคนฟรีๆ ด้วยโปรเจกต์โอเพนซอร์สนี้
ภาพรวม
เซิร์ฟเวอร์ RESTful สำหรับขับ WS2812B LEDS โปรแกรม Light-server เขียนด้วย Light Definition Language (LDL) โดยใช้ JSON
ฟีเจอร์เด็ด:
- UDP server network discovery
- Light Definition Language (LDL) ช่วยให้เขียนโปรแกรมซับซ้อนได้
- WiFi set up mode จะแสดงหน้าเว็บง่ายๆ ให้ผู้ใช้ที่ 192.168.4.1:
- ให้เลือก WiFi SSID และใส่รหัสผ่าน
- ระบุ WiFi SSID สำรองได้
- ระบุจำนวน LED ที่เชื่อมต่อ
- WiFi จะเชื่อมต่อใหม่หรือไปที่ SSID สำรองอัตโนมัติ
- ปัจจุบัน LDL รองรับเอฟเฟกต์การเรนเดอร์หลัก 8 แบบ
- RESTful interface รองรับ 8 คำสั่ง
- โปรแกรม LDL สามารถเซฟลงหน่วยความจำของอุปกรณ์ได้ มันจะโหลดขึ้นมาใหม่แม้จะรีสตาร์ทอุปกรณ์
ตัวแก้ไขโปรแกรม LDL สามารถใช้สร้างโปรแกรมแบบเห็นภาพและอัปโหลดไปยังเซิร์ฟเวอร์ LDL ได้ ดูโปรเจกต์ GitHub:
โปรเจกต์ GitHub หลักอธิบายรายละเอียดได้ละเอียดกว่านี้:
ภาพเซิร์ฟเวอร์ที่กำลังทำงาน



รายละเอียดเทคนิคเพิ่มเติม
การออกแบบลอจิกและแพตเทิร์นแบบเห็นภาพ
โปรเจกต์นี้ให้เฟรมเวิร์กพื้นฐานสำหรับสร้างงานศิลปะ LED และการแสดงไฟที่ซิงโครไนซ์กันอย่างซับซ้อน
- Addressable LED Control: ใช้โปรโตคอล WS2812B (NeoPixel) Arduino ส่งสตรีมข้อมูลความเร็วสูงผ่านสายไฟเส้นเดียว เพื่อกำหนดสี 24-bit ให้กับ LED แต่ละดวงแยกกัน
- FastLED Library Integration: ใช้ประโยชน์จากฟังก์ชันทางคณิตศาสตร์สำหรับการผสมสี, การไล่ระดับสี, และคลื่นตรีโกณมิติ (เช่น
sineและcosine) เพื่อสร้างเอฟเฟกต์ไฟที่ดูเป็นธรรมชาติและเป็นจังหวะ โดยไม่ต้องเขียนโค้ดทีละเฟรมเอง
ความคิดสร้างสรรค์แบบอินเทอร์แอคทีฟ
- Serial Pattern Switcher: รวมแผงควบคุมฝั่ง PC (Processing หรือ Python) ที่ให้ผู้ใช้ออกแบบแพตเทิร์นบนหน้าจอและอัปโหลดไปยัง Arduino ทันที เพื่อรับผลลัพธ์ภาพแบบเรียลไทม์