กลับไปหน้ารวมไฟล์
safeguarding-home-delivered-items-from-stray-animals-d68e62.md

Introduction

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

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

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

In Action

Working Description

1) ตรวจจับการมีอยู่ของสัตว์หรือคน

เราตรวจจับวัตถุ (สัตว์หรือคน) ด้วยเซ็นเซอร์วัดระยะอัลตราโซนิก เจ้านี่ทำงานโดยการปล่อยคลื่นเสียงที่ความถี่สูงเกินกว่าหูมนุษย์จะได้ยิน (40 kHz เทียบกับ 20Hz ถึง 20kHz ของคน) แล้วรอรับเสียงที่สะท้อนกลับมา คำนวณระยะทางจากเวลาที่ใช้

สูตร: ความเร็ว (S) = ระยะทาง (D) / เวลา (T)

ดังนั้น ระยะทาง (D) = ความเร็ว (S) x เวลา(T) – (1)

ความเร็วเสียงประมาณ 360 เมตรต่อวินาที

เวลา (T) = ผลต่างของเวลาระหว่างการปล่อยและรับเสียง / 2 (ต้องหาร 2 เพราะเสียงเดินทางไปกลับ)

จาก (1) ระยะทาง (D) = 360 x T

ตัวอย่าง ถ้าปล่อยเสียงที่ t1 = 0 วินาที และรับเสียงที่ t2 = 0.01 วินาที (ก็คือ 10 มิลลิวินาที)

แล้ว D =360 x (t2-t1)/2 = 360 x (0.01-0)/2 = 1.8 เมตร

2) ลอจิกแยกแยะคนกับสัตว์

สมมติเซ็นเซอร์ล่างคือ S1 เซ็นเซอร์บนคือ S2 ความสูงของ S1 ควรจะ:

  • ต่ำกว่าความสูงของหมาไซส์กลาง และ
  • สูงกว่าพัสดุที่เราจะปกป้อง

ความสูงของ S2 ควรจะ:

  • สูงกว่าความสูงสุดของหมา หรือลิง และ
  • ต่ำกว่าความสูงของเด็กมนุษย์อายุ 5 ขวบ

เราตั้งจุดตรวจจับ (Set Point) ไว้ที่ 40 ซม. (400 มม.) ถ้าวัตถุอยู่ใกล้กว่าเซ็นเซอร์นี้ เอาต์พุตของเซ็นเซอร์จะเป็น 1 (ตรวจจับได้) ถ้าไกลกว่าจะเป็น 0 ลอจิกที่ใช้แยกสัตว์กับคนอธิบายตามด้านล่างนี้เลย

3) บัซเซอร์กับไม้ปัด

เมื่อตรวจจับสัตว์ได้ บัซเซอร์จะส่งเสียงเตือน ถ้าสัตว์ยังไม่ไป ไม้ปัดที่ติดมอเตอร์จะขยับเพื่อไล่สัตว์อัตโนมัติ งานนี้จัดไปวัยรุ่น!

ฮาร์ดแวร์ (Hardware)

Arduino Uno ตัวนี้แหละที่เราจะใช้เป็นหัวใจหลักของโปรเจคนี้

  • มันจะคอยคุยกับเซ็นเซอร์วัดระยะอัลตราโซนิก
  • คำนวณโน่นนี่นั่นตามตรรกะที่เราต้องการ
  • สั่งให้ออดส่งเสียง
  • และควบคุมมอเตอร์ให้ขยับไม้ตี

เซ็นเซอร์วัดระยะอัลตราโซนิก (Ultrasonic Distance Sensors): เราใช้สองตัว (S1 กับ S2) เพื่อตรวจจับวัตถุที่เข้ามาใกล้ ต่อเข้ากับขา Digital I/O ของบอร์ด Arduino Uno ตรงๆ เลย

ออด (Buzzer): ใช้ส่งเสียงเตือนเมื่อเจอสัตว์ ต่อผ่านไอซีขับ ULN2803 ไปที่ขา Digital Output พิน 6 ของ Arduino Uno

เซอร์โวมอเตอร์กับไม้ตี (Servo Motor with a stick): คู่นี้แหละหน้าที่คือไล่สัตว์ที่บุกเข้ามา ต่อเข้ากับขา PWM พิน 9 ของ Arduino Uno

