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

ต่อใช้งานเซ็นเซอร์วัดการสั่นสะเทือน KY-002 กับ ESP8266


ต่อใช้งานเซ็นเซอร์วัดการสั่นสะเทือน KY-002 กับ ESP8266

บทความนี้จะสอนวิธีต่อใช้งานเซ็นเซอร์ตรวจจับการสั่นสะเทือน KY-002 กับบอร์ด ESP8266 โดยเขียนโค้ดให้อ่านค่าแรงสั่นสะเทือนผ่าน Serial Monitor และสั่งให้ LED ติดเมื่อตรวจพบการสั่นสะเทือน

แผนภาพวงจร ESP8266 ต่อกับ KY-002 และ LED บน Breadboard

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

  • บอร์ด NodeMCU ESP8266 V2
  • เซ็นเซอร์ตรวจจับการสั่นสะเทือน KY-002
  • LED สีแดงขนาด 5mm
  • ตัวต้านทาน 220 Ohm
  • บอร์ดทดลอง MB-102 830 Point
  • สายไฟจัมเปอร์ ผู้-ผู้, ผู้-เมีย, เมีย-เมีย
  • สาย Micro USB สำหรับ Upload โค้ด

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

ต่ออุปกรณ์ตามนี้

ESP8266KY-002
Vin (5V)+
GND-
D2S
ESP8266LED
D1ขายาว (Anode)
GNDตัวต้านทาน 220 Ohm → ขาสั้น (Cathode)
ตารางแสดงการต่อสายระหว่าง ESP8266 กับ KY-002 และ LED

โค้ด Arduino สำหรับ ESP8266

// กำหนดขาเชื่อมต่อ
const int sensorPin = D2;    // ขา Signal ของ KY-002
const int ledPin = D1;       // ขาที่ต่อกับ LED

void setup() {
  Serial.begin(9600);
  pinMode(sensorPin, INPUT);
  pinMode(ledPin, OUTPUT);
  
  // ดึงสถานะเริ่มต้นของ Sensor
  int sensorState = digitalRead(sensorPin);
  Serial.print("Initial sensor state: ");
  Serial.println(sensorState == LOW ? "ตรวจพบการสั่นสะเทือน" : "ไม่พบแรงสั่นสะเทือน");
}

void loop() {
  int sensorState = digitalRead(sensorPin);
  
  if (sensorState == LOW) {
    // ตรวจพบการสั่นสะเทือน
    digitalWrite(ledPin, HIGH);
    Serial.println("ตรวจพบแรงสั่นสะเทือน");
    delay(3000);  // LED ติด 3 วินาที
    digitalWrite(ledPin, LOW);
  } else {
    // ไม่มีการสั่นสะเทือน
    Serial.println("ไม่พบแรงสั่นสะเทือน");
  }
  
  delay(500);  // หน่วงเวลาระหว่างการอ่านค่า
}

หมายเหตุ: โค้ดนี้เป็นตัวอย่างพื้นฐาน เหมาะสำหรับทดลองเข้าใจหลักการทำงาน ถ้าต้องการให้ตรวจจับได้แม่นยำขึ้นควรใช้ interrupt หรือ debounce logic

ขั้นตอนการอัปโหลดโค้ด

  1. เปิดโปรแกรม Arduino IDE
  2. ตั้งค่า Board เป็น NodeMCU 1.0 (ESP-12E Module) ที่ Tools → Board
  3. เลือก Port ที่เชื่อมต่อที่ Tools → Port
  4. กดปุ่ม Upload
  5. เปิด Serial Monitor แล้วตั้ง Baud Rate เป็น 9600
หน้าจอ Serial Monitor แสดงข้อความไม่พบแรงสั่นสะเทือนและตรวจพบแรงสั่นสะเทือน

ทดสอบการทำงาน

เมื่ออัปโหลดโค้ดเสร็จแล้วให้เปิด Serial Monitor ดู

  • ถ้ายังไม่มีแรงสั่นสะเทือน จะขึ้นข้อความ “ไม่พบแรงสั่นสะเทือน” ทุก 0.5 วินาที
  • ลองเคาะโต๊ะหรือเขย่าบอร์ดเบาๆ จะเห็น LED ติดและข้อความเปลี่ยนเป็น “ตรวจพบแรงสั่นสะเทือน” ค้าง 3 วินาที
  • ถ้าเขย่าแรงขึ้น LED ก็จะติดชัดเจนขึ้น

ข้อควรระวัง

  • ขา Vin ของ ESP8266 รับไฟได้ 5V แต่ logic level ของ GPIO จะอยู่ที่ 3.3V ดังนั้น KY-002 ที่ใช้ 5V จะส่งสัญญาณ HIGH ออกมาเป็น 5V ซึ่งอาจทำให้ ESP8266 อ่านค่าผิดเพี้ยนได้ แนะนำให้ใช้วงจรแบ่งแรงดันหรือต่อผ่านขา 3.3V แทน
  • เซ็นเซอร์ KY-002 เป็น mechanical switch อาจเกิด bounce ได้ ควรเพิ่ม debounce ถ้าต้องการตรวจจับถี่

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

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

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

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

ความคิดเห็น