สารบัญ:

One Control Multi LED Strips: 3 ขั้นตอน
One Control Multi LED Strips: 3 ขั้นตอน
Anonim
Image
Image
One Control Multi LED Strips
One Control Multi LED Strips
One Control Multi LED Strips
One Control Multi LED Strips
One Control Multi LED Strips
One Control Multi LED Strips

ฉันมีเฟอร์นิเจอร์ 5 ชิ้นที่ต้องการติดตั้งไฟเส้น LED

ไฟ LED จะต้องถูกควบคุมจากระยะไกลด้วยตัวเลือกสำหรับเปิด/ปิดของ Alexa ไฟ LED ทั้งหมดต้องเปิดเครื่องและเปลี่ยนสีให้ตรงกันโดยกดที่รีโมทคอนโทรลเพียงครั้งเดียว พวกเขายังต้องจำสีที่เลือกล่าสุดเมื่อปิดเครื่อง

ตัวเลือกเปิด/ปิดของ Alexa นั้นควบคุมโดย ESP8266 การควบคุมระยะไกลทำได้โดยใช้ตัวควบคุมอินฟราเรดและกระจายข้อมูลสีโดยใช้เครื่องส่งและตัวรับสัญญาณ 433 MHz ราคาถูกมาก

ฉันมีการตั้งค่าเหมือนกันสำหรับไฟใต้ตู้ในห้องครัวของฉัน แต่ฉันใช้ตัวส่งและตัวรับ 315 MHz เนื่องจากฉันไม่ต้องการให้มีปฏิสัมพันธ์ใดๆ ระหว่างทั้งสอง

ขั้นตอนที่ 1: ส่วนประกอบ

ส่วนประกอบ
ส่วนประกอบ
ส่วนประกอบ
ส่วนประกอบ
ส่วนประกอบ
ส่วนประกอบ

ตามจำนวนองค์ประกอบโครงการของฉันส่วนใหญ่มีขนาดเล็กและงานส่วนใหญ่เสร็จสิ้นในซอฟต์แวร์

รีโมทคอนโทรลมาพร้อมกับแถบ LED RGB LED ราคาถูก (eBay)

แถบ LED นีโอพิกเซลที่ตั้งโปรแกรมได้ (ไม่ใช่ RGB)

Arduino pro mini (แม้ว่า Arduino ใด ๆ จะทำ)

ตัวรับอินฟาเรด

เครื่องส่งสัญญาณ 433MHz

เครื่องรับ 4 x 433MHz

OPTIONAL ESP8266 สำหรับ Alexa ON/OFF เท่านั้น (ไม่ใช่การควบคุมสี)

ทุกยูนิตใช้พลังงานจากเครื่องชาร์จโทรศัพท์มาตรฐาน

ESP8266 ใช้พลังงานจากตัวควบคุม 5v ถึง 3v ที่ป้อนโดยเครื่องชาร์จโทรศัพท์มาตรฐาน

ขั้นตอนที่ 2: มันทำงานอย่างไร

มันทำงานอย่างไร
มันทำงานอย่างไร
มันทำงานอย่างไร
มันทำงานอย่างไร

โครงการ theis มี 3 ส่วน

1) หน่วยหลัก

2) หน่วยสเลฟ

3) สวิตช์เสริมของ Alexa

ยูนิตหลักประกอบด้วย Arduino, ตัวรับสัญญาณอินฟราเรด, ตัวส่ง 433MHz และแถบ LED

Arduino ได้รับและถอดรหัสรหัสอินฟาเรดซึ่งจะควบคุมแถบนำแสงนีโอพิกเซล

เมื่อตั้งค่าสีบนยูนิตหลักแล้ว ข้อมูลจะถูกส่งไปยังยูนิตสเลฟผ่านเครื่องส่งสัญญาณ 433MHz

หน่วยสเลฟประกอบด้วย Arduino, ตัวรับสัญญาณ 433MHz และแถบ LED แบบนีโอพิกเซล

