สารบัญ:

DIY Smart LED Dimmer ควบคุมผ่าน Bluetooth: 7 ขั้นตอน
DIY Smart LED Dimmer ควบคุมผ่าน Bluetooth: 7 ขั้นตอน

วีดีโอ: DIY Smart LED Dimmer ควบคุมผ่าน Bluetooth: 7 ขั้นตอน

วีดีโอ: DIY Smart LED Dimmer ควบคุมผ่าน Bluetooth: 7 ขั้นตอน
วีดีโอ: รีวิว วิธีติดตั้ง Switch TUYA DIY mini 2CH (วิธีตั้งค่าสวิตช์ DIY mini 2ปุ่ม) เชื่อมต่อแอพ Smartlife 2024, พฤศจิกายน
Anonim
DIY Smart LED Dimmer ควบคุมผ่าน Bluetooth
DIY Smart LED Dimmer ควบคุมผ่าน Bluetooth

คำแนะนำนี้จะอธิบายวิธีสร้างเครื่องหรี่ดิจิตอลอัจฉริยะ สวิตช์หรี่ไฟคือสวิตช์ไฟทั่วไปที่ใช้ในบ้าน โรงแรม และอาคารอื่นๆ สวิตช์หรี่ไฟรุ่นเก่าเป็นแบบใช้มือ และโดยทั่วไปจะรวมสวิตช์แบบหมุน (โพเทนชิออมิเตอร์) หรือปุ่มเพื่อควบคุมระดับแสง คำแนะนำนี้อธิบายวิธีสร้างเครื่องหรี่ดิจิตอลที่มีสองวิธีในการควบคุมความเข้มของแสง สมาร์ทโฟนและปุ่มทางกายภาพ ทั้งสองโหมดสามารถทำงานร่วมกันได้อย่างราบรื่นเพื่อให้ผู้ใช้สามารถเพิ่มหรือลดความส่องสว่างจากทั้งปุ่มและสมาร์ทโฟน โปรเจ็กต์นี้ดำเนินการโดยใช้โมดูลบลูทูธ SLG46620V CMIC, HC-06, ปุ่มกด และไฟ LED

เรากำลังจะใช้ SLG46620V CMIC เนื่องจากช่วยลดส่วนประกอบโปรเจ็กต์ที่ไม่ต่อเนื่องให้เหลือน้อยที่สุด GreenPAK™ IC มีขนาดเล็กและมีส่วนประกอบที่หลากหลาย ซึ่งช่วยให้ผู้ออกแบบสามารถลดส่วนประกอบและเพิ่มคุณสมบัติใหม่ได้ นอกจากนี้ ต้นทุนโครงการจะลดลงในภายหลัง

SLG46620V ยังมีอินเทอร์เฟซการเชื่อมต่อ SPI, บล็อก PWM, FSM และบล็อกเพิ่มเติมที่มีประโยชน์มากมายในชิปขนาดเล็กเพียงตัวเดียว ส่วนประกอบเหล่านี้ช่วยให้ผู้ใช้สามารถสร้างสวิตช์หรี่ไฟอัจฉริยะที่ใช้งานได้จริง ซึ่งสามารถควบคุมได้ผ่านอุปกรณ์บลูทูธหรือปุ่มติดผนัง รองรับการหรี่แสงเป็นเวลานาน และเพิ่มคุณสมบัติที่เลือกได้โดยไม่ต้องใช้ไมโครคอนโทรลเลอร์หรือส่วนประกอบราคาแพง

ด้านล่างนี้ เราได้อธิบายขั้นตอนที่จำเป็นเพื่อให้เข้าใจว่าโซลูชันได้รับการตั้งโปรแกรมให้สร้างสวิตช์หรี่ไฟ LED อัจฉริยะที่ควบคุมผ่านบลูทูธได้อย่างไร อย่างไรก็ตาม หากคุณต้องการเพียงแค่ผลลัพธ์ของการเขียนโปรแกรม ให้ดาวน์โหลดซอฟต์แวร์ GreenPAK เพื่อดูไฟล์การออกแบบ GreenPAK ที่เสร็จสมบูรณ์แล้ว เสียบ GreenPAK Development Kit เข้ากับคอมพิวเตอร์ของคุณและกดโปรแกรมเพื่อสร้างไฟ LED อัจฉริยะที่ควบคุมผ่าน Bluetooth

