สารบัญ:

ต้นคริสต์มาส NeoPixel ที่ควบคุมด้วยบลูทูธ: 5 ขั้นตอน
ต้นคริสต์มาส NeoPixel ที่ควบคุมด้วยบลูทูธ: 5 ขั้นตอน

วีดีโอ: ต้นคริสต์มาส NeoPixel ที่ควบคุมด้วยบลูทูธ: 5 ขั้นตอน

วีดีโอ: ต้นคริสต์มาส NeoPixel ที่ควบคุมด้วยบลูทูธ: 5 ขั้นตอน
วีดีโอ: BTF-LIGHTING Tutorial: SP105E Bluetooth Magic Controller Installation Video 2024, กรกฎาคม
Anonim

คุณเคยสงสัยหรือไม่ว่าจะเพิ่ม IoT (Internet of Things) ในต้นคริสต์มาสของคุณในปีนี้ได้อย่างไร? เป็นไปได้โดยสิ้นเชิง! ฉันเรียกโปรเจ็กต์นี้ว่า "ArduXmas" เป็นการส่วนตัวและประกอบด้วยแถบนำ RGB NeoPixel ที่ควบคุมโดยบอร์ด Arduino ผ่าน Bluetooth นี่เป็นโปรเจ็กต์ที่เป็นมิตรสำหรับผู้เริ่มต้นและเป็นการแนะนำที่ดีของ Arduino e IoT ดังนั้นให้นำเครื่องมือของคุณมาสร้างมันกันเถอะ!

เสบียง:

สำหรับโครงการนี้ คุณจะต้อง:

  • Arduino (ฉันใช้ Nano แต่ทุกรุ่นจะใช้งานได้ เพียงตรวจสอบให้แน่ใจว่าได้จ่ายไฟให้กับบอร์ดของคุณอย่างเหมาะสม)
  • NeoPixel WS2812b แถบ LED
  • โมดูลบลูทูธ HC-06
  • แหล่งจ่ายไฟ DC 5V 2A
  • DC Barrel Power Jack / ขั้วต่อ
  • แผ่นฟีนอลสำหรับยึดส่วนประกอบ
  • กล่องใส่ของ
  • สมาร์ทโฟน Android ที่ติดตั้งแอพ Blynk

ขั้นตอนที่ 1: วงจร

The Circuit
The Circuit
The Circuit
The Circuit
The Circuit
The Circuit

อุปกรณ์อิเล็กทรอนิกส์ของโครงการนี้ง่ายมาก Arduino, โมดูล Bluetooth และแถบ LED ใช้พลังงานจากแหล่งจ่ายไฟ 5V (ตรวจสอบให้แน่ใจว่า GND ทั้งหมดเชื่อมต่อกัน) บอร์ด Arduino ใช้พลังงานจากพอร์ต 5V (ข้อควรระวัง: การจ่ายไฟให้กับ Arduino โดยใช้พอร์ต 5V อาจทำให้บอร์ดของคุณเสียหายได้ หากไม่ระมัดระวัง ตรวจสอบให้แน่ใจว่าคุณใช้แหล่งจ่ายไฟ 5V ที่มีการควบคุม และอย่าใช้ +5V ผสมกัน และสาย GND) กระแสไฟที่จ่ายโดยแหล่งจ่ายไฟของคุณจะขึ้นอยู่กับความยาวของแถบ LED ของคุณ ฉันใช้ไฟ LED 180 ดวงที่มีความสว่างเต็มที่ 40% และ 2 แอมป์ใช้งานได้ดี แต่ให้แน่ใจว่าได้จ่ายกระแสไฟที่จำเป็นเสมอ (โปรดจำไว้ว่า: LED RGB แต่ละดวงใช้ประมาณ 20mA + 20mA + 20mA = 60mA)

โมดูลบลูทูธ HC-06 เชื่อมต่อกับพิน 0 และ 1 (RX, TX) ของ Arduino เพียงจำไว้ว่าเพื่อใช้โมดูลนี้ พิน RX ของ HC-06 เชื่อมต่อกับ TX ของ Arduino และพิน TX ของ HC-06 คือ เชื่อมต่อกับ RX ของ Arduino สิ่งเหล่านี้คือพินการเชื่อมต่อแบบอนุกรมของบอร์ด และใช้เพื่อรับคำสั่งจากสมาร์ทโฟน ฉันเพิ่มสวิตช์เพื่อเปิด/ปิดโมดูลอย่างง่ายดาย ดังนั้นฉันสามารถปิดได้เมื่อตั้งโปรแกรมบอร์ด มิฉะนั้น คอมพิวเตอร์จะไม่สามารถสื่อสารกับ Arduino ได้

ในวงจร data out pin ที่ไปยังแถบ LED คือพินดิจิตอล 2 แต่คุณสามารถเลือกพิน PWM ใดก็ได้และเปลี่ยนตามโค้ด (โปรดทราบ: แถบ LED ของ NeoPixel มีทิศทางสำหรับสัญญาณข้อมูล ให้มองหา ไอคอนลูกศรในแถบของคุณ)

ฉันใช้เพลทฟีโนไลต์ที่มีรูในการเชื่อมต่อ เพื่อให้สามารถบัดกรีและแยกชิ้นส่วนได้ง่ายในปีหน้า

ขั้นตอนที่ 2: สิ่งที่แนบมา

สิ่งที่แนบมา
สิ่งที่แนบมา
สิ่งที่แนบมา
สิ่งที่แนบมา
สิ่งที่แนบมา
สิ่งที่แนบมา

สำหรับกล่องหุ้ม ฉันแค่ใช้เคสจ่ายไฟของโน้ตบุ๊กรุ่นเก่าที่เหมาะกับส่วนประกอบต่างๆ ยึดทุกอย่างไว้แน่นด้วยกาวร้อน และปล่อยให้เป็นรูสำหรับพอร์ต USB ของ Arduino, สวิตช์ของ HC-06, ขั้วต่อ DC และขั้วต่อแถบ LED

ขั้นตอนที่ 3: แอป Blynk

แอพ Blynk
แอพ Blynk
แอพ Blynk
แอพ Blynk
แอพ Blynk
แอพ Blynk

สำหรับการสื่อสารกับ Arduino เราใช้แอพ Blynk ด้วย Blynk คุณสามารถสร้างอินเทอร์เฟซเพื่อส่งข้อมูลจากสมาร์ทโฟนไปยังฮาร์ดแวร์หรือในทางกลับกัน คุณยังสามารถควบคุมพอร์ตของไมโครคอนโทรลเลอร์ได้โดยตรงโดยไม่ต้องเปลี่ยนโค้ดหนึ่งบรรทัด!

การปฏิเสธความรับผิด: น่าเสียดายที่แอปพลิเคชันนี้จะใช้งานได้กับสมาร์ทโฟน Android เท่านั้นเนื่องจากคุณลักษณะ Bluetooth ยังอยู่ในเบต้าและยังไม่พร้อมใช้งานสำหรับ IOS ซึ่งหมายความว่าจะไม่สามารถส่งออกโครงการเป็นแอปแบบสแตนด์อโลนได้

ตั้งค่าแอปของคุณเพื่อรับโทเค็นการตรวจสอบสิทธิ์สำหรับโครงการของคุณในกล่องจดหมายอีเมลของคุณ (ต้องใช้การตรวจสอบสิทธิ์นี้ในภายหลังที่รหัสของ Arduino) เว็บไซต์ของ Blynk มีบทแนะนำทีละขั้นตอนที่ยอดเยี่ยมเกี่ยวกับเรื่องนี้ ลองดูที่:

สำหรับโปรเจ็กต์นี้ ฉันใช้สองปุ่มในการเปิดแอนิเมชั่นไลท์ที่เข้ารหัสไว้ล่วงหน้า 2 อัน หนึ่งองค์ประกอบ RGB เพื่อกำหนดสีของแถบ LED; แถบเลื่อนหนึ่งตัวเพื่อควบคุมความสว่างและส่วนประกอบบลูทูธหนึ่งตัวเพื่อเชื่อมต่อกับ Arduino ตรวจสอบภาพเพื่อดูว่าแต่ละองค์ประกอบได้รับการกำหนดค่าอย่างไร ให้ความสนใจกับพินที่ใช้สำหรับโปรเจ็กต์นี้ เนื่องจากเราใช้ Virtual Pins ของ Blynk ซึ่งเป็นคุณสมบัติที่ดีที่ช่วยในการส่งข้อมูลจากแอปไปยังฮาร์ดแวร์ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับพินเสมือน:

ขั้นตอนที่ 4: รหัส Arduino

รหัส Arduino
รหัส Arduino

ได้เวลาทำโค้ดแล้ว! ไฟล์ที่ฉันให้ไว้มีโครงสร้างพื้นฐานในการรันโปรเจ็กต์ แต่คุณสามารถเปลี่ยนได้ตามต้องการ อย่างไรก็ตาม เพื่อให้ทำงานได้อย่างถูกต้อง คุณต้องแทนที่ auth char ด้วยโทเค็นที่คุณได้รับในกล่องจดหมายอีเมลของคุณ อย่าลืมเปลี่ยนตัวแปร LED_PIN และ LED_COUNT ตามการตั้งค่าของคุณ

ลักษณะการทำงานของไฟ LED ถูกกำหนดโดยตัวแปรแอนิมที่เปลี่ยนแปลงเมื่อแอปได้รับคำขอ คุณสามารถเพิ่มความเป็นไปได้สำหรับแอนิเมชั่นได้มากเท่าที่คุณต้องการ เพียงแค่เพิ่มฟังก์ชันของคุณไปยังโครงสร้างสวิตช์ในฟังก์ชัน toggleAnimation() และกำหนดการอ่านพินเสมือนที่สอดคล้องกันที่ด้านบนของโค้ด

แอนิเมชั่นที่ทำงานในลูป () เชื่อมโยงกับตัวจับเวลาที่ทำงานในช่วงเวลา 100 มิลลิวินาที สิ่งนี้จำเป็น และฉันไม่แนะนำให้เปลี่ยน เพราะมันรบกวนคำสั่ง Blynk.run() และการเชื่อมต่อจะปิดลงหากไลบรารี Blynk ตรวจพบคำขอมากเกินไปในระยะเวลาอันสั้น

แนะนำ: