กลับหน้าหลัก
views
ต่อวงจร Arduino ระบบเตือนภัย ตรวจจับความเคลื่อนไหว
Last updated on

ต่อวงจร Arduino ระบบเตือนภัย ตรวจจับความเคลื่อนไหว


ต่อวงจร Arduino ระบบเตือนภัย ตรวจจับความเคลื่อนไหว

บทความนี้จะพาต่อวงจร Arduino ระบบเตือนภัยแบบครบในตัว ใช้เซ็นเซอร์ตรวจจับวัตถุ E18-D80NK จับคู่กับ Buzzer และโมดูลเสียง ISD1820 สองตัว ควบคุมเปิด-ปิดระบบด้วยรีโมทไร้สาย แสดงสถานะบนจอ LCD 1602

อุปกรณ์ที่ต้องเตรียม

อุปกรณ์จำนวน
Arduino UNO R31 บอร์ด
เซ็นเซอร์ตรวจจับวัตถุ E18-D80NK1 ตัว
Buzzer เสียงเตือน1 ตัว
โมดูลบันทึกและเล่นเสียง ISD18202 ตัว
โมดูลรีโมทไร้สาย M4 ความถี่ 315MHz1 ชุด
จอ LCD 1602 พร้อม I2C Adapter1 จอ
สาย Jumper หลากสี-

การต่อวงจร

แผนผังการต่อสายระหว่าง Arduino UNO กับอุปกรณ์ทุกตัว ระบุสีสายและหมายเลขขาของ Arduino ชัดเจน

E18-D80NK เซ็นเซอร์ตรวจจับวัตถุ

  • สายน้ำตาล (5V) → 5V ของ Arduino
  • สายน้ำเงิน (GND) → GND
  • สายดำ (Data) → ขา 2

Buzzer เสียงเตือน

  • VCC → 5V
  • GND → GND
  • I/O → ขา 3

โมดูล ISD1820 ตัวที่ 1 (ปิดระบบ)

  • VCC → 5V
  • GND → GND
  • PLAYE → ขา 4

โมดูล ISD1820 ตัวที่ 2 (เปิดระบบ)

  • VCC → 5V
  • GND → GND
  • PLAYE → ขา 5

โมดูลรีโมท M4 315MHz

  • VCC → 5V
  • GND → GND
  • D0 → ขา 8
  • D2 → ขา 9

จอ LCD 1602 (I2C)

  • VCC → 5V
  • GND → GND
  • SDA → A4
  • SCL → A5

ขั้นตอนเตรียมก่อนใช้งาน

ภาพโมดูลรีโมท M4 พร้อมวงกลมชี้ตำแหน่งขาที่ต้องบัดกรีสำหรับตั้ง Address

1. ตั้ง Address รีโมทด้วยการบัดกรี

บัดกรีขาที่ตำแหน่ง H-8-4 บนโมดูลรีโมทเพื่อสร้างรหัสเฉพาะ ป้องกันสัญญาณทับซ้อนกับรีโมทอื่นในบริเวณเดียวกัน

2. บันทึกเสียงลง ISD1820

  • กดปุ่ม REC ค้างไว้ (สูงสุด 10 วินาที)
  • บันทึกเสียง “ปิดระบบ” ลงโมดูลตัวที่ 1
  • บันทึกเสียง “เปิดระบบ” ลงโมดูลตัวที่ 2
  • กดปุ่ม PLAY เพื่อตรวจสอบว่าเสียงบันทึกได้ถูกต้อง

หมายเหตุ ปุ่ม PLAYE กดครั้งเดียวเล่นเสียงจบ แต่ปุ่ม PLAYL ต้องกดค้างไว้ ปล่อยมือแล้วเสียงหยุดทันที

3. ติดตั้ง Library สำหรับจอ LCD I2C

ดาวน์โหลด LiquidCrystal_I2C library แล้ววางไว้ในโฟลเดอร์ libraries ของ Arduino IDE (Documents/Arduino/libraries)

โค้ด Arduino ระบบเตือนภัย

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

// กำหนดขา
#define SENSOR_PIN 2
#define BUZZER_PIN 3
#define PLAYE1_PIN 4
#define PLAYE2_PIN 5
#define REMOTE_D0 8
#define REMOTE_D2 9

// สถานะระบบ
bool systemActive = false;

// ตั้งค่าจอ LCD I2C (Address 0x27 สำหรับ Module ทั่วไป)
LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup() {
  Serial.begin(9600);
  
  // ตั้งค่าขา
  pinMode(SENSOR_PIN, INPUT);
  pinMode(BUZZER_PIN, OUTPUT);
  pinMode(PLAYE1_PIN, OUTPUT);
  pinMode(PLAYE2_PIN, OUTPUT);
  pinMode(REMOTE_D0, INPUT);
  pinMode(REMOTE_D2, INPUT);
  
  // ปิดเอาต์พุตเริ่มต้น
  digitalWrite(PLAYE1_PIN, LOW);
  digitalWrite(PLAYE2_PIN, LOW);
  digitalWrite(BUZZER_PIN, LOW);
  
  // เริ่มต้นจอ LCD
  lcd.init();
  lcd.backlight();
  lcd.setCursor(0, 0);
  lcd.print("System Ready  ");
  lcd.setCursor(0, 1);
  lcd.print("Press B to ON ");
  
  Serial.println("Alarm System Ready");
}

