โปรเจกต์ ระบบ Presence simulator
ปกป้องบ้านของคุณจากหัวขโมยด้วย Presence simulator เครื่องนี้
ปกป้องบ้านของคุณจากหัวขโมยด้วย Presence simulator เครื่องนี้
โปรเจกต์นี้เชื่อมต่อกับไฟบ้าน (mains) ห้ามสัมผัส Relay ในขณะที่โปรเจกต์กำลังเปิดใช้งานอยู่โดยเด็ดขาด และควรเก็บสายไฟบ้าน (mains) ให้ห่างจากส่วนประกอบอื่นๆ ของโปรเจกต์
เวลาที่ผมไปเที่ยวพักผ่อน ผมพยายามจะหลอกพวกหัวขโมยด้วยการจำลองการมีคนอยู่บ้าน โดยใช้โคมไฟที่สว่างขึ้นในช่วงเย็นและช่วงเช้า การทำแบบนี้ด้วยเครื่องตั้งเวลา (time switch) ทั่วไปนั้นทำได้ง่าย แต่ไฟมักจะเปิดและปิดในเวลาเดิมเสมอ นอกจากนี้ ระยะเวลาการเปิดไฟต้องคอยปรับตามฤดูกาลเพื่อป้องกันไม่ให้ไฟเปิดทำงานในช่วงกลางวันเมื่อคืนสั้นลง
ดังนั้นผมจึงสร้างเครื่องจำลองการมีคนอยู่บ้านอัตโนมัติด้วย Board Arduino และ LDR (light dependent resistor) โปรแกรมจะรู้ว่าเป็นเวลากลางวันหรือกลางคืนด้วย LDR มันสามารถควบคุมโคมไฟได้ 2 ดวง แต่คุณสามารถควบคุมโคมไฟจำนวนมากขึ้นได้... หากคุณอาศัยอยู่ในปราสาทหลังใหญ่
วงจรนั้นค่อนข้างเรียบง่าย
โคมไฟจะถูกเชื่อมต่อกับไฟบ้าน (mains) ผ่าน Relay ซึ่งควบคุมโดย Digital outputs สองช่องของ Board Arduino (2 และ 3)
LDR เชื่อมต่อโดยตรงกับ +5 V และต่อลง Ground ผ่าน Resistor ขนาด 10 kohms ผลลัพธ์จากวงจร Voltage divider นี้จะถูกส่งไปยัง Analog input ของ Board Arduino (A5) ระบบถูกบรรจุอยู่ในกล่องโปร่งใสเพื่อให้ LDR สามารถรับแสงสว่างโดยรอบได้ แต่ถ้าหากมีโคมไฟอยู่ในห้องเดียวกับกล่องโปร่งใส LDR อาจถูกรบกวนเมื่อโคมไฟสว่างขึ้น นี่คือเหตุผลที่มีการติดตั้ง Jack ขนาด 3.5 mm ไว้ที่ด้านข้างของกล่อง เพื่อให้สามารถเชื่อมต่อ LDR ภายนอกในขณะที่ตัดการทำงานของ LDR ภายในได้
Board Arduino ใช้พลังงานจาก USB charger ที่เสียบกับไฟบ้าน (mains)
การตรวจจับกลางวัน/กลางคืน
LDR จะวัดความสว่างของแสงโดยรอบและส่งผลลัพธ์ไปยังโปรแกรมเป็นตัวเลขตั้งแต่ 0 (มืดสนิท) ถึง 1024 (สว่างมาก) ความแตกต่างระหว่างกลางคืนและกลางวันถูกกำหนดด้วยค่า Threshold จากประสบการณ์ ผมพบว่าค่า 200 นั้นเหมาะสมสำหรับกรณีของผม แต่การเปลี่ยนผ่านระหว่างกลางคืนและกลางวันนั้นช้ามาก และเมฆอาจทำให้ความสว่างเปลี่ยนไปในระหว่างการเปลี่ยนผ่านได้ ดังนั้นเราจึงต้องใช้ Hysteresis เมื่อแสงสว่างเริ่มมา เราจะถือว่าเป็นกลางวันเมื่อค่าความสว่างมากกว่า Threshold แต่เมื่อแสงเริ่มหมดลง เราจะรอจนกว่าค่าความสว่างจะต่ำกว่า Threshold ลบด้วยค่า Hysteresis จึงจะตัดสินว่าเป็นกลางคืน ค่า Hysteresis ของผมคือ 150 แต่คุณต้องทดลองเพื่อหาค่า Threshold และ Hysteresis ของคุณเอง
อธิบายง่ายๆ คือ เมื่อความสว่างมากกว่า Threshold จะถือว่าเป็นกลางวัน เมื่อความสว่างต่ำกว่า Threshold ลบด้วย Hysteresis จะถือว่าเป็นกลางคืน และเมื่อความสว่างอยู่ระหว่าง Threshold ลบด้วย Hysteresis กับ Threshold จะไม่มีการเปลี่ยนแปลง ซึ่งอาจจะเป็นกลางคืนหรือกลางวันก็ได้ตามสถานะก่อนหน้านี้
เวลาการส่องสว่าง
เราต้องการให้โคมไฟสว่างขึ้นในช่วงเวลาสุ่มหลังจากเริ่มเข้าสู่กลางคืน และสุ่มอีกครั้งก่อนที่วันใหม่จะเริ่มขึ้น นอกจากนี้ เรายังต้องการให้การเปิดไฟช่วงเย็นเริ่มสุ่มหลังจากเข้าสู่กลางคืน และการเปิดไฟช่วงเช้าสิ้นสุดสุ่มก่อนที่จะหมดคืน ซึ่งสามารถแสดงได้ในแผนภาพต่อไปนี้:

มี 4 ช่วงเวลาที่น่าสนใจในแผนภาพนี้:
1) Latency: เวลาสุ่มระหว่างการเริ่มเข้าสู่กลางคืนและการเปิดไฟช่วงเย็น เราจะจำกัดไว้ระหว่าง 0 ถึง 30 นาที
2) Evening lighting: ระยะเวลาสุ่มระหว่าง 30 นาที ถึง 2 ชั่วโมง
3) Morning lighting: ระยะเวลาสุ่มระหว่าง 30 นาที ถึง 2 ชั่วโมง
4) Anticipation: เวลาสุ่มระหว่างสิ้นสุดการเปิดไฟช่วงเช้าและการเริ่มต้นของวันใหม่ เราจะจำกัดไว้ระหว่าง 0 ถึง 30 นาที
เราจะเรียก Limit 1 ว่าจุดเริ่มการเปิดไฟช่วงเย็น, Limit 2 คือจุดสิ้นสุดการเปิดไฟช่วงเย็น, Limit 3 คือจุดเริ่มการเปิดไฟช่วงเช้า และ Limit 4 คือจุดสิ้นสุดการเปิดไฟช่วงเช้า ในตอนเริ่มต้นของทุกเย็น โปรแกรมจะคำนวณค่าสุ่มใหม่สำหรับทั้ง 4 Limits และสำหรับโคมไฟแต่ละดวง โดยมองเป็นค่า Delay นับตั้งแต่เริ่มเข้าสู่ช่วงเย็น
แต่มีปัญหาหนึ่ง: การคำนวณ Delay สำหรับช่วงเย็นนั้นง่าย แต่ช่วงเช้าต้องมีการคาดการณ์ล่วงหน้า เนื่องจากโคมไฟต้องเปิดแล้วปิดก่อนที่จะเริ่มเช้า เราจะรู้ได้อย่างไรว่าเช้าจะมาถึงเมื่อไหร่? วิธีแก้คือใช้ LDR วัดความยาวของคืนหนึ่ง และสมมติว่าคืนถัดไปจะมีความยาวเท่ากัน ซึ่งเกือบจะเป็นจริงเสมอเว้นแต่คุณจะอาศัยอยู่แถบขั้วโลก สำหรับคืนแรกที่เรายังไม่มีการวัดค่า เราจะสมมติว่ามันยาว 12 ชั่วโมง
การทดสอบการทำงาน
เพื่อให้แน่ใจว่าระบบทำงานได้ถูกต้อง จะมีการเริ่มการทดสอบเป็นเวลา 10 วินาทีหลังจากเปิดเครื่อง ในระหว่างการทดสอบนี้ หาก LDR ได้รับแสง โคมไฟ 0 จะเปิดและโคมไฟ 1 จะปิด มิฉะนั้นจะสลับกัน เราจึงสามารถตรวจสอบได้ว่าทุกอย่างทำงานปกติหรือไม่ด้วยการสลับให้แสงและบังแสงที่ LDR
การปรับปรุงที่อาจเป็นไปได้
ในตอนนี้ระบบพร้อมใช้งานแล้ว อย่างไรก็ตาม นี่คือไอเดียบางส่วนสำหรับการปรับปรุง
ตัวอย่างเช่น คุณสามารถเปิดโคมไฟไว้ไม่กี่นาทีในช่วงกลางดึกเพื่อจำลองสถานการณ์ความต้องการเร่งด่วน
หรือคุณสามารถแทนที่โคมไฟด้วยสายไฟ Neo Pixel ที่ควบคุมโดย Board Arduino เพื่อจำลองการเปลี่ยนแปลงของแสงจากโทรทัศน์
และสุดท้าย คุณสามารถเชื่อมต่อระบบเพื่อให้สามารถติดต่อสื่อสารกับมันได้ในระหว่างที่คุณไปเที่ยวพักผ่อน
และตอนนี้ หากคุณถูกขโมยขึ้นบ้าน มันไม่ใช่ความผิดของผมนะ แต่คุณก็ได้พยายามแล้วละ
สนับสนุนเพื่อรับ Source Code หรือแอปพลิเคชันสำหรับโปรเจกต์นี้
Verified user reviews
ล็อกอินด้วยบัญชีบนเว็บนี้แล้วให้คะแนนหรือคอมเมนต์ได้เลย ระบบเก็บผ่าน Supabase ไม่ต้องใช้ GitHub แล้ว
ยังไม่มีรีวิวที่อนุมัติแล้ว เป็นคนแรกที่มาให้ความเห็นได้เลย