สารบัญ:

โคมไฟพระอาทิตย์ขึ้นที่ควบคุมได้สว่าง: 6 ขั้นตอน
โคมไฟพระอาทิตย์ขึ้นที่ควบคุมได้สว่าง: 6 ขั้นตอน

วีดีโอ: โคมไฟพระอาทิตย์ขึ้นที่ควบคุมได้สว่าง: 6 ขั้นตอน

วีดีโอ: โคมไฟพระอาทิตย์ขึ้นที่ควบคุมได้สว่าง: 6 ขั้นตอน
วีดีโอ: เผยเคล็ดลับ! วิธีดูว่าโคมไฟโซล่าเซลล์จะสว่างแค่ไหน พร้อมการพิสูจน์ เทียบกับหลอดไฟบ้าน Daddy's Tips 2024, กรกฎาคม
Anonim
โคมไฟพระอาทิตย์ขึ้นที่ควบคุมได้สว่าง
โคมไฟพระอาทิตย์ขึ้นที่ควบคุมได้สว่าง
โคมไฟพระอาทิตย์ขึ้นที่ควบคุมได้สว่าง
โคมไฟพระอาทิตย์ขึ้นที่ควบคุมได้สว่าง

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

โครงการนี้มีจุดมุ่งหมายเพื่อแก้ปัญหาอย่างใดอย่างหนึ่ง - ความมืดในตอนเช้า

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

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

ขั้นตอนที่ 1: อาร์เรย์หลอดไฟ

โคมไฟอาเรย์
โคมไฟอาเรย์
โคมไฟอาเรย์
โคมไฟอาเรย์

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

ไม่สำคัญหรอกว่าคุณจะประกอบมันอย่างไร คุณใช้โคมไฟแบบไหนกับซ็อกเก็ตไหน ทุกสิ่งที่สำคัญ - สิ่งเหล่านี้จะต้องเป็นโคมไฟหรี่แสงได้!

ในกรณีของฉัน ฉันมีแผ่นไม้ที่มีซ็อกเก็ต GU10 7 อันติดอยู่ ทั้งหมดเชื่อมต่อเข้าด้วยกัน ฉันจะใส่มันลงในกล่องพลาสติกในภายหลัง

ขั้นตอนที่ 2: ทฤษฎีการหรี่แสง

ทฤษฎีการหรี่แสง
ทฤษฎีการหรี่แสง

ในทางทฤษฎีไม่มีความแตกต่างระหว่างทฤษฎีและการปฏิบัติ ในทางปฏิบัติก็มี

การควบคุมสวิตช์หรี่ไฟจาก ESP32/Arduino ดูเหมือนจะไม่ง่ายอย่างที่คิด ฉันมีโมดูล RobotDyn AC Light Dimmer ตัวใดตัวหนึ่ง ผู้ผลิตแนะนำห้องสมุดสำหรับสิ่งนั้น มันใช้งานไม่ได้กับ ESP32 (และมันยากมากที่จะปรับตัว เนื่องจากมันใช้การเข้าถึงรีจิสทรีเฉพาะของ ATMega ในระดับต่ำจำนวนมาก) การทำงานบน Arduino Nano ทำให้เกิดแสงวูบวาบอย่างรุนแรงในความสว่างระดับกลางต่ำ นั่นเป็นเหตุผลที่ฉันใช้เวลาศึกษาว่ามันทำงานอย่างไรและหาวิธีของตัวเอง

ทฤษฎีเล็กน้อย

โมดูลหรี่ที่เลือกใช้ TRIAC ยอดนิยม: BTA16 มีบทความมากมายเกี่ยวกับเรื่องนี้ ฉันจะพยายามสรุปที่นี่

TRIAC เป็นโมดูลที่สามารถส่งแรงดันไฟฟ้าบวกหรือลบอินพุตไปยังเอาต์พุตหรือสามารถบล็อกได้ โดยค่าเริ่มต้นจะบล็อกทุกอย่าง ในการเปิด เราควรให้สัญญาณเข้าเกตสูง 100 us จากนั้นจะเปิดค้างไว้จนกว่ากระแสไฟจะลดลงเป็นศูนย์ ซึ่งเกิดขึ้นเมื่อแรงดันไฟขาเข้าเปลี่ยนเครื่องหมาย ข้ามแรงดันไฟเป็นศูนย์ จากนั้นในรอบต่อไปนี้เราควรทำอีก 100 เราชีพจรเป็นต้น โดยการเลือกเวลาที่จะให้ชีพจร เราควบคุมความสว่าง โดยเริ่มจากจุดเริ่มต้น และจะส่งกำลังได้เกือบ 100% ทำทีหลังก็จะจาง ตรวจสอบไดอะแกรมด้านบนพร้อมคำอธิบาย

ในการสร้างพัลส์ในจุดเดียวกันของวัฏจักร เราต้องรู้ว่ามันเริ่มต้นเมื่อใด นั่นเป็นสาเหตุที่โมดูลหรี่ไฟมีตัวตรวจจับ Zero-Cross ในตัว โดยจะส่งสัญญาณ (ซึ่งเราจะจับได้เมื่อฮาร์ดแวร์ขัดจังหวะใน Arduino) ทุกครั้งที่แรงดันไฟฟ้าตัดผ่านศูนย์

ขั้นตอนที่ 3: การฝึกลดแสง

ฝึกลดแสง
ฝึกลดแสง

ใช่ นั่นเป็นวิธีที่คุณจะตื่นขึ้น ถ้าโคมไฟของคุณไม่มีแสงสลัวและนำพลังงาน 40W ทั้งหมดมาสู่ดวงตาที่ง่วงนอนของคุณ

ปัญหาทั่วไป

มีหลายประเด็นที่เราต้องแก้ไข

ริบหรี่

เวลาของไมโครคอนโทรลเลอร์ต้องแม่นยำมากในการเปิดและปิดเอาต์พุตเกต RobotDyn แนะนำห้องสมุดให้มีการขัดจังหวะตัวจับเวลาทุกๆ 100us และเปลี่ยนระดับเกตบนตัวจับเวลาเท่านั้น หมายความว่าสามารถ +/- 50 ไมโครวินาทีจากค่าที่เหมาะสมที่สุด มันให้ผลลัพธ์ที่ดีกับความสว่างสูง แต่จะกะพริบมากเมื่อความสว่างต่ำ นอกจากนี้ หากไมโครคอนโทรลเลอร์ทำสิ่งต่างๆ มากมาย ก็จะลดความแม่นยำของเวลาลง ดังนั้นจึงควรใช้ไมโครคอนโทรลเลอร์เฉพาะสำหรับสวิตช์หรี่ไฟ

ความสว่างน้อยที่สุดไฟ LED มีตัวแปลงไฟในตัวซึ่งจะปฏิเสธที่จะทำงานเมื่อมีพลังงานไม่เพียงพอ โคมไฟของฉันดูเหมือนจะทำงานได้ดีตั้งแต่ 10-11%

แม้จะมีค่านี้ แต่หลอดไฟบางดวงของฉันก็ไม่ยอมติดเมื่อสตาร์ท แม้จะเพิ่มความสว่างในภายหลัง แต่ก็ยังมืดอยู่ เมื่อเราเปลี่ยนจากสถานะ OFF เป็นความสว่างในเชิงบวก เราเริ่มต้นด้วยช่วงเวลาอุ่นเครื่อง 5 รอบ เมื่อเราให้พลังงานเต็มที่กับหลอดไฟ จากนั้นเราก็ต่อด้วยความสว่างที่ต้องการ แทบจะสังเกตไม่เห็น แต่ช่วยได้จริงๆ

ความถี่ไฟหลัก 50/60 Hz คุณจำเป็นต้องรู้ว่าต้องรอนานแค่ไหนก่อนที่จะถึงศูนย์ถัดไป มันค่อนข้างง่าย - เราแค่ดูความแตกต่างของเวลาระหว่างการขัดจังหวะสองครั้งสุดท้าย

การเปลี่ยนแปลงความสว่างทีละน้อย ESP32 ค่อนข้างช้า ใช้เวลา 0.5 วินาทีในการประมวลผล HTTP เล็กน้อยหรือแม้แต่คำขอ WebSocket ดังนั้นอย่าคาดหวังว่าการเปลี่ยนความสว่างจะราบรื่น จำเป็นต้องดำเนินการในระดับหรี่แสง นั่นเป็นเหตุผลที่ เมื่อได้รับความสว่างใหม่จากพอร์ตอนุกรม มันก็แค่กำหนดเป้าหมาย แล้วค่อยๆ เข้าใกล้มันเมื่อเวลาผ่านไป

การแก้ไขปัญหา

นี่คือรหัส Arduino ง่าย ๆ ของฉันสำหรับเครื่องหรี่ มันรอคำสั่ง (หนึ่งไบต์ที่มีความสว่างใหม่) จากอินพุตแบบอนุกรม จัดการการขัดจังหวะแบบ Zero-Cross ควบคุม TRIAC จัดการปัญหาทั้งหมดข้างต้น

ขั้นตอนที่ 4: ตัวควบคุมหลอดไฟ (ESP32)

ตัวควบคุมหลอดไฟ (ESP32)
ตัวควบคุมหลอดไฟ (ESP32)
ตัวควบคุมหลอดไฟ (ESP32)
ตัวควบคุมหลอดไฟ (ESP32)

นี่คือสคีมาการเชื่อมต่อของส่วนประกอบทั้งหมดที่ฉันมี บอร์ด ESP32 แตกต่างจากที่ฉันใช้ (Heltec) มาก ดังนั้นหมุดที่เลือกจึงดูแปลกไปหน่อย แต่ก็ยังใช้งานได้ดี อย่าลังเลที่จะใช้หมุดต่างๆ ในโครงการของคุณ

นี่คือรหัสควบคุมทั้งหมด มันค่อนข้างตรงไปตรงมา

คุณสมบัติหลัก

ควบคุมได้ หลอดไฟเชื่อมต่อกับ WiFi เริ่มเซิร์ฟเวอร์ WebSocket บนพอร์ต 81 รอคำสั่ง รูปแบบคำสั่งคือ