แบตเตอรี่ 12V: ใช้จ่ายไฟให้ทั้งระบบ พร้อมสวิตช์ปิดเปิด

แผนภาพวงจรเต็มๆ ดูได้ตามรูปด้านล่างเลยจ้า

แผนภาพวงจร (Circuit Diagram)

จัดวางฮาร์ดแวร์ทั้งหมดบนแผ่นไม้ที่ตั้งได้เองตามรูปปกโปรเจคได้เลย อย่าลืมยึดให้แน่นหนา!

ซอฟต์แวร์ (Software)

เราใช้ซอฟต์แวร์จำลองแบบบล็อกไดอะแกรมที่ชื่อว่า Computer Aided Simulation Program (CASP) ในการโปรแกรมบอร์ด เพราะพี่ไม่ค่อยคล่อง C/C++ เอง ฮ่าๆ โมเดลด้านล่างนี้สร้างขึ้นมาเพื่อให้ทำงานตามตรรกะที่เราต้องการ

โมเดลการทำงาน (Working Model)

คำอธิบายโมเดล

บล็อก S1, S2: ใช้สื่อสารกับเซ็นเซอร์อัลตราโซนิก บล็อกพวกนี้จะส่งพัลส์ไปหาเซ็นเซอร์และรับระยะเวลาของพัลส์ที่สะท้อนกลับมา แล้วคำนวณหาระยะทางตามสูตรที่บอกไว้ก่อนหน้า ผลลัพธ์ที่ได้คือระยะทางหน่วยมิลลิเมตร

บล็อกเปรียบเทียบ (Comparator) สองตัว: ใช้เปรียบเทียบระยะทางจากเซ็นเซอร์กับค่าที่ตั้งไว้ (400mm) ถ้าระยะทางน้อยกว่าค่าที่ตั้ง ผลลัพธ์จะเป็น 1 ไม่ใช่ก็เป็น 0

ตรรกะแยกแยะระหว่างคนกับสัตว์

ตามที่อธิบายไป ระบบเตือนควรทำงานเฉพาะเมื่อ S1=1 และ S2=0 เท่านั้น ดังนั้นเราจึงใช้การผสมผสานลอจิก AND กับ NOT เพื่อให้สัญญาณเตือนทำงานเมื่อมีสัตว์เข้ามาใกล้ แต่ไม่ใช่คน

ตรรกะการขยับไม้ตี (Wiper Stick Logic)

ใช้บล็อกคลื่น Sine ในการควบคุมเซอร์โวมอเตอร์ให้ขยับไม้ตีเมื่อตรวจจับสัตว์ได้

บล็อกหน่วงเวลา (Time Delay Blocks)

ใช้ ON Time Delay เพื่อให้มอเตอร์เริ่มทำงานหลังจากหน่วงเวลาสั้นๆ ใช้ OFF Time Delay เพื่อให้มอเตอร์หยุดทำงานหลังจากที่สัญญาณเตือนดับไปแล้วสักพัก

รายละเอียดทางเทคนิคเพิ่มเติม

ระบบป้องกันพัสดุอัตโนมัติ

โปรเจคนี้ใช้การจำลองที่ใช้ AI ร่วมกับฮาร์ดแวร์จริง เพื่อป้องกันอาหารหรือพัสดุที่ส่งมาถึงจากสัตว์

  • การผสานตรรกะจาก CASP: พัฒนาด้วย Computer Aided Simulation Program (CASP) ระบบจะจัดการกล่องเก็บของพิเศษ โดยใช้ตรรกะจากเซ็นเซอร์เพื่อยืนยันว่ามีคนส่งของอยู่จริงก่อนจะปลดล็อก
  • การขับไล่: ถ้าเซ็นเซอร์ตรวจจับรูปแบบที่ตรงกับสัตว์จรจัด (เช่น การเคลื่อนไหวใกล้กล่องที่มีรูปแบบการสะท้อนของอัลตราโซนิกเฉพาะ) Arduino จะสั่งให้เกิด คลื่นเสียงอัลตราโซนิกความถี่สูง ซึ่งสัตว์ส่วนใหญ่ไม่ชอบแต่คนไม่ได้ยิน