ขั้นตอนที่ 1: คุณลักษณะของโครงการและอินเทอร์เฟซ

คุณสมบัติและอินเทอร์เฟซของโครงการ
คุณสมบัติและอินเทอร์เฟซของโครงการ

คุณสมบัติโครงการ:

1. สองวิธีในการควบคุม แอพมือถือและปุ่มจริง

2. การเปลี่ยนการเปิด-ปิดอย่างราบรื่นสำหรับแสง สิ่งนี้ดีต่อสุขภาพสายตาของผู้บริโภค นอกจากนี้ยังให้ความรู้สึกหรูหรายิ่งขึ้นซึ่งดึงดูดใจโรงแรมและอุตสาหกรรมบริการอื่นๆ

3. คุณสมบัติโหมดสลีป นี่จะเป็นมูลค่าเพิ่มสำหรับแอปพลิเคชันนี้ เมื่อผู้ใช้เปิดใช้งานโหมดนี้ ความสว่างของแสงจะค่อยๆ ลดลงใน 10 นาที นี้จะช่วยให้ผู้ที่ทุกข์ทรมานจากการนอนไม่หลับ นอกจากนี้ยังเป็นประโยชน์สำหรับห้องนอนเด็กและร้านค้าปลีก (เวลาปิด)

ส่วนต่อประสานโครงการ

อินเทอร์เฟซของโปรเจ็กต์มีปุ่มกดสี่ปุ่ม ซึ่งใช้เป็นอินพุต GreenPAK:

ON\OFF: เปิดไฟ ON\OFF (สตาร์ทแบบนุ่มนวล\stop)

UP: เพิ่มระดับแสง

ลง: ลดระดับแสง

โหมดสลีป: เมื่อเปิดใช้งานโหมดสลีป ความสว่างของแสงจะค่อยๆ ลดลงในช่วง 10 นาที ทำให้ผู้ใช้มีเวลาก่อนนอนและรับประกันว่าแสงจะไม่ติดค้างตลอดทั้งคืน

ระบบจะส่งสัญญาณ PWM ซึ่งจะถูกส่งต่อไปยังไฟ LED ภายนอกและไฟ LED ของโหมดสลีป

การออกแบบ GreenPAK ประกอบด้วย 4 บล็อกหลัก อย่างแรกคือ ตัวรับ UART ซึ่งรับข้อมูลจากโมดูล Bluetooth แยกคำสั่ง และส่งไปยังหน่วยควบคุม บล็อกที่สองคือชุดควบคุม ซึ่งรับคำสั่งที่มาจากตัวรับ UART หรือจากปุ่มภายนอก หน่วยควบคุมตัดสินใจดำเนินการที่จำเป็น (เปิด/ปิด เพิ่ม ลด เปิดใช้งานโหมดสลีป) หน่วยนี้ใช้งานโดยใช้ LUT

บล็อกที่สามจัดหาเครื่องกำเนิด CLK ในโครงการนี้ ใช้ตัวนับ FSM เพื่อควบคุม PWM ค่าของ FSM จะเปลี่ยนแปลง (ขึ้น, ลง) ตามคำสั่งที่กำหนดโดย 3 ความถี่ (สูง กลาง และต่ำ) ในส่วนนี้ ความถี่สามความถี่จะถูกสร้างขึ้น และ CLK ที่จำเป็นจะส่งผ่านไปยัง FSM ตามลำดับที่ต้องการ ในการเปิด/ปิดการทำงาน ความถี่สูงจะส่งผ่านไปยัง FSM เพื่อเริ่ม/หยุดแบบนุ่มนวล ในระหว่างการหรี่แสงความถี่ปานกลางจะผ่านไป ความถี่ต่ำจะผ่านในโหมดสลีปเพื่อลดค่า FSM ให้ช้าลง จากนั้นความสว่างของแสงจะลดลงอย่างช้าๆด้วย บล็อกที่สี่คือหน่วย PWM ซึ่งสร้างพัลส์ไปยัง LED ภายนอก