ขณะนี้รองรับเพียงสองคำสั่ง: "set_brightness" และ "update_settings" ซึ่ง… ค่อนข้างอธิบายตัวเอง

รับเวลาจาก NTP ฉันไม่ต้องการทำให้สิ่งต่าง ๆ ซับซ้อนเกินไปและเพิ่มนาฬิกาตามเวลาจริงในสคีมา เรามีการเข้าถึงอินเทอร์เน็ต ซึ่งหมายความว่าเราสามารถรับเวลาจริงจากเซิร์ฟเวอร์ NTP บางตัว จากนั้นติดตามเวลาปัจจุบันโดยใช้ตัวจับเวลาของระบบ

นาฬิกาปลุกพระอาทิตย์ขึ้น คุณสามารถตั้งปลุกได้หนึ่งครั้ง ให้ประโยชน์อะไร: เริ่มต้นด้วยความสว่างน้อยที่สุดและค่อยๆ เปลี่ยนเป็นความสว่างเต็มที่เป็นเวลา 10 นาที จากนั้นจะอยู่บนสองสามชั่วโมง จากนั้นจะค่อยๆดับลงภายใน 60 วินาที

พารามิเตอร์ทั้งหมดข้างต้นสามารถกำหนดค่าได้

นกร้อง. DFPlayer mini ใช้เล่นเพลง. มีคำแนะนำมากมาย แต่โดยพื้นฐานแล้ว คุณเพียงแค่เสียบการ์ด MicroSD ที่ฟอร์แมตเป็น FAT32 ด้วยไฟล์เดียวชื่อ 0001.mp3 ไฟล์นี้สามารถมีอะไรก็ได้ที่คุณชอบ ในกรณีของฉันคือเสียงนกร้อง 15 นาที (จะวนซ้ำ) และทำให้เช้าของฉันตื่นตาตื่นใจ โปรดทราบว่ามีตัวเก็บประจุขนาดใหญ่อยู่บนพลังงาน และตัวต้านทาน 1 kOhm บนสายอนุกรมระหว่าง ESP32 และ DFplayer - เป็นทางเลือก แต่ช่วยลดเสียงรบกวน

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

กำลังแสดงข้อมูลบางส่วนไปยังหน้าจอ OLED Heltec ESP32 ของฉันมีหน้าจอ SSD1306 128X64 I2C ในตัว ข้อมูลสำคัญทั้งหมดแสดงอยู่บนนั้น ฉันรู้ กล่องดูน่าเกลียด ฉันเพิ่งพิมพ์ 3 มิติ และเจาะหน้าต่างด้วยสว่าน เร็ว สกปรก แต่ได้ผล!

ขั้นตอนที่ 5: แผงควบคุม

แผงควบคุม
แผงควบคุม
แผงควบคุม
แผงควบคุม

นั่นคือหัวใจของโครงการ Raspberry Pi ที่มีจอแสดงผลขนาด 7 นิ้วแบบออริจินัล ใช้ Kivy front-end

นี่คือซอร์สโค้ดแบบเต็ม

คุณสมบัติ

เขียนด้วยภาษา Python ฉันชอบ Kivy มันคือกรอบงาน Python สำหรับส่วนต่อประสานกับผู้ใช้ ง่ายมาก แต่ยืดหยุ่นและมีประสิทธิภาพ (ใช้โค้ด C จำนวนมากภายในเพื่อประสิทธิภาพสูงและการเร่งฮาร์ดแวร์)

สภาพอากาศ แสดงอุณหภูมิปัจจุบันและความดันภายนอก หากคุณเชื่อมต่อเซ็นเซอร์ระยะไกล - อุณหภูมิภายในด้วย นอกจากนี้ยังขอและวิเคราะห์พยากรณ์อากาศสำหรับ 12 ชั่วโมงถัดไปและให้คำแนะนำเกี่ยวกับความน่าจะเป็นของฝน

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

Screensaver. Renders Game of Life บนหน้าจอหลังจากไม่มีการใช้งานเป็นระยะเวลาหนึ่ง

เคยมีมากกว่านั้น แต่สิ่งอื่น ๆ ดูเหมือนจะไร้ประโยชน์

การติดตั้ง

ฉันติดตั้งทุกอย่างด้วยตนเองบน Raspbian และตอนนี้สามารถพูดได้ว่า: อย่าทำผิดพลาดซ้ำ ใช้ KivyPie มีทุกอย่างติดตั้งไว้ล่วงหน้า

นอกจากนั้น เพียงทำตามคำแนะนำการติดตั้งในที่เก็บโค้ด

ขั้นตอนที่ 6: สนุก

โดยส่วนตัวแล้วฉันมีความสุขกับอุปกรณ์ ฉันใช้เป็นไฟหลักที่บ้านในระหว่างวัน และช่วยให้ฉันตื่นนอนตอนเช้าได้ น่าทึ่งมาก

ฉันรู้ว่าคำแนะนำนั้นไม่ละเอียดและสื่อความหมายมากนัก หากใครทำแบบเดียวกันและมีปัญหา เรายินดีที่จะช่วย!

แนะนำ: