กลับไปหน้ารวมไฟล์
ultrasonic-home-security-system-cameran-a127cf.md

ระบบรักษาความปลอดภัยบ้านของฉัน หรือที่เรียกว่า Cameran เป็นระบบรักษาความปลอดภัยที่เรียบง่ายและน่าเชื่อถือ Cameran ใช้ เซ็นเซอร์วัดระยะอัลตราโซนิก (Ultrasonic Distance Sensor) ในการตรวจจับว่ามีใครอยู่ห่างจากประตูบ้านเราเท่าไหร่

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

สำหรับต้นแบบนี้ ฉันออกแบบระบบให้

  • ทำงานโดยเปิดไฟ LED สีเขียว เมื่อตรวจจับการเคลื่อนไหวได้ระหว่าง 75 ซม. ถึง 100 ซม.
  • แสดงไฟเตือน LED สีเหลือง เมื่อตรวจจับการเคลื่อนไหวได้ระหว่าง 25 ซม. ถึง 75 ซม.
  • แสดงไฟ LED สีแดง พร้อมกับเสียงไซเรน เมื่อตรวจจับการเคลื่อนไหวได้ที่ระยะน้อยกว่า 25 ซม.

Perimeter Breach Detection: ระบบรักษาความปลอดภัยโซนาร์อัลตราโซนิก

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

ไขความลับของเรดาร์เสียง (pulseIn)

โมดูล HC-SR04 ไม่สามารถทำงานเป็นพิน HIGH/LOW ธรรมดาๆ ได้ มันต้องการการจัดการเรื่องเวลาอย่างแม่นยำโดยธรรมชาติ

  1. พิน Trig ต้องการพัลส์ HIGH ที่แรงและยาว 10 ไมโครวินาที เพื่อสั่งให้โมดูลลำโพงปล่อยระเบิดเสียง 8 รอบออกไป
  2. Arduino ต้องหยุดการทำงานชั่วคราวอย่างเด็ดขาดโดยใช้ pulseIn() เพื่อรอสัญญาณเอคโค่ที่สะท้อนกลับมา
  3. เพราะความเร็วเสียงคือ 343 เมตร/วินาที การหารระยะเวลาไมโครวินาทีด้วย 58.2 จะได้ระยะทางที่แท้จริงเป็นเซนติเมตร!
#define TRIG_PIN 9
#define ECHO_PIN 10
#define SIREN_PIN 8

int baselineDistance = 0; // ค่าที่วัดได้ตอนห้องว่าง!

void setup() {
  pinMode(TRIG_PIN, OUTPUT);
  pinMode(ECHO_PIN, INPUT);
  
  // จ่ายไฟและคำนวณสถานะปกติของห้องซะ!
  baselineDistance = measureDistance(); 
}

void loop() {
  int currentDistance = measureDistance();
  
  // ถ้าระยะทางลดลงฮวบฮาบ (เช่น มีคนเดินเข้ามาขวาง!)
  if (currentDistance < (baselineDistance - 15)) { 
    // ยืนยันผู้บุกรุก! เปิดไซเรนให้สุด!
    tone(SIREN_PIN, 2000); 
    delay(200);
    tone(SIREN_PIN, 1000);
    delay(200);
  }
}

สร้างสถาปัตยกรรมปรับเทียบแบบไดนามิก

ถ้าน้องเขียนโค้ดแบบเด็กใหม่ ใช้ if (distance < 100) ตายตัวเลย พอน้องย้ายเซ็นเซอร์ไปติดในทางเดินแคบๆ มันก็จะส่งสัญญาณเตือนผิดเพี้ยนตลอดเวลา!

  • การปรับเทียบแบบไดนามิกแบบสมบูรณ์นี่สำคัญมากนะตัว!
  • ใน setup() ตัว Arduino จะรันลูป 10 รอบ โดยอัตโนมัติ เพื่ออ่านค่าระยะทางของห้องตอนว่างๆ แล้วหาค่าเฉลี่ยเก็บไว้เป็น baselineDistance
  • วิธีนี้ทำให้ไม่ว่าเจ้าของบ้านจะย้ายอุปกรณ์ไปติดที่ไหน ระบบก็จะสอนตัวเองให้รู้ขนาดของสภาพแวดล้อมใหม่ได้ทุกครั้งที่เปิดเครื่อง!