void loop() {
  int remoteA = digitalRead(REMOTE_D0);  // ปุ่ม A - ปิดระบบ
  int remoteB = digitalRead(REMOTE_D2); // ปุ่ม B - เปิดระบบ
  int sensorStatus = digitalRead(SENSOR_PIN);
  
  // ตรวจจับการกดปุ่มรีโมท
  static bool lastRemoteA = LOW;
  static bool lastRemoteB = LOW;
  
  if (remoteA == HIGH && lastRemoteA == LOW) {
    // ปิดระบบ
    systemActive = false;
    digitalWrite(BUZZER_PIN, LOW);
    digitalWrite(PLAYE1_PIN, HIGH);
    delay(500);
    digitalWrite(PLAYE1_PIN, LOW);
    updateDisplay("SYSTEM OFF", "Press B to ON ");
    Serial.println("System OFF - Alarm deactivated");
  }
  
  if (remoteB == HIGH && lastRemoteB == LOW) {
    // เปิดระบบ
    systemActive = true;
    digitalWrite(PLAYE2_PIN, HIGH);
    delay(500);
    digitalWrite(PLAYE2_PIN, LOW);
    updateDisplay("SYSTEM ON ", "Monitoring...");
    Serial.println("System ON - Alarm activated");
  }
  
  lastRemoteA = remoteA;
  lastRemoteB = remoteB;
  
  // ตรวจจับวัตถุเมื่อระบบเปิดอยู่
  if (systemActive) {
    if (sensorStatus == 1) {
      digitalWrite(BUZZER_PIN, HIGH);
      lcd.setCursor(0, 1);
      lcd.print("ALERT!Motion!");
      Serial.print("Sensor: ");
      Serial.println(sensorStatus);
    } else {
      digitalWrite(BUZZER_PIN, LOW);
      lcd.setCursor(0, 1);
      lcd.print("Monitoring... ");
    }
  }
  
  delay(50);
}

void updateDisplay(String line1, String line2) {
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print(line1);
  lcd.setCursor(0, 1);
  lcd.print(line2);
}

จุดที่ต้องปรับ: Address ของจอ LCD I2C อาจเป็น 0x3F แทน 0x27 ขึ้นอยู่กับ Module ที่ใช้ ลองเช็คด้วย I2C Scanner sketch ก่อน

ขั้นตอนอัพโหลดและทดสอบ

  1. เปิด Arduino IDE วางโค้ดข้างบน
  2. เลือก Board: Arduino UNO / Port ที่เชื่อมต่อ
  3. กด Upload รอจนขึ้น Done uploading
  4. เปิด Serial Monitor ตั้งค่า 9600

ทดสอบเปิดระบบ

กดปุ่ม B บนรีโมท → จอ LCD แสดง “SYSTEM ON” → โมดูล ISD1820 ตัวที่ 2 เล่นเสียง “เปิดระบบ”

ทดสอบตรวจจับ

เดินเข้าใกล้ E18-D80NK → Buzzer ส่งเสียงเตือน → Serial Monitor แสดงค่าเปลี่ยนจาก 0 เป็น 1

ทดสอบปิดระบบ

กดปุ่ม A บนรีโมท → จอ LCD แสดง “SYSTEM OFF” → โมดูล ISD1820 ตัวที่ 1 เล่นเสียง “ปิดระบบ” → เซ็นเซอร์จะไม่ส่งสัญญาณไปยังบอร์ดอีก

ภาพ Arduino ที่ต่อวงจรเรียบร้อยแล้ว พร้อมจอ LCD แสดงสถานะ เซ็นเซอร์ E18-D80NK และโมดูล ISD1820 สองตัว

การปรับแต่งระยะตรวจจับ

หมุนตัวปรับค่าบน E18-D80NK เพื่อเปลี่ยนระยะตรวจจับ (3-80 ซม.) และปรับตัวปรับบนโมดูลรีโมทเพื่อเปลี่ยนระยะรับสัญญาณไร้สาย

สรุป

ระบบเตือนภัยนี้ประกอบด้วยอุปกรณ์หลัก 4 กลุ่ม เซ็นเซอร์ตรวจจับวัตถุ → ส่วนเตือนภัย (Buzzer) → ส่วนแจ้งสถานะ (LCD + เสียง) → ส่วนควบคุม (รีโมท) ข้อดีคือสามารถเช็คสถานะได้ทั้งทางจอและ Serial Monitor ปรับแต่งระยะได้ตามต้องการ

อยากทำโปรเจคแบบนี้?

รับทำโปรเจค Arduino / IoT จบงานไว ส่งงานครบ พร้อมสอน

หากต้องการ รับทำโปรเจคอาดูโน่ หรือระบบ IoT แบบเร่งด่วน สามารถดูรายละเอียดบริการได้ที่หน้าแรก

จ้างทำโปรเจคเลย

ประเมินราคาอัตโนมัติ + Reference Code

ขอให้ AI ประเมินราคาโปรเจคนี้

กรอกข้อมูลให้ครบ ระบบจะสร้างรหัสอ้างอิงและประเมินราคา/ระยะเวลาคร่าว ๆ จากรายละเอียดงาน แล้วให้กด Add LINE พร้อมพิมพ์รหัสนี้เพื่อคุยต่อ

คำถามให้ AI ประเมินแม่นขึ้น

หลังส่งฟอร์ม ระบบจะโชว์ Reference Code ให้ copy แล้วกด Add LINE เพื่อคุยต่อ ข้อมูลส่วนตัวจะไม่ถูกส่งเข้า GA4

ความคิดเห็น

รีวิวจากคนใช้งานจริง

รีวิวจากลูกค้าและคนที่เคยใช้งาน

ถ้าเคยสั่งงาน เคยอ่านหน้านี้แล้วได้ประโยชน์ หรือมีข้อเสนอแนะ ฝากรีวิวไว้ได้เลย

กำลังโหลดรีวิว...