ขั้นตอนที่ 2: การออกแบบ GreenPAK

วิธีที่ดีที่สุดในการสร้างเครื่องหรี่โดยใช้ GreenPAK คือการใช้ FSM 8 บิตและ PWM ใน SLG46620 FSM1 มี 8 บิตและสามารถใช้ได้กับ PWM1 และ PWM2 ต้องเชื่อมต่อโมดูล Bluetooth ซึ่งหมายความว่าต้องใช้เอาต์พุตแบบขนาน SPI บิตเอาต์พุตแบบขนาน SPI 0 ถึง 7 เชื่อมต่อกับเอาต์พุต DCMP1, DMCP2 และ LF OSC CLK, OUT1, OUT0 OSC PWM0 รับเอาต์พุตจาก FSM0 (16 บิต) FSM0 ไม่หยุดที่ 255; มันเพิ่มขึ้นถึง 16383 เพื่อจำกัดค่าตัวนับที่ 8 บิต อีก FSM จะถูกเพิ่ม; FSM1 ใช้เป็นตัวชี้เพื่อทราบเมื่อตัวนับถึง 0 หรือ 255 FSM0 ถูกใช้เพื่อสร้างพัลส์ PWM เนื่องจากต้องเปลี่ยนค่าของ FSM สองค่าพร้อมกันเพื่อให้มีค่าเท่ากัน การออกแบบจึงซับซ้อนเล็กน้อย โดยใน FSM ทั้งสองมี CLK ที่กำหนดไว้ล่วงหน้า จำกัด และเลือกได้ ใช้ CNT1 และ CNT3 เป็นตัวกลางในการส่ง CLK ไปยัง FSM ทั้งสอง

การออกแบบประกอบด้วยส่วนต่าง ๆ ดังต่อไปนี้:

- เครื่องรับ UART

- ชุดควบคุม

- เครื่องกำเนิด CLK และมัลติเพล็กเซอร์

- PWM

ขั้นตอนที่ 3: ตัวรับ UART

ตัวรับ UART
ตัวรับ UART

ขั้นแรก เราต้องตั้งค่าโมดูลบลูทูธ HC06 HC06 ใช้โปรโตคอล UART สำหรับการสื่อสาร UART ย่อมาจาก Universal Asynchronous Receiver / Transmitter UART สามารถแปลงข้อมูลไปมาระหว่างรูปแบบขนานและอนุกรม ประกอบด้วยตัวรับซีเรียลถึงขนานและคอนเวอร์เตอร์ขนานกับซีเรียลซึ่งทั้งสองโอเวอร์คล็อกแยกจากกัน ข้อมูลที่ได้รับใน HC06 จะถูกส่งไปยังอุปกรณ์ GreenPAK ของเรา สถานะว่างสำหรับพิน 10 สูง อักขระทุกตัวที่ส่งเริ่มต้นด้วยลอจิกบิตเริ่มต้น LOW ตามด้วยจำนวนบิตข้อมูลที่กำหนดค่าได้ และบิตสต็อปลอจิก HIGH อย่างน้อย 1 รายการ

HC06 ส่ง 1 บิต START, 8 บิตข้อมูล และ 1 บิต STOP อัตรารับส่งข้อมูลเริ่มต้นคือ 9600 เราจะส่งไบต์ข้อมูลจาก HC06 ไปยังบล็อก SPI ของ GreenPAK SLG46620V

เนื่องจากบล็อก SPI ไม่มีการควบคุมบิต START หรือ STOP บิตเหล่านั้นจึงถูกใช้เพื่อเปิดใช้งานและปิดใช้งานสัญญาณนาฬิกา SPI (SCLK) เมื่อพิน 10 ต่ำ IC ได้รับบิตเริ่มต้น ดังนั้นเราจึงใช้ตัวตรวจจับขอบตก PDLY เพื่อระบุการเริ่มต้นของการสื่อสาร เครื่องตรวจจับขอบตกนั้นนาฬิกา DFF0 ซึ่งทำให้สัญญาณ SCLK สามารถนาฬิกาบล็อก SPI

อัตราบอดของเราคือ 9600 บิตต่อวินาที ดังนั้นช่วง SCLK ของเราต้องเท่ากับ 1/9600 = 104 µs ดังนั้นเราจึงตั้งค่าความถี่ OSC เป็น 2 MHz และใช้ CNT0 เป็นตัวแบ่งความถี่

2 MHz - 1 = 0.5 µs

(104 µs / 0.5 µs) - 1 = 207

ดังนั้น เราต้องการให้ค่าตัวนับ CNT0 เป็น 207 เพื่อให้แน่ใจว่าข้อมูลจะไม่พลาด มีการหน่วงเวลาครึ่งนาฬิกาบนนาฬิกา SPI เพื่อให้บล็อก SPI ถูกโอเวอร์คล็อกในเวลาที่เหมาะสม ทำได้โดยใช้ CNT6, 2-bit LUT1 และนาฬิกาภายนอกของบล็อก OSC เอาต์พุตของ CNT6 จะไม่สูงจนกระทั่ง 52 µs หลังจาก DFF0 โอเวอร์คล็อก ซึ่งเป็นครึ่งหนึ่งของช่วง SCLK ของเราที่ 104 µs เมื่อขึ้นสูง ประตู LUT1 AND 2 บิตจะยอมให้สัญญาณ OSC 2 MHz ผ่านเข้าสู่ EXT อินพุต CLK0 ซึ่งเอาต์พุตเชื่อมต่อกับ CNT0

ขั้นตอนที่ 4: หน่วยควบคุม

หน่วยควบคุม
หน่วยควบคุม

ในส่วนนี้ คำสั่งจะถูกดำเนินการตามไบต์ที่ได้รับจากเครื่องรับ UART หรือตามสัญญาณจากปุ่มภายนอก พิน 12, 13, 14, 15 ถูกกำหนดค่าเริ่มต้นเป็นอินพุตและเชื่อมต่อกับปุ่มภายนอก

แต่ละพินเชื่อมต่อภายในกับอินพุตเกต OR ในขณะที่อินพุตที่สองของเกตเชื่อมต่อกับสัญญาณที่สอดคล้องกันซึ่งมาจากสมาร์ทโฟนผ่าน Bluetooth ซึ่งจะปรากฏบนเอาต์พุต SPI Parallel

DFF6 ใช้เพื่อเปิดใช้งานโหมดสลีปซึ่งเอาต์พุตจะเปลี่ยนเป็นสูงโดยขอบที่เพิ่มขึ้นมาจาก LUT4 แบบ 2 บิต ในขณะที่ DFF10 ใช้เพื่อคงสถานะแสงไว้ และเอาต์พุตจะเปลี่ยนจากต่ำไปสูงและกลับกันเมื่อมีขอบที่เพิ่มขึ้นทุกด้าน จากเอาต์พุต LUT10 แบบ 3 บิต

FSM1 เป็นตัวนับ 8 บิต; มันให้พัลส์สูงที่เอาต์พุตเมื่อค่าถึง 0 หรือ 255 ดังนั้นจึงใช้เพื่อป้องกันไม่ให้ FSM0 (16 บิต) เกินค่า 255 เนื่องจากเอาต์พุตรีเซ็ต DFF และเปลี่ยนสถานะ DFF10 จากเปิดเป็นปิดและ ในทางกลับกัน หากแสงถูกควบคุมโดยปุ่ม +, - และถึงระดับสูงสุด/ต่ำสุดแล้ว

สัญญาณที่เชื่อมต่อกับอินพุต FSM1 เก็บไว้ ขึ้นไปถึง FSM0 ผ่าน P11 และ P12 เพื่อซิงโครไนซ์และคงค่าเดิมไว้บนตัวนับทั้งสอง

ขั้นตอนที่ 5: เครื่องกำเนิด CLK และมัลติเพล็กเซอร์

เครื่องกำเนิด CLK และมัลติเพล็กเซอร์
เครื่องกำเนิด CLK และมัลติเพล็กเซอร์

ในส่วนนี้ จะมีการสร้างความถี่สามความถี่ แต่จะมีเพียงหนึ่งความถี่เท่านั้นที่จะตอกบัตร FSM ในแต่ละครั้ง ความถี่แรกคือ RC OSC ซึ่งดึงมาจากเมทริกซ์ 0 ถึง P0 ความถี่ที่สองคือ LF OSC ซึ่งดึงมาจากเมทริกซ์ 0 ถึง P1 ด้วย; ความถี่ที่สามคือเอาต์พุต CNT7

LUT9 แบบ 3 บิตและ LUT11 แบบ 3 บิตอนุญาตให้ส่งผ่านความถี่เดียวตามเอาต์พุต LUT14 แบบ 3 บิต หลังจากนั้น นาฬิกาที่เลือกจะส่งไปยัง FSM0 และ FSM1 ผ่าน CNT1 และ CNT3

ขั้นตอนที่ 6: PWM

PWM
PWM

สุดท้าย ค่า FSM0 จะแปลงเป็นสัญญาณ PWM เพื่อให้ปรากฏผ่านพิน 20 ซึ่งเริ่มต้นเป็นเอาต์พุตและเชื่อมต่อกับ LED ภายนอก

ขั้นตอนที่ 7: แอพ Android

แอพ Android
แอพ Android
แอพ Android
แอพ Android
แอพ Android
แอพ Android

แอป Android มีอินเทอร์เฟซการควบคุมเสมือนคล้ายกับอินเทอร์เฟซจริง มีห้าปุ่ม; เปิด\ปิด, ขึ้น, ลง, โหมดสลีป และเชื่อมต่อ แอปพลิเคชัน Android นี้จะสามารถแปลงการกดปุ่มเป็นคำสั่งและจะส่งคำสั่งไปยังโมดูล Bluetooth เพื่อดำเนินการ

แอปนี้สร้างขึ้นด้วย MIT App Inventor ซึ่งไม่ต้องการประสบการณ์การเขียนโปรแกรมใดๆ App Inventor ช่วยให้นักพัฒนาสร้างแอปพลิเคชันสำหรับอุปกรณ์ Android OS โดยใช้เว็บเบราว์เซอร์โดยเชื่อมต่อบล็อกการเขียนโปรแกรม คุณสามารถนำเข้าแอพของเราไปยัง MIT App Inventor โดยคลิกที่โปรเจ็กต์ -> นำเข้าโปรเจ็กต์ (.aia) จากคอมพิวเตอร์ของฉัน และเลือกไฟล์.aia ที่มาพร้อมกับ App Note นี้

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

หลังจากที่เราเพิ่มปุ่มแล้ว เราจะกำหนดฟังก์ชันซอฟต์แวร์สำหรับแต่ละปุ่ม เราจะใช้ 4 บิตเพื่อแสดงสถานะของปุ่ม หนึ่งบิตสำหรับแต่ละปุ่ม ดังนั้น เมื่อคุณกดปุ่ม หมายเลขเฉพาะจะถูกส่งผ่านบลูทูธไปยังวงจรทางกายภาพ

ตัวเลขเหล่านี้แสดงในตารางที่ 1

บทสรุป

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

แนะนำ: