กลับไปหน้ารวมไฟล์
control-ws2812b-bluetooth.md

ควบคุม WS2812B LED Strip ด้วย Bluetooth

ทำไมต้องซื้อไฟอัจฉริยะเชิงพาณิชย์ในราคา $80 เมื่อคุณสามารถสร้างแบบปรับแต่งเองได้ในราคาเพียง $15? โปรเจกต์ Bluetooth WS2812B Controller นี้ผสมผสานการแยกวิเคราะห์คำสั่ง Serial เข้ากับไลบรารี FastLED เพื่อสร้างแสงไฟในห้องที่สวยงามและตอบสนองได้ดีเยี่ยม

button_led_basic_interaction_1772681969235.png

ความมหัศจรรย์ของไลบรารี FastLED

WS2812B strip (NeoPixels) มีสายไฟเพียง 3 เส้น: 5V, GND และสาย Data เพียงเส้นเดียว

  • มันเป็นแบบ "Addressable" คุณสามารถสั่งให้ LED ตัวที่ #5 เป็นสีแดง ในขณะที่ LED ตัวที่ #60 เป็นสีน้ำเงินได้
  • ไลบรารี FastLED.h จะจัดการกับเรื่องเวลาที่ซับซ้อนอย่างยิ่งยวดซึ่งจำเป็นสำหรับสาย Data
  • leds[0] = CRGB::Red; FastLED.show();

การแยกวิเคราะห์ RGB String จาก Bluetooth

ความท้าทายที่แท้จริงคือการได้รับค่าสีที่แน่นอนจากโทรศัพท์ของคุณ

  1. คุณใช้ Android App (เช่น Bluetooth Electronics) เพื่อเลือกสีม่วงที่กำหนดเองจากวงล้อสี
  2. แอปจะส่งสตริงไปยัง HC-05 Receiver: R:150,G:0,B:200\n
  3. Arduino จะอ่านสตริง ใช้ C++ String.indexOf() เพื่อค้นหาเครื่องหมายจุลภาค และ String.substring().toInt() เพื่อดึงค่าจำนวนเต็มที่แน่นอนคือ 150 และ 200 ออกมา
  4. มันจะป้อนตัวเลขที่แยกวิเคราะห์เหล่านั้นโดยตรงไปยัง fill_solid(leds, NUM_LEDS, CRGB(r, g, b)); แบบไดนามิก

คำเตือนเรื่องแหล่งจ่ายไฟ

  • Arduino Uno/Nano: สำหรับตรรกะคำสั่ง
  • HC-05 Bluetooth Module ขาของ Arduino สามารถจ่ายกระแสไฟได้สูงสุด 500mA WS2812B strip ขนาด 1 เมตร จำนวน 60 NeoPixels ที่แสดงสีขาวเต็มรูปแบบจะดึงกระแสไฟ 3.6 Amps! คุณ ต้อง จ่ายไฟให้ LED strip ผ่านแหล่งจ่ายไฟภายนอกขนาด 5V/5A หากคุณเสียบ strip เข้ากับขา 5V ของ Arduino โดยตรง คุณจะทำให้ voltage regulator ไหม้ในทันที

ข้อมูล Frontmatter ดั้งเดิม

title: "Control WS2812B LED Strips using Bluetooth"
description: "Color your world! Build your own smartphone app to wirelessly change the color, animation, and brightness of a massively addressable LED strip."
category: "Home Automation"
difficulty: "Intermediate"