• ผู้เขียนสร้าง PCB ที่ใช้ ATtiny85 ซึ่งเมื่อมีไฟเข้าจะกดปุ่มแทนสามครั้ง เพื่อปรับโคมไฟกลางคืนที่เปิดขึ้นมาพร้อมความสว่างระดับ 3 ให้ลดลงเป็นระดับ 1
  • แหล่งจ่ายไฟแบบลดแรงดันด้วยคาปาซิเตอร์จ่ายกระแสได้เพียงไม่กี่ mA จึงเลือกใช้ ATtiny85 แทน ESP8266 หรือ Raspberry Pi Zero เพราะใช้กระแสน้อยกว่า 1mA ที่ 1MHz และลดลงถึงระดับ μA เมื่ออยู่ในโหมดประหยัดพลังงาน
  • วงจรสร้างโดยมี HT7333 สำหรับลด 8.3V เป็น 3.3V และ 2N3904 สำหรับชอร์ตปุ่มลงกราวด์เป็นหลัก จากนั้นออกแบบและผลิตด้วย EasyEDA และ JLCPCB
  • โปรแกรมชิปด้วย GPIO ของ Raspberry Pi 3 และ avrdude เมื่อ Home Assistant เปิดโคมไฟกลางคืน ระบบจะรอสักครู่แล้วกดปุ่มสามครั้งเพื่อสลับเป็น ความสว่างต่ำสุด โดยอัตโนมัติ
  • ไฟล์ออกแบบและโค้ด C เผยแพร่ภายใต้ ไลเซนส์ MIT แต่ใช้ได้เฉพาะกับอุปกรณ์ที่มีแรงดันภายใน 4~12V และอินพุตปุ่มถูกชอร์ตลงกราวด์เท่านั้น อุปกรณ์ไฟบ้านเชิงพาณิชย์ที่ไม่มีหม้อแปลงต้องระมัดระวังเป็นพิเศษ

การกดปุ่มสามครั้งที่ต้องทำซ้ำทุกวัน

  • Home Assistant ถูกตั้งค่าให้เปิดโคมไฟกลางคืนผ่านปลั๊กติดผนัง Zigbee เมื่อโทรศัพท์มือถือเข้าสู่โหมดโฟกัสสำหรับการนอน
  • โคมไฟกลางคืนราคาถูกมีสวิตช์สำหรับกำหนดว่าจะเปิดอัตโนมัติหรือไม่ และมีปุ่มเปลี่ยนระดับความสว่าง แต่ทุกครั้งที่เปิดเครื่องจะเริ่มที่ ความสว่างระดับ 3
    • กดปุ่มหนึ่งครั้งจะเป็นระดับ 4 กดอีกครั้งเป็นระดับ 5 และครั้งที่สามจะเป็นระดับ 1
    • เพื่อให้ได้ความสว่างต่ำสุดที่ต้องการ จึงต้องกดปุ่มสามครั้งทุกคืน
  • ลองเปิดดูภายในแล้ว แต่ไม่เห็นชื่อชิปและไม่มีตัวต้านทานปรับค่าได้สำหรับการปรับแต่ง
  • วิธีที่พบออนไลน์ซึ่งบอกว่ากดปุ่มค้างไว้ประมาณ 10 วินาทีเพื่อเปลี่ยนค่าความสว่างเริ่มต้นใน EEPROM ก็ใช้ไม่ได้กับผลิตภัณฑ์นี้

ไมโครคอนโทรลเลอร์ที่เหมาะกับพลังงานจำกัด

  • ทางออกที่เหมาะที่สุดคือใช้ ไมโครคอนโทรลเลอร์ เพื่อสร้างอินพุตปุ่มโดยอัตโนมัติ
  • โคมไฟกลางคืนลดแรงดันไฟบ้านด้วยคาปาซิเตอร์แทนหม้อแปลง ดังนั้นภาคจ่ายไฟจึงจ่ายได้เพียงไม่กี่ mA
    • ESP8266 ใน Wemos D1 Mini ต้องใช้กระแสหลายร้อย mA ระหว่างบูตและเปิดฟังก์ชันไร้สาย
    • Raspberry Pi Zero เป็นคอมพิวเตอร์ Linux เต็มรูปแบบที่ต้องบูตระบบปฏิบัติการ
    • อุปกรณ์ทั้งสองต้องมีแหล่งจ่ายไฟแยก หรือต้องมีคาปาซิเตอร์เก็บประจุขนาดใหญ่และวงจรเพิ่มเติมเพื่อรับช่วงกระแสตอนบูต
  • ตัวเลือกสุดท้ายคือ ATtiny85 ซึ่งอยู่ในตระกูล AVR เช่นเดียวกับ Arduino รุ่นคลาสสิก และสามารถเขียนโค้ดด้วย Arduino IDE ได้
    • เมื่อทำงานที่ 1MHz ใช้กระแสน้อยกว่า 1mA
    • ในโหมดประหยัดพลังงานจะลดลงถึงระดับ μA ใกล้เคียงกับนาฬิกาควอตซ์
    • LED ของโคมไฟกลางคืนใช้พลังงานมากกว่า ATtiny85 หลายพันเท่า

วงจรที่จำลองการกดปุ่มจริง

  • รางไฟภายในโคมไฟกลางคืนมีแรงดัน 8.3V และ ATtiny85 ต้องการ 3.3V จึงใช้ เรกูเลเตอร์แรงดัน HT7333
  • ทรานซิสเตอร์ 2N3904 ชอร์ตสายสัญญาณปุ่มลงกราวด์เพื่อจำลองการกดปุ่มจริง
  • อุปกรณ์รอบข้างทำหน้าที่จำกัดกระแส ป้องกันอินพุตผิดพลาด และทำให้ไฟเลี้ยงเสถียร
    • ตัวต้านทาน 1kΩ ระหว่าง ATtiny85 กับทรานซิสเตอร์จำกัดกระแสขับที่ไหลเข้าสู่ทรานซิสเตอร์
    • ตัวต้านทาน 10kΩ คงให้ทรานซิสเตอร์อยู่ในสถานะปิดระหว่างเปิดเครื่อง เพื่อป้องกันอินพุตปุ่มที่ไม่ตั้งใจ
    • คาปาซิเตอร์ขนาดเล็ก 3 ตัวช่วยกรองไฟเลี้ยงที่จ่ายให้เรกูเลเตอร์แรงดันและชิป
    • เฮดเดอร์ 3 พินเชื่อมต่อกับไฟเลี้ยง กราวด์ และสายสัญญาณปุ่ม
  • ออกแบบเป็นบอร์ดแยกต่างหากเพื่อใช้เป็นอุปกรณ์อเนกประสงค์ที่กดปุ่มแทนตามจำนวนครั้งที่กำหนด และเพื่อเรียนรู้กระบวนการผลิต PCB

ออกแบบวงจรและบอร์ดใน EasyEDA

  • ใน EasyEDA เริ่มจากเขียนผังวงจรโดยระบุชิ้นส่วนและความสัมพันธ์การเชื่อมต่อ
    • จุดเชื่อมต่อที่มีชื่อเดียวกัน เช่น GND, 3V3 จะถูกเราเตอร์เชื่อมเข้าหากัน
    • หากระบุชิ้นส่วนที่จะใช้จริง ก็สามารถนำไปใช้จัดวาง PCB และทำรายการวัสดุได้
  • ในขั้นตอนแก้ไข PCB สามารถกำหนดตำแหน่งชิ้นส่วน เส้นทางการเดินลาย รูปร่างบอร์ด และองค์ประกอบที่พิมพ์บนบอร์ดได้เอง
    • พิมพ์โลโก้โอเพนซอร์สฮาร์ดแวร์และชื่อผู้ใช้ไว้บนบอร์ด
  • วงจรเรียบง่ายจึงทำเป็น บอร์ดหน้าเดียว และไม่จำเป็นต้องปรับแก้การเดินลายที่ซับซ้อนหรือความยาวและรูปทรงของเส้นสัญญาณ

การผลิตกับ JLCPCB และการประกอบชิ้นส่วน

  • สั่งผลิตบอร์ดกับ JLCPCB โดยเลือกชิ้นส่วนจริงและเลือกว่าจะให้ประกอบให้หรือไม่
  • แม้จำนวนสั่งขั้นต่ำคือ 5 แผ่น แต่ต้องใช้จริงเพียง 1 แผ่น จึงบัดกรีชิ้นส่วนส่วนใหญ่เอง
    • ตัวต้านทานและคาปาซิเตอร์ที่มีขนาดเล็กมากมีค่าใช้จ่ายเพิ่มไม่มาก จึงใช้บริการประกอบของ JLCPCB
  • ได้รับบอร์ดภายใน 4 วัน หลังสั่งซื้อ

