🌍

ระบบวัดแรงสั่นสะเทือนแผ่นดินไหว

แสดงผล · แจ้งเตือน · วิเคราะห์

ช่วงทดสอบ

โรงพยาบาลโอเวอร์บรุค เชียงราย · ตุลาคม 2569

สารบัญ

ระบบทำอะไร

แจ้งเตือนทันที

Telegram เมื่อเกิดแผ่นดินไหวจริง

* ปัจจุบันห้องทดสอบ — รอย้ายห้องจริง

แสดงค่าสด

Dashboard ทุก 10 วินาที
(Home Assistant + Grafana)

เก็บประวัติ 365 วัน

InfluxDB สำหรับวิเคราะห์ระยะยาว

เฝ้าระวังสถานี

แจ้งเตือนเมื่อเซ็นเซอร์ขัดข้อง

เส้นทางของข้อมูล

เซ็นเซอร์

RUGON 10 จุด
วัด X/Y/Z ทุก 10 วินาที
ส่งผ่าน WiFi → MQTT

MQTT Broker

Mosquitto
194.1.0.1:1883
รับ-ส่งข้อมูล real-time

Home Assistant

80 Entities
ประมวลผล + แปลงระดับ
5 Automations

ผลลัพธ์

Telegram + Dashboard
+ InfluxDB + Grafana
+ MySQL หลักฐาน

เซ็นเซอร์ RUGON ทำงานยังไง

ภายในตัวเซ็นเซอร์

1. วัดความเร่ง 3 แกน (X, Y, Z)
2. ถอดแรงโน้มถ่วงออก
3. หาค่าสูงสุดใน 10 วินาที (peak-hold)
4. แปลงเป็นหน่วย mG
5. ตรวจจับ — ถ้าเกินเกณฑ์ → ส่ง alert

ข้อมูลที่ส่งออก (2 ชนิด)

Stream — ทุก 10 วินาที

{"X_mG": 0.54, "Y_mG": 0.35, "Z_mG": 0.54}

Alert — เมื่อมีแผ่นดินไหว

{"alert": 2, "peak_mG": 150.15,
 "name": "Khampol_F7E",
 "time": "2026-10-17T04:29:32Z"}

Entities ใน Home Assistant — 80 ตัว

30 Stream Sensors — จาก MQTT

อ่านจาก topic: <ID>/0
Entitysensor.rugon_<id>_x / _y / _z
กลไกMQTT direct-read ผ่าน mqtt.yaml
Template{{ value_json.X_mG }}
หน่วยmG (มิลิกัล)
อัปเดตทุก 10 วินาที (ตามเซ็นเซอร์ส่ง)
จำนวน3 ต่อสถานี × 10 = 30

30 Alert Sensors — จาก MQTT

อ่านจาก topic: <ID>/1 (retained)
Alert codesensor.rugon_<id>_alert
ค่า: 9=กำลังเกิด, 1=เบา, 2=กลาง, 3=รุนแรง
Peaksensor.rugon_<id>_peak
ค่าพีคสูงสุดของเหตุการณ์ (mG)
Event timesensor.rugon_<id>_event_time
เวลาเหตุการณ์ (UTC → แปลงเป็นไทย)
จำนวน3 ต่อสถานี × 10 = 30

10 Binary Sensors — จาก MQTT

อ่านจาก topic: <ID>/1
Entitybinary_sensor.rugon_<id>_vibration
กลไกON เมื่อ alert == 9 (กำลังเกิด)
OFF เมื่อ alert == 1/2/3 (จบแล้ว)
จำนวน1 ต่อสถานี × 10 = 10

10 Level Sensors — คำนวณใน HA

ไม่ได้อ่านจาก MQTT — คำนวณจาก X/Y/Z
Entitysensor.rugon_<id>_level
สูตรmax(X, Y, Z) — ค่าแกนที่แรงที่สุด
Attributelevel = 🟢 สงบ / 🟡 รับรู้ได้ / 🟠 เฝ้าระวัง / 🔴 แรงสั่นมาก
ไฟล์template.yaml — Jinja template ใน HA
จำนวน1 ต่อสถานี × 10 = 10

ตัวอย่าง Config — ผูก MQTT เข้า HA

Stream Sensor (ใน mqtt.yaml)

- name: "RUGON P260109 X"
 state_topic: "P260109/0"
 value_template: "{{ value_json.X_mG }}"
 unit_of_measurement: "mG"
 icon: mdi:vibrate
 expire_after: 60

อ่านค่า X_mG จาก JSON บน topic P260109/0
ถ้าไม่มีข้อมูล 60 วินาที → unavailable

Alert Sensors (ใน mqtt.yaml)

- name: "RUGON P260109 ALERT"
 state_topic: "P260109/1"
 value_template: "{{ value_json.alert }}"

- name: "RUGON P260109 PEAK"
 state_topic: "P260109/1"
 value_template: "{{ value_json.peak_mG }}"
 unit_of_measurement: "mG"

อ่านจาก topic P260109/1 (retained)
3 sensors อ่าน JSON fields ต่างกันจาก topic เดียวกัน

Level Sensor (ใน template.yaml)

- name: "RUGON P260109 LEVEL"
 state: "{{ [states('sensor.rugon_p260109_x') | float(0),
 states('sensor.rugon_p260109_y') | float(0),
 states('sensor.rugon_p260109_z') | float(0)] | max | round(1) }}"
 attributes:
 level: "{{ '🟢 สงบ' if max < 2 else '🟡 รับรู้ได้' if max < 10 ... }}"

คำนวณสดทุกครั้งที่ X/Y/Z เปลี่ยน — ไม่ต้องรอ MQTT ส่งใหม่

ตำแหน่งติดตั้ง 10 สถานี

อาคารหมอกัมพล

สถานีตำแหน่ง
P260109ชั้น 7 ด้านตะวันออก
S260110ชั้น 7 ด้านตะวันตก
S260111ชั้น 4 ด้านตะวันออก
S260112ชั้น 4 ด้านตะวันตก
S260113ชั้น 1

อาคารหมอบริกส์

สถานีตำแหน่ง
S260114ชั้น 6 ด้านตะวันออก
S260115ชั้น 6 ด้านตะวันตก
S260116ชั้น 3 ด้านตะวันออก
S260117ชั้น 3 ด้านตะวันตก
S260118ชั้น 1

เซ็นเซอร์ติดตั้งตั้งแต่ชั้น 1 ถึงชั้น 7 เพื่อวัดความเข้มสั่นที่ต่างกันตามความสูงของอาคาร

ระดับการแจ้งเตือน

ระดับ ค่า (mG) ความหมาย Telegram บันทึก
🟢 < 2 สงบ — สภาพปกติ — ✅
🟡 2 – 10 รับรู้ได้ — รถวิ่ง เครื่องจักร — ✅
🟠 10 – 50 เฝ้าระวัง — แรงสั่นต่อเนื่องผิดปกติ ถ้า 2 นาทีต่อเนื่อง ✅
🔴 > 50 แรงสั่นมาก — อาจเป็นแผ่นดินไหว ทันที ✅

* ระดับ 🟠 มีระบบกันสแปม — ห่างกันอย่างน้อย 15 นาที

การแจ้งเตือนผ่าน Telegram

เมื่อเกิดแผ่นดินไหว

🟠 ระดับ 2 ปานกลาง (Moderate)
📍 Khampol F7 East (P260109)
📈 พีค: 150.54 mG
🕐 17/10/2026 11:29 น.

สรุปรายวัน 08:00 น.

สรุประบบแรงสั่นสะเทือน
ออนไลน์ 10/10 • สูงสุด 0.7 mG

🟢 Khampol F7 East — 0.6 mG
🟢 Khampol F7 West — 0.5 mG
...

สถานีออฟไลน์

แจ้งเมื่อเงียบ > 2 นาที

สถานีกลับมา

แจ้งเมื่อกลับมาส่งข้อมูล

กันแจ้งซ้ำ

เช็คเวลา < 10 นาที
กัน alert เก่าจาก restart

เหตุการณ์จริงที่ตรวจพบ

16 ตุลาคม 2569

เวลา13:40 น.
ระดับ🟡 ระดับ 1 เบา (Light)
พีคสูงสุด80 mG (ชั้น 4)
ตรวจพบทุกชั้น ทุกอาคาร

17 ตุลาคม 2569

เวลา11:29 น.
ระดับ🟠 ระดับ 2 ปานกลาง
พีคสูงสุด150 mG (ชั้น 7)
ตรวจพบทุกชั้น ทุกอาคาร

ชั้นสูงสั่นแรงกว่าชั้นต่ำ

ชั้น 7 ≈ 150 mG → ชั้น 4 ≈ 80 mG → ชั้น 1 ≈ 20 mG

ตรงตามหลักฟิสิกส์ — อาคารสูงมีการแกว่งมากกว่า

Grafana Dashboard

Fleet Overview — ตาราง 10 สถานี + สถิติแบบ real-time

กราฟวิเคราะห์ย้อนหลัง

Station Detail + Heatmap — ค่าแรงสั่นรายสถานี 24 ชม. + ความเข้มตามเวลา

เหตุการณ์ย้อนหลัง 30 วัน

Event Timeline — ตารางเหตุการณ์แผ่นดินไหวพร้อมระดับและพีค

การเก็บข้อมูล

InfluxDB — กราฟวิเคราะห์

เก็บอะไรค่า level ทุก 10 วินาที
ปริมาณ~390,000 แถว/วัน
เก็บนาน365 วัน (ลบเก่าอัตโนมัติ)
ใช้ทำGrafana Dashboard

MySQL — หลักฐาน

เก็บอะไรเหตุการณ์แผ่นดินไหว
ปริมาณ~20 แถว/เหตุการณ์
เก็บนานถาวร
ใช้ทำหลักฐาน JCI + รายงาน

การเข้าถึงระบบ

Home Assistant

หน้า Dashboard ภาษาไทย แสดงค่าสด 10 สถานี

rilf-iot.ovbhospital.com/lovelace/seismic

Grafana

Dashboard วิเคราะห์ย้อนหลัง 7 panels (auto refresh 10 วินาที)

rilf-grafana.ovbhospital.com/d/rugon-seismic

การดูแลระบบ

การแจ้งเตือน Telegramระบบส่งสรุปอัตโนมัติทุกเช้า 08:00 น. และแจ้งเตือนทันทีเมื่อมีเหตุการณ์
สถานีออฟไลน์ระบบแจ้งเตือนอัตโนมัติ — ตรวจสอบ WiFi ที่ตำแหน่งนั้น
การย้ายห้อง Telegramปัจจุบันอยู่ห้องทดสอบ (OBH Debug) — รอย้ายไปห้องจริง

🌍

ระบบวัดแรงสั่นสะเทือนแผ่นดินไหว พร้อมใช้งาน

ตรวจจับจริง · แจ้งเตือนจริง · เก็บประวัติ

จัดทำโดย

RACKSYNC CO., LTD.

ตุลาคม 2569

1 / 17
│