อุปกรณ์ที่ต้องจัดเต็ม (Defensive Infrastructure Loadout)

  • Arduino Uno/Nano (จัดการไทม์เมอร์ระดับไมโครวินาทีสำหรับเสียงได้อย่างแม่นยำ)
  • เซ็นเซอร์วัดระยะอัลตราโซนิค HC-SR04 (ต้องมั่นใจว่าตาข่ายโลหะด้านหน้าโล่งเตียน ไม่มีอะไรบังนะ! ถ้าน้องเอาไปติดไว้หลังกระจก เซ็นเซอร์นี้ใช้การไม่ได้เลย เพราะเสียงผ่านกระจกไม่ได้!)
  • ออดพีโซ่เสียงดังระดับ High-Decibel หรือจะใช้ โมดูลรีเลย์ 5V ต่อกับไซเรนบ้าน 12V 120dB แบบของจริงก็ได้
  • คีย์แพดลับสำหรับเปิด/ปิดระบบ (เพื่อให้เจ้าของบ้านสามารถผ่านเข้า-ออกพื้นที่ได้โดยไม่ทำให้ตัวเองโดนไซเรนแห้ง!)

ตอนพี่ทำโปรเจคนี้ ก็เคยเจอปัญหาเรื่องการช็อตตอนต่อขา 5V เข้ากับกราวด์เหมือนกัน ถ้าน้องเจอปัญหาแบบนี้ ลองไปหาวิธีแก้ไขได้จากโพสต์ที่พี่เขียนไว้เกี่ยวกับเรื่องนี้ได้

ข้อมูล Frontmatter ดั้งเดิม

apps:
  - "1x Arduino IDE"
author: "theridgeguy"
category: ""
components:
  - "1x Breadboard (generic)"
  - "4x Resistor 10k ohm"
  - "2x 5 mm LED: Red"
  - "1x Buzzer"
  - "1x Ultrasonic Sensor - HC-SR04 (Generic)"
  - "1x Arduino UNO"
  - "6x Resistor 220 ohm"
  - "1x 5 mm LED: Yellow"
  - "4x Tactile Switch, Top Actuated"
  - "1x USB-A to B Cable"
  - "1x Jumper wires (generic)"
  - "2x 5 mm LED: Green"
description: "ระบบเซนเซอร์กวนๆ ที่ใช้ Ultrasonic Sensor จับระยะ ตรวจจับ \"ผู้บุกรุกวัยรุ่น\" แล้วส่งเสียงออดตึงๆ ไว้ขู่! แต่ถ้าใส่พาสเวิร์ดถูกก็ปิดได้ง่ายๆ งานนี้ใช้ Arduino จัดไป เทพๆ"
difficulty: "Intermediate"
documentationLinks: []
downloadableFiles:
  - "https://projects.arduinocontent.cc/0f82637e-eac8-4d25-ad8a-44299f2885d4.ino"
encryptedPayload: "U2FsdGVkX1+dPkPVNLwpqfdF22urqHafD3iswcm3CWmFPNoyd9bsfCC/YLR1oKaB5Spc0m/2jHKdW+cBt/3lESLnA/QAVbaPuuso4Kyshds="
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/ultrasonic-home-security-system-cameran-a127cf_cover.jpg"
lang: "en"
likes: 1
passwordHash: "c370a576fd9d79f1346f70b85eb9d36c7f91f347c91276322edf36e2edbbd3d0"
price: 299
seoDescription: "Build a DIY Ultrasonic Home Security System. Use an Ultrasonic sensor to trigger an Alarm and a Passcode to deactivate it."
tags:
  - "home automation"
  - "security"
  - "monitoring"
title: "ระบบรักษาความปลอดภัยบ้านด้วยอัลตราโซนิก (งานง่ายแต่หล่อ!)"
tools: []
videoLinks:
  - "https://www.youtube.com/embed/o1Gup36sC6U"
views: 11988