การโปรแกรม ATtiny85 และการตรวจสอบล่วงหน้า

  • ATtiny85 เปล่าไม่มี bootloader จึงไม่สามารถต่อ USB โดยตรงแบบ Arduino ได้ และต้องใช้โปรแกรมเมอร์แยกต่างหาก
  • โปรแกรมด้วย GPIO ของ Raspberry Pi 3 และ avrdude
    • ต่อเฮดเดอร์ของ Pi กับชิปด้วยสายจัมเปอร์ 6 เส้น แล้วรันคำสั่งเดียว
  • ก่อนเชื่อมต่อเข้ากับโคมไฟกลางคืนโดยตรง ได้ต่อ LED ที่พินเอาต์พุตเพื่อตรวจสอบการทำงานก่อน
    • พฤติกรรมสุดท้ายคือกะพริบสามครั้งแล้วหยุดค้างต่อไป
    • ในวิดีโอทดสอบมีการแก้จำนวนครั้งที่ต้องการทีหลัง จึงกะพริบสี่ครั้ง

ขั้นตอนติดตั้งและความปลอดภัยกับไฟบ้าน

  • บัดกรีบอร์ดที่เสร็จแล้วเข้าไปภายในโคมไฟกลางคืน โดยทำงานได้ยากเพราะชิ้นส่วนและพื้นที่มีขนาดเล็กมาก
  • คาปาซิเตอร์ขนาดใหญ่บนบอร์ดเดิมถูกติดตั้งสลับขั้ว และยืนยันได้ด้วย การตรวจด้วยมัลติมิเตอร์
  • เนื่องจากโคมไฟกลางคืนไม่มีหม้อแปลง เมื่อติดตั้ง PCB เพิ่มเข้าไป วงจรทั้งหมดจะเชื่อมต่อกับไฟบ้าน
    • ต้องแฟลช ATtiny85 ก่อนใส่เข้าไปในอุปกรณ์
    • หลังติดตั้งแล้ว ห้ามเชื่อมต่อสาย USB หรือ Raspberry Pi กลับเข้าไปอีก

ระบบอัตโนมัติก่อนนอนและการทำงานสุดท้าย

  • เมื่อนาฬิกาส่งสถานะเข้านอนไปยังโทรศัพท์ โทรศัพท์จะแจ้ง Home Assistant และ Home Assistant จะเปิดโคมไฟกลางคืนผ่านปลั๊ก Zigbee
  • PCB ที่ได้รับไฟจะ รอสักครู่ เพื่อไม่ให้โคมไฟกลางคืนทำงานผิดพลาด จากนั้นกดปุ่มสามครั้งเพื่อเปลี่ยนเป็นความสว่างระดับ 1
  • เห็นเงาของสายไฟภายในหลังแผ่นกระจายแสง แต่ไม่ปรากฏบนผนังห้อง จึงไม่มีปัญหาในการใช้งานจริง

ทรัพยากรโอเพนซอร์สและเงื่อนไขการใช้งาน

  • เผยแพร่ทรัพยากรต่อไปนี้ที่ tymscar/button-presser ภายใต้ ไลเซนส์ MIT
    • ไฟล์ Gerber สำหรับผลิตบอร์ดแบบเดียวกัน
    • รายการวัสดุและผังวงจร
    • โค้ด C สั้น ๆ ที่รันบน ATtiny85
  • ก่อนนำไปใช้ต้องทำการตรวจสอบด้วยมัลติมิเตอร์ 2 อย่างตามที่ระบุใน README
  • วงจรนี้ทำงานได้เฉพาะกับอุปกรณ์ที่ภายในมี รางไฟ 4~12V และเมื่อกดปุ่ม สัญญาณจะถูกชอร์ตลงกราวด์
  • อุปกรณ์ราคาถูกหลายรุ่นเข้าเงื่อนไขนี้ แต่ไม่ได้ใช้ได้กับทุกผลิตภัณฑ์ และอุปกรณ์ที่ทำงานด้วยไฟบ้านต้องตรวจสอบแนวทางความปลอดภัยก่อนลงมือ

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น