เมื่อได้รับรหัสจากยูนิตหลัก แถบ LED บนสเลฟทั้งหมดจะถูกตั้งค่าเป็นสีเดียวกัน

บันทึก:

ฉันจะใช้แถบ LED RGB แต่มีความขัดแย้งกับแถบ LED และตัวรับสัญญาณ 433MHz!

เป็นเพราะตัวจับเวลาภายในของ Arduinos การใช้ PWM บนพินมากเกินไปในขณะที่เปิดใช้งานเครื่องรับเป็นปัญหาซึ่งเป็นสาเหตุที่ฉันเลือกใช้แถบ LED ที่ตั้งโปรแกรมได้ - การควบคุมจำนวนมากบนพิน PWM เพียงอันเดียว

สวิตช์เสริมของ Alexa เป็นเพียง ESP2866-12e ที่มี 3 สวิตช์และ 2 เอาต์พุตพัลซิ่ง

ดูขั้นตอนซอฟต์แวร์สำหรับข้อมูลรายละเอียดเพิ่มเติม

การบอกว่า Alexa "เปิดไฟ" (ตั้งโปรแกรมได้โดยผู้ใช้) จะเป็นพัลส์พิน 10 ของ Arduino HIGH ซึ่งส่งรหัสเดียวกันกับปุ่ม IR transmiers ON ไฟปิดพัลส์พิน 11 สูงส่งรหัสเดียวกับปุ่มปิดเครื่องส่งสัญญาณ IR สวิตช์ควบคุมสีไม่ได้ !

โน๊ตสำคัญ

หากไม่ได้ใช้ตัวเลือก Alexa ทั้งขา Arduino 10 และ 11 จะต้องลัดวงจรลงกราวด์ไม่เช่นนั้นไฟ LED จะกะพริบ !!

ขั้นตอนที่ 3: ซอฟต์แวร์

ซอฟต์แวร์
ซอฟต์แวร์
ซอฟต์แวร์
ซอฟต์แวร์

ซอฟต์แวร์มี 3 ส่วน

1)หน่วยหลัก (leddir433-V2_RXTX.ino)

2) หน่วยสเลฟ (IR_rxarduino_V2.ino)

3} ซอฟต์แวร์สวิตช์เสริมของ Alexa ควรคัดลอกไฟล์ที่เหลืออีก 6 ไฟล์ลงในโฟลเดอร์เดียวก่อนอัปโหลดไปยัง ESP8266

หน่วยหลัก

พิน 2 บนยูนิตหลักที่เชื่อมต่อกับตัวรับสัญญาณ IR

Pin 6 เชื่อมต่อกับ Data ในแถบ LED

Pin 12 เชื่อมต่อกับเครื่องส่งสัญญาณ 433MHz

มีอาร์เรย์ที่เก็บรหัสจากตัวรับสัญญาณ IR ระดับ RG & B (0 - 255 ฉันใช้งานที่ความสว่างประมาณ 20% เท่านั้น) และพารามิเตอร์สุดท้าย (1 หรือ 0) ถูกใช้เป็นแฟล็ก จำ (1) หรือลืม (0) รหัสล่าสุดที่ได้รับ เมื่อเปิดไฟ LED ระบบจะใช้สีที่เลือกล่าสุด ฉันไม่ต้องการจำรหัสปุ่มเปิดและปิด เพียงแค่รหัสสี

หมายเหตุ: หากไม่ได้ใช้ตัวเลือก Alexa พิน 10 และ 11 ของ Arduino จะต้องเชื่อมต่อกับ 0v

หน่วยทาส

พินรับของเครื่องรับ 433MHz เชื่อมต่อกับพิน 2 ของ Arduino

แถบ LED เชื่อมต่อกับขา 6

แถบ LED ถูกกำหนดเป็นสีของรหัสที่ได้รับ

บันทึก:

ฉันเพิ่มแถบ LED ใหม่ไว้ด้านหลังโซฟา ดังนั้นฉันต้องการให้ไฟ LED สว่างกว่าในตู้

ฉันเพิ่งแก้ไขบรรทัด BOLD เพื่อคูณค่าที่ได้รับด้วย 2 โดยปกติแล้ว *2 จะถูกละเว้น !

โมฆะ settrip (int r, int g, int b){

สำหรับ (int n=0;n < N_LEDS;n++)

{ // Serial.println (n);

strip.setPixelColor(n, r*2, g*2, b*2); // strip.setPixelColor(n, r, g, b);

}

แถบ.show();

inString="";

msg=" ";

}

สวิตช์ Alexa

ฉันได้สร้าง (และใช้) 8 สวิตช์ของ Alexa วงจรนั้นเรียบง่ายและงานทั้งหมดเสร็จสิ้นในซอฟต์แวร์

ฉันไม่สามารถรับเครดิตสำหรับรหัสใด ๆ ฉันเพิ่งแก้ไขผลลัพธ์

เป็นการตั้งค่าปกติสำหรับการเขียนโปรแกรม ESP8266 และมี 'How To' มากมายบนเว็บ

เมื่อเปิดเครื่องครั้งแรก ESP จะตรวจสอบเพื่อดูว่าเคยเชื่อมต่อกับจุดเข้าใช้งานก่อนหน้านี้หรือไม่ หากไม่มีหรือจุดเชื่อมต่อก่อนหน้าไม่สามารถใช้งานได้อีกต่อไป จุดเชื่อมต่อดังกล่าวจะตั้งค่าให้เป็นจุดเชื่อมต่อพร้อมหน้าเว็บเพื่อให้คุณสามารถใส่ข้อมูลรับรองเราเตอร์และวลีของ Alexa เช่น 'Ambient Lights' หรือ 'Table โคมไฟ' ฯลฯ

วลี Alexa ต้องลงท้ายด้วย '*' เช่น Table Lamp*

พิน 4 ของ ESP ไปที่พิน 10 ของ Arduino

พิน 12 ของ ESP ไปที่พิน 11 ของ Arduino

Pin 5 เป็นเอาต์พุตเสริมสำหรับ LED พร้อมตัวต้านทานเพื่อแสดงการเชื่อมต่อ wifi (ฉันไม่ได้ใช้สิ่งนี้)

หากพิน 13 ของ ESP ต่อสายดิน (0v) ระหว่างเปิดเครื่อง วลีของ Alexa และข้อมูลรับรองเราเตอร์ล่าสุดจะถูกลบออก

การตั้งค่าเริ่มต้นหรือการตั้งค่าหลังจากต่อสายดินพิน 13 แล้ว (รีเซ็ตพารามิเตอร์)

หลังจากตั้งโปรแกรม ESP8266 หรือรีเซ็ตพารามิเตอร์แล้ว ควรเห็นสิ่งต่อไปนี้บนจอภาพอนุกรม Arduino:-

*WM: กำลังกำหนดค่าจุดเชื่อมต่อ… *WM: AutoConnectAP

*WM: ที่อยู่ IP ของ AP:

*WM: 192.168.4.1

*WM: เซิร์ฟเวอร์ HTTP เริ่มทำงาน

ตอนนี้ บนพีซีหรืออุปกรณ์มือถือ ไปที่การตั้งค่า wifi และเลือก AutoConnectAP

เปิดเบราว์เซอร์และในแถบที่อยู่พิมพ์ 192.168.4.1 (ดูรูป)

เลือก 'กำหนดค่า Wifi'

เลือกเราเตอร์ของคุณจากรายการและป้อนรหัสผ่านและวลีของ Alexa - อย่าลืม *

ตอนนี้ รีเซ็ต ESP

ไปที่แอป Alexa หรือขอให้เธอค้นหาอุปกรณ์ อุปกรณ์ใหม่จะถูกค้นพบ

ตอนนี้ใช้ Alexa เพื่อเปิดและปิดไฟได้แล้ว

แนะนำ: