สินค้าจากร้าน Elec2rak

DIY IoT Monitoring: ESP32 + Multi-Sensor + Node-RED (วัดระดับน้ำ / อุณหภูมิ / UV / แรงสั่น)

โปรเจกต์นี้เป็นระบบ 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

 

 

โทร +669 4004 5061
อีเมล: [email protected]
Line ID: elec2rak
Social icon

ขณะนี้ผู้เยี่ยมชม 694 คน และสมาชิกออนไลน์ 0 คน

  • เนื้อหาที่เปิดอ่าน 1568109
  • Web Links 12