Journal

วิธีติดตั้งระบบตรวจจับแผ่นดินไหวด้วย MPU6050 และ ESPHome ทำเองได้ที่บ้าน

How to Install an Earthquake Detection System with MPU6050 and ESPHome at Home

16 พฤษภาคม 2569 · 2 นาที
24.5°C · 52%

MPU6050 คืออะไร

MPU6050 เป็นชิปเซ็นเซอร์ผลิตโดย InvenSense วัดการเคลื่อนไหวแบบ 6 แกน ประกอบด้วย Accelerometer 3 แกนและ Gyroscope 3 แกน ความละเอียด 16-bit ความถี่การสุ่มตัวอย่างสูงสุด 1,000 Hz รองรับการสื่อสารผ่าน I2C และ SPI ราคาประมาณ 50-150 บาทในไทย เหมาะสำหรับตรวจจับการสั่นสะเทือนที่เกิดจากแผ่นดินไหวเพราะตรวจพบการเปลี่ยนแปลงความเร่งในแนวแกน X Y และ Z พร้อมกัน

ESPHome คืออะไรและทำไมถึงใช้

ESPHome เป็น Firmware แบบ Open Source สำหรับ ESP32 และ ESP8266 ที่ออกแบบมาให้ทำงานร่วมกับ Home Assistant ได้อย่างสมบูรณ์ การตั้งค่าทำผ่านไฟล์ YAML ที่อ่านง่าย ไม่จำเป็นต้องเขียนโค้ด C++ เองแต่อย่างใด ESPHome รองรับ MPU6050 ผ่าน Component ในตัว จึงตั้งค่าได้ในไม่กี่บรรทัด

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

อุปกรณ์หลักประกอบด้วย MPU6050 1 ตัว ESP32 หรือ ESP8266 NodeMCU 1 ตัว สาย Dupont เพศผู้-เพศเมีย 4 เส้น สายไมโคร USB 1 เส้น และคอมพิวเตอร์ที่ติดตั้ง Home Assistant แล้ว ทั้งหมดหาซื้อได้ที่ร้านอิเล็กทรอนิกส์ทั่วไปหรือ Shopee/Lazada ราคารวมไม่เกิน 500 บาท

การต่อสาย

สำหรับ ESP32 ต่อสายดังนี้ VCC ของ MPU6050 ต่อกับ 3.3V ของ ESP32 GND ต่อกับ GND SDA ต่อกับ GPIO21 และ SCL ต่อกับ GPIO22 สำหรับ ESP8266 NodeMCU ใช้ SDA ต่อกับ GPIO4 (D2) และ SCL ต่อกับ GPIO5 (D1) ส่วน VCC และ GND เหมือนกัน ควรตรวจสอบ Pinout ของบอร์ดที่ใช้ก่อนต่อสายทุกครั้ง

ติดตั้ง ESPHome และสร้างอุปกรณ์ใหม่

เปิด Home Assistant ไปที่ Settings เลือก Add-ons แล้วติดตั้ง ESPHome Add-on จาก Add-on Store หลังติดตั้งเสร็จ เปิด ESPHome Dashboard สร้างอุปกรณ์ใหม่ ตั้งชื่อ เลือกประเภทบอร์ด และเพิ่ม YAML Configuration สำหรับ MPU6050 ดังนี้

i2c หัวข้อ sda ระบุ 21 scl ระบุ 22 sensor platform ระบุ mpu6050 address ระบุ 0x68 accel_x name ระบุ Accel X accel_y name ระบุ Accel Y accel_z name ระบุ Accel Z update_interval ระบุ 100ms

จากนั้นกด Install และ ESPHome จะอัปโหลด Firmware ไปยังบอร์ดผ่าน USB โดยอัตโนมัติ

ตั้งค่า Automation ใน Home Assistant

หลังจากบอร์ดออนไลน์ Home Assistant จะตรวจพบเซ็นเซอร์โดยอัตโนมัติผ่าน Auto-Discovery จากนั้นสร้าง Automation โดยกำหนด Trigger เป็น Numeric State ของ Accel X หรือ Y หรือ Z เกินค่า Threshold ที่กำหนด เช่น 0.5g และกำหนด Action ให้ส่ง Notification ไปยังมือถือ เปิดไฟฉุกเฉิน และปลดล็อกประตูทางออก

ทดสอบระบบโดยการเขย่าเซ็นเซอร์เบา ๆ เพื่อดูว่า Automation ทำงานถูกต้องหรือไม่ ปรับค่า Threshold ตามความเหมาะสมกับสภาพแวดล้อมจริง

เทคนิคขั้นสูง

สำหรับบ้านหลายชั้น ติดตั้ง MPU6050 หลายตัวแยกตามชั้น แต่ละตัวรายงานกลับ Home Assistant แยกกัน ช่วยระบุพื้นที่ที่ได้รับแรงสั่นสะเทือนมากที่สุด สำหรับการวิเคราะห์ข้อมูล ใช้ Node-RED สร้าง Dashboard แสดงกราฟ Real-Time หรือบันทึกข้อมูลไปยัง InfluxDB และ Grafana เพื่อวิเคราะห์แนวโน้มการสั่นในระยะยาว หรือส่งข้อมูลไปยัง Google Sheets ผ่าน Google Apps Script เพื่อเก็บบันทึกเหตุการณ์

คำถามที่พบบ่อย

MPU6050 เหมาะสำหรับตรวจจับแผ่นดินไหวหรือไม่
ใช่ MPU6050 มีความละเอียด 16-bit และความถี่ 1,000 Hz เพียงพอสำหรับตรวจจับแรงสั่นสะเทือนในช่วงความรุนแรงที่เกี่ยวข้องกับแผ่นดินไหว โดยเฉพาะระดับ 3.5 ริกเตอร์ขึ้นไป
ต้องเขียนโค้ดเองหรือไม่ในการติดตั้งระบบนี้
ไม่จำเป็น ESPHome ใช้ไฟล์ YAML แบบอ่านง่ายในการตั้งค่า และ Home Assistant Auto-Discovery จะตรวจพบเซ็นเซอร์โดยอัตโนมัติ ไม่ต้องเขียนโค้ด C++ หรือ Python
ความแตกต่างในการต่อสายระหว่าง ESP32 และ ESP8266 คืออะไร
ESP32 ใช้ SDA บน GPIO21 และ SCL บน GPIO22 ส่วน ESP8266 NodeMCU ใช้ SDA บน GPIO4 (D2) และ SCL บน GPIO5 (D1) ควรตรวจสอบ Pinout ของบอร์ดก่อนต่อสายทุกครั้ง
จะทดสอบระบบได้อย่างไรโดยไม่ต้องรอแผ่นดินไหวจริง
เขย่าเซ็นเซอร์เบา ๆ ด้วยมือแล้วดูว่า Automation ใน Home Assistant ทำงานหรือไม่ หรือปรับค่า Threshold ให้ต่ำลงชั่วคราวเพื่อทดสอบ แล้วเพิ่มกลับเมื่อยืนยันว่าระบบทำงานถูกต้อง
ติดตั้งเซ็นเซอร์หลายตัวในบ้านหลายชั้นได้หรือไม่
ได้ ติดตั้ง MPU6050 หลายตัวแยกตามชั้นหรือพื้นที่ แต่ละตัวต่อกับ ESP32 แยกกันและเชื่อมต่อกับ Home Assistant เดียวกัน เพื่อตรวจสอบแรงสั่นสะเทือนแยกตามโซน