กลับหน้าหลัก
views
ต่อวงจร ESP32 กับเซ็นเซอร์สั่นสะเทือน KY-002 อ่านค่าการสั่นสะเทือน
Last updated on

ต่อวงจร ESP32 กับเซ็นเซอร์สั่นสะเทือน KY-002 อ่านค่าการสั่นสะเทือน


ต่อวงจร ESP32 กับเซ็นเซอร์สั่นสะเทือน KY-002 อ่านค่าการสั่นสะเทือน

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

อุปกรณ์ที่ต้องใช้

  • บอร์ด ESP32 (หรือ ESP8266)
  • เซ็นเซอร์สั่นสะเทือน KY-002
  • LED สีแดงขนาด 5mm
  • ตัวต้านทาน 220 โอห์ม
  • บอร์ดทดลอง (Breadboard)
  • สายจัมเปอร์ ผู้-ผู้ ผู้-เมีย เมีย-เมีย
  • สาย Micro USB สำหรับupload

วงจรและการต่อสาย

การต่อวงจรเริ่มจากเซ็นเซอร์ KY-002 ก่อน โมดูลนี้มี 3 ขา คือ

ขา KY-002ขา ESP32หมายเหตุ
+ (VCC)VIN (5V)ขาไฟเลี้ยง
- (GND)GNDขากราวด์
S (Signal)D22ขาสัญญาณเอาต์พุตดิจิตอล

![วงจรการต่อ ESP32 กับ KY-002 และ LED บนบอร์ดทดลอง]

ต่อ LED ตามนี้

ขา LEDขา ESP32หมายเหตุ
ขายาว (Anode)D23ผ่าน R 220Ω
ขาสั้น (Cathode)GNDต่อร่วม GND

![ภาพวงจร LED พร้อมตัวต้านทาน 220 โอห์ม แสดงขายาว-ขาสั้น]

โค้ด Arduino สำหรับอ่านค่าเซ็นเซอร์สั่นสะเทือน

// กำหนดขาที่ใช้งาน
const int SENSOR_PIN = 22;   // ขาสัญญาณจาก KY-002
const int LED_PIN    = 23;   // ขาควบคุม LED

// ตัวแปรเก็บสถานะ
int vibrationState = 0;       // เก็บสถานะการตรวจจับ (0 = ปกติ, 1 = ตรวจพบ)

void setup() {
  Serial.begin(9600);        // เริ่ม Serial Monitor ที่ 9600 baud
  
  // ตั้งค่าขา
  pinMode(SENSOR_PIN, INPUT);
  pinMode(LED_PIN, OUTPUT);
  
  Serial.println("พร้อมรอตรวจจับการสั่นสะเทือน");
}

void loop() {
  // อ่านค่าจากเซ็นเซอร์ (HIGH = ตรวจพบ, LOW = ไม่มีแรงสั่น)
  vibrationState = digitalRead(SENSOR_PIN);
  
  if (vibrationState == HIGH) {
    // ถ้าตรวจพบการสั่น ให้ LED ติด 3 วินาที
    digitalWrite(LED_PIN, HIGH);
    Serial.println("ตรวจพบแรงสั่นสะเทือน");
    
    delay(3000);  // หน่วงเวลา 3 วินาที
    
    digitalWrite(LED_PIN, LOW);
  } else {
    // ไม่มีการสั่น
    Serial.println("ไม่พบแรงสั่นสะเทือน");
    digitalWrite(LED_PIN, LOW);
  }
  
  delay(100);  // หน่วงเวลาสั้นๆ ระหว่างรอบลูป
}

จุดที่ต้องปรับตามบอร์ดที่ใช้

  • ESP8266 (NodeMCU): เปลี่ยน SENSOR_PIN เป็น D3 หรือ D4 และ LED_PIN เป็น D7 หรือ D8
  • Arduino Uno/Nano: ใช้ขาอะนาล็อก A0-A5 สำหรับ Signal และขาดิจิตอล 2-13 สำหรับ LED

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

  1. เปิด Arduino IDE ขึ้นมา คัดลอกโค้ดด้านบนไปวาง
  2. เลือกบอร์ดที่ใช้งาน ที่ Tools → Board → เลือกบอร์ดของคุณ
  3. เลือก Port ที่เชื่อมต่อ ที่ Tools → Port
  4. กด Upload เพื่ออัพโหลดโค้ดลงบอร์ด
  5. เมื่อเสร็จแล้ว เปิด Serial Monitor ขึ้นมา
  6. ตั้งค่า baud rate เป็น 9600
  7. พิมพ์ค่าที่แสดงจะเป็น “ไม่พบแรงสั่นสะเทือน” ถ้ายังไม่มีแรงสั่น

![ภาพหน้าจอ Serial Monitor แสดงผลลัพธ์การทำงาน]

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

วิธีทดสอบง่ายๆ คือใช้มือเคาะโต๊ะเบาๆ หรือเคาะบนบอร์ดทดลอง ถ้าเซ็นเซอร์ตรวจจับได้

  • LED จะติด 3 วินาที
  • Serial Monitor จะแสดง “ตรวจพบแรงสั่นสะเทือน”

ถ้าไม่ตอบสนอง แสดงว่าแรงสั่นไม่ถึงเกณฑ์ ลองเคาะแรงขึ้นหรือเคาะโดยตรงบนเซ็นเซอร์

หลักการทำงานของ KY-002

โมดูล KY-002 ใช้สวิตช์แบบลูกสูบ (ball switch) ข้างในมีลูกโลหะเล็กๆ ไส้อยู่ เมื่อมีแรงสั่นมากพอ ลูกโลหะจะกระทบผนังและปิดวงจรไฟฟ้า ทำให้เอาต์พุตเปลี่ยนจาก LOW เป็น HIGH

ข้อจำกัดที่ต้องรู้คือ

  • ให้ค่าแค่ HIGH/LOW ไม่สามารถวัดระดับความแรงได้
  • ต้องใช้แรงสั่นเกินเกณฑ์ถึงจะทริกเกอร์ได้
  • ความไวขึ้นอยู่กับมุมติดตั้งและทิศทางการสั่น

ตัวอย่างการประยุกต์ใช้จริง

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

สรุป

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

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

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

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

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

ความคิดเห็น