การแจ้งเตือนบนคลาวด์

  • การแจ้งเตือนผ่าน Blynk: เราสามารถต่อยอดระบบให้ส่งการแจ้งเตือนไปยังมือถือของเจ้าของได้ทันที เมื่อมีพัสดุมาส่ง และเมื่อกล่องเก็บของถูกเปิด

ข้อจำกัด & การพัฒนาต่อในอนาคต

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

2) บางครั้งเซนเซอร์ก็มีปัญหาในการตรวจจับสัตว์ที่มีขนตามตัว

ข้อจำกัดข้างต้นนี้แก้ได้ด้วยการใช้เซนเซอร์ประเภทอื่น เช่น เซนเซอร์ Passive Infrared (PIR) หรือการติดตั้งเซนเซอร์หลายตัวเป็นอาร์เรย์

ขั้นตอนการทำ

1. ดาวน์โหลดและติดตั้งซอฟต์แวร์ CASP

2. ดูวิดีโอสอนการติดตั้ง CASP

3. ดาวน์โหลดไฟล์โปรเจกต์จาก Gitlab repository แล้วแตกไฟล์ zip ออกมา

4. ต่อวงจรตามแผนภาพการเชื่อมต่อด้านบนให้เรียบร้อย

5. เปิดโปรแกรม CASP ขึ้นมา แล้วเปิดโปรเจกต์จากไฟล์ที่แตกออกมา โดยเปิดไฟล์เวิร์กสเปซชื่อ ultrasonic_dist.wsp

6. เปิดเมนู Setup Simulation Parameters แล้วตั้งค่า hardware programmer port เป็นพอร์ตอนุกรมที่ Arduino Uno ของเราต่ออยู่

7. บิลด์โมเดล แล้วโปรแกรมลงบอร์ดได้เลย

8. ระวังนิดนึง โมเดลที่โปรแกรมลง Arduino จะรันได้แค่ช่วงเวลาจำกัด (อาจจะ 20 นาทีหรือน้อยกว่านั้น ขึ้นอยู่กับลิขสิทธิ์) เพราะเราใช้เวอร์ชันฟรีของ CASP อยู่ ถ้าหยุดรันก็กดปุ่ม reset บนบอร์ด Arduino ใหม่ได้เลยจ้า

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

title: "ปกป้องพัสดุหน้าบ้านจากสัตว์จรจัดแบบจัดหนัก!"
description: "โปรเจคนี้จะมาสอนวิธีใช้เซนเซอร์ตรวจจับ แล้วขับมอเตอร์เพื่อปกป้องนมกล่องหรือของที่พึ่งส่งมา ให้รอดจากวายร้ายอย่างลิงกับหมาขี้เซา งานง่ายแต่หล่อ รับรองตึงๆ!"
author: "josh2012"
category: ""
tags:
  - "animals"
  - "casp"
  - "kids"
  - "security"
  - "home security"
views: 1324
likes: 1
price: 299
difficulty: "Easy"
components:
  - "1x USB Cable 2.0 Type A/B for Arduino Uno"
  - "1x Jumper Wires"
  - "1x 9V to 12V Battery"
  - "1x Toggle Switch, Toggle"
  - "2x Ultrasonic Sensor HC-SR04"
  - "1x ULN2803 Driver"
  - "1x Buzzer"
  - "1x Servo Module (Generic)"
  - "1x Arduino UNO"
tools: []
apps:
  - "1x Computer Aided Simulation Program (CASP)"
downloadableFiles: []
documentationLinks: []
passwordHash: "dd56a61dc2e84fd46b48412c55e3766b2e2b2c7ef7b342b4769a980b6c53712f"
encryptedPayload: "U2FsdGVkX1/0/nLFeuegLdsCs84LLnhMayLYfvztbR0XZeZVl0DTlNBBNs/GLWut4THpVmzeXpMcCmYs+sT9SEnA5/rDt21bj9Fl1JxFwcy2e7Dsz+bXWzTt85f3JWO4"
seoDescription: "Use Arduino and sensors to safeguard delivery items from stray animals. Detect and protect milk packets from monkeys and dogs automatically."
videoLinks:
  - "https://www.youtube.com/embed/mgSRg92LS6A"
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/safeguarding-home-delivered-items-from-stray-animals-d68e62_cover.jpg"
lang: "en"