โปรเจกต์นี้เป็นระบบ IoT Monitoring แบบครบเครื่อง ใช้ ESP32-S2 เชื่อมต่อเซนเซอร์หลายตัว แล้วส่งข้อมูลไปแสดงผลบน Node-RED แบบ Real-time
เหมาะสำหรับงาน:
- ตรวจระดับน้ำ
- ตรวจสภาพอากาศ
- ตรวจ UV
- ตรวจแรงสั่นสะเทือน (Seismic DIY)
🧩 อุปกรณ์ที่ใช้ในระบบ
1️⃣ Ultrasonic Sensor (A0221AU)
เซนเซอร์วัดระยะทางแบบ UART
- ใช้ตรวจระดับน้ำ เช่น ในถัง วัดระยะเป็น mm → แปลงเป็น cm
- ใช้งานผ่าน Serial (RX/TX)
distance_raw = (data_buffer[1] << 8) | data_buffer[2];
level_cm = distance_raw / 10.0;
📌 ใช้สำหรับ:
วัดระดับน้ำ ถังเก็บน้ำ / บ่อ / silo
2️⃣ Temperature & Humidity Sensor (AHT30)
ใช้เซนเซอร์ AHT30 ผ่าน I2C วัดอุณหภูมิ (°C) วัดความชื้น (%RH)
aht.getEvent(&humEvent, &tempEvent);
📌 ใช้สำหรับ:
- ตรวจสภาพอากาศ
- Smart Farm / Greenhouse
3️⃣ UV Sensor (GUVA-S12SD) เซนเซอร์ GUVA-S12SD
ใช้วัดรังสี UV
- Output เป็นแรงดัน 0–5V
- ต้องใช้ Voltage Divider ลดลงมาเข้า ESP32
float uv_index = v_sensor / 0.1;
📌 ใช้สำหรับ:
- ตรวจ UV กลางแจ้ง
- ระบบเตือนแดดแรง
4️⃣ Voltage Sensor (Battery Monitor)
ใช้วงจรแบ่งแรงดัน (Voltage Divider)
vin = vout * ((R1 + R2) / R2);
📌 ใช้สำหรับ:
- ตรวจแบตเตอรี่
- ระบบ Solar / Backup
5️⃣ Seismic Sensor (GY-521 / MPU6050)
ใช้โมดูล MPU-6050 (บอร์ด GY-521)
วัดแรงเร่ง 3 แกน → ใช้เป็น Mini Seismometer
float totalAccel = sqrt(ax*ax + ay*ay + az*az);
float vibration = totalAccel - 1.0;
📌 ใช้สำหรับ:
- ตรวจแรงสั่น
- ตรวจเครื่องจักร
- DIY earthquake monitor
📡 โครงสร้างระบบ
ESP32 → MQTT → Node-RED → Dashboard
ข้อมูลที่ส่ง:
{
"level": 5.2,
"temp": 28.3,
"humi": 55.2,
"vdc": 4.12,
"uv_index": 3.2,
"seismic": 0.0756,
"seismic_index": 4,
"ssid": "cococraft",
"ip": "192.168.1.123",
"rssi": -67
}
seismic = raw filtered g
seismic_index = scaled 0–10 (like UV index), ready for Node-RED dashboard gauge, chart, or trigger nodes.
🔄 แปลงค่าเป็น “Seismic Index” ด้วย JSONata
เพื่อให้เข้าใจง่ายเหมือน UV Index
เราจะใช้ Node-RED แปลงค่า seismic เป็นระดับ 0–10
🧩 ตั้งค่าใน ChangeNode
- Set → msg.payload.seismic_index
- To → Expression (JSONata)
🏗️ เทคนิคติดตั้ง (สำคัญมาก)
เพื่อให้วัดได้แม่น:
- ยึดบอร์ด GY-521 ให้แน่น
- วางบนพื้นแข็ง (คอนกรีตดีที่สุด)
- หลีกเลี่ยงโต๊ะหรือชั้นวาง
- ห่างจากพัดลมหรือเครื่องสั่น
⚠️ ข้อจำกัด
แม้ MPU-6050 จะใช้งานได้ดีในระดับ DIY แต่:
- ไม่สามารถวัดระดับ µg แบบเครื่องมือวิทยาศาสตร์ได้
- มี noise ประมาณ 0.002–0.005g
- เหมาะกับการตรวจจับแรงสั่นใกล้ตัวมากกว่าแผ่นดินไหวจริง
🚀 ต่อยอด
คุณสามารถต่อยอดได้ เช่น:
- ทำ Dashboard บน Node-RED
- ตั้ง Alert เมื่อ seismic > threshold
- บันทึกข้อมูลลงฐานข้อมูล
- ใช้ร่วมกับระบบ IoT เช่น Smart Home
📌 สรุป
โปรเจกต์นี้รวมเซนเซอร์หลายชนิดในบอร์ดเดียว:
- 📏 ระดับน้ำ → A0221AU
- 🌡️ อุณหภูมิ/ความชื้น → AHT30
- ☀️ UV → GUVA-S12SD
- 🔋 แรงดัน → Voltage Divider
- 🌍 แรงสั่น → MPU6050
ทั้งหมดเชื่อมต่อกับ Node-RED เพื่อแสดงผลแบบ Real-time

฿1,278.57
