คู่มือการใช้งาน IoT Dashboard

หน้าหลัก Dashboard
ภาพรวมระบบ

IoT Dashboard เป็นระบบประมวลผลและแสดงผลข้อมูลจากอุปกรณ์ IoT ที่เชื่อมต่อผ่าน REST API ออกแบบมาสำหรับบันทึกและวิเคราะห์ข้อมูลไฟฟ้าจาก PZEM004T ที่เชื่อมต่อกับ ESP32 วัดค่า แรงดัน, กระแส, กำลัง, พลังงาน, ความถี่, และ Power Factor

ระบบใช้ REST API แบบ POST สำหรับส่งข้อมูลจากอุปกรณ์ และ GET สำหรับดึงข้อมูลมาแสดงผลบน Dashboard

ฟีเจอร์หลัก

  • แสดงข้อมูลไฟฟ้าแบบ Real-time พร้อมกราฟวัดพลังงาน
  • วัด แรงดัน(V), กระแส(A), กำลัง(W), พลังงาน(Wh), ความถี่(Hz), PF
  • กรองข้อมูลตามวันที่ พร้อม exporting PDF/Excel
  • REST API สำหรับส่งและดึงข้อมูล
  • รองรับ ESP32 + PZEM004T ผ่าน WiFi
การเชื่อมต่อ REST API

IoT Dashboard ให้บริการ REST API สำหรับรับส่งข้อมูลระหว่างอุปกรณ์ IoT และเซิร์ฟเวอร์

ข้อมูลการเชื่อมต่อ

รายการค่า
API Endpointhttp://localhost/iot-dashboard/api.php
Databasepower_monitor
Tablesensor_readings
API Keyeeiot2024
Method (ส่งข้อมูล)POST
Method (ดึงข้อมูล)GET
Content-Typeapplication/json หรือ application/x-www-form-urlencoded

พารามิเตอร์สำหรับ POST

ชื่อประเภทจำเป็นคำอธิบาย
voltagefloatใช่แรงดันไฟฟ้า (V)
currentfloatใช่กระแสไฟฟ้า (A)
powerfloatใช่กำลังไฟฟ้า (W)
energyfloatไม่พลังงานไฟฟ้า (Wh)
frequencyfloatไม่ความถี่ไฟฟ้า (Hz)
power_factorfloatไม่Power Factor (0-1)

ตัวอย่าง POST JSON

curl -X POST http://localhost/iot-dashboard/api.php \
  -H "Content-Type: application/json" \
  -H "X-API-Key: eeiot2024" \
  -d '{"voltage":251.5,"current":0.063,"power":6.6,"energy":0.006,"frequency":50.0,"power_factor":0.42}'

ตัวอย่าง POST Form

curl -X POST http://localhost/iot-dashboard/api.php \
  -H "X-API-Key: eeiot2024" \
  -d "voltage=251.5¤t=0.063&power=6.6&energy=0.006&frequency=50.0&power_factor=0.42"
ตรวจสอบให้แน่ใจว่าได้ใส่ API Key eeiot2024 ใน Header ของทุกคำขอ
วิธีใช้งาน Dashboard

หน้า Dashboard แสดงข้อมูลสรุปและกราฟแบบ Real-time จากอุปกรณ์ IoT ทั้งหมดที่เชื่อมต่ออยู่

Sidebar Navigation

แถบเมนูด้านซ้ายใช้สำหรับนำทางระหว่างหน้าต่างๆ ของระบบ คลิกที่ไอคอนเพื่อเปิดหน้าที่ต้องการ

ตัวกรองวันที่

ใช้ปุ่มกรองด้านบนกราฟเพื่อเลือกช่วงเวลาที่ต้องการ:

ปุ่มคำอธิบาย
Todayแสดงข้อมูลของวันนี้
Yesterdayแสดงข้อมูลของเมื่อวาน
7Dแสดงข้อมูล 7 วันย้อนหลัง
30Dแสดงข้อมูล 30 วันย้อนหลัง
Allแสดงข้อมูลทั้งหมด

Export ข้อมูล

คลิกปุ่ม PDF หรือ Excel เพื่อดาวน์โหลดข้อมูลในรูปแบบที่ต้องการ

Fullscreen

คลิกไอคอน บนกราฟเพื่อขยายเต็มจอสำหรับการนำเสนอ

Auto-Refresh

ระบบจะรีเฟรชข้อมูลอัตโนมัติทุก 5 นาที เพื่อให้ข้อมูลบนหน้าจอเป็นปัจจุบันอยู่เสมอ
ข้อมูลเซ็นเซอร์ไฟฟ้า

ข้อมูลไฟฟ้าที่ระบบรองรับจาก PZEM004T แสดงผลเป็นตารางและกราฟแบบ Real-time

ชื่อเซ็นเซอร์ค่าหน่วยคำอธิบาย
voltage251.5Vแรงดันไฟฟ้า
current0.063Aกระแสไฟฟ้า
power6.6Wกำลังไฟฟ้า
energy0.006Whพลังงานไฟฟ้า (สะสม)
frequency50.0Hzความถี่ไฟฟ้า
power_factor0.42-Power Factor
ค่าที่แสดงเป็นเพียงตัวอย่าง ระบบจะแสดงข้อมูลจริงจาก ESP32 + PZEM004T ที่เชื่อมต่อ
การส่งข้อมูลจาก ESP32/ESP8266

ขั้นตอนการตั้งค่า ESP32 หรือ ESP8266 เพื่อส่งข้อมูลไปยัง IoT Dashboard

1
ติดตั้ง Arduino Core
เปิด Arduino IDE ไปที่ Tools > Board > Boards Manager ค้นหา "esp32" หรือ "esp8266" แล้วคลิก Install
2
ติดตั้ง Library ที่จำเป็น
ไปที่ Tools > Manage Libraries ค้นหาและติดตั้ง:
  • DHT sensor library โดย Adafruit
  • ArduinoJson
  • HTTPClient (สำหรับ ESP32) หรือ ESP8266HTTPClient (สำหรับ ESP8266)
3
แก้ไขโค้ดตัวอย่าง
เปิดไฟล์ Sketch จากโฟลเดอร์ arduino/esp32/ หรือ arduino/esp8266/
// WiFi Configuration
const char* WIFI_SSID = "YourWiFiName";
const char* WIFI_PASS = "YourWiFiPassword";

// API Configuration
const char* API_HOST = "http://your-server/iot-dashboard/api.php";
const char* API_KEY = "eeiot2024";
4
โค้ดตัวอย่างสำหรับส่งข้อมูล
ใช้ HTTPClient library เพื่อส่ง POST request ไปยัง API endpoint
#include <WiFi.h>
#include <HTTPClient.h>
#include <ArduinoJson.h>

void sendData(float voltage, float current, float power, float energy, float frequency, float pf) {
    HTTPClient http;
    http.begin(API_HOST);
    http.addHeader("Content-Type", "application/json");
    http.addHeader("X-API-Key", API_KEY);

    StaticJsonDocument<200> doc;
    doc["voltage"] = voltage;
    doc["current"] = current;
    doc["power"] = power;
    doc["energy"] = energy;
    doc["frequency"] = frequency;
    doc["power_factor"] = pf;

    String requestBody;
    serializeJson(doc, requestBody);

    int httpResponseCode = http.POST(requestBody);
    
    if (httpResponseCode > 0) {
        Serial.println("Data sent successfully");
    } else {
        Serial.println("Error sending data");
    }
    
    http.end();
}
5
อัปโหลดและตรวจสอบ
เลือก Board ที่ถูกต้อง (ESP32 Dev Module หรือ NodeMCU 1.0) เลือก Port แล้วคลิก Upload เปิด Serial Monitor ที่ baud rate 115200 เพื่อดูสถานะการเชื่อมต่อ
ตรวจสอบ Serial Monitor ว่าแสดง "WiFi Connected" และ "Data Sent Successfully" เพื่อยืนยันว่าทุกอย่างทำงานถูกต้อง
Troubleshooting

ปัญหาที่พบบ่อยและวิธีการแก้ไข

ปัญหาสาเหตุวิธีแก้ไข
Connection refused Apache ไม่ได้ทำงาน เปิด XAMPP Control Panel แล้วคลิก Start ที่ Apache
Access denied API Key ไม่ถูกต้อง ตรวจสอบ API Key eeiot2024 ใน Header ของคำขอ
CORS error ไฟล์ config ไม่ถูกต้อง ตรวจสอบการตั้งค่าในไฟล์ config.php
ไม่มีข้อมูลแสดงผล ชื่อตารางไม่ถูกต้อง ตรวจสอบชื่อตารางใน config ว่าตรงกับฐานข้อมูลจริง
ESP32 ไม่ส่งข้อมูล WiFi ไม่เชื่อมต่อ ตรวจสอบ SSID และ Password ที่ถูกต้อง

ตรวจสอบสถานะระบบ

ทดสอบว่า API ทำงานโดยใช้คำสั่ง:

curl "http://localhost/iot-dashboard/api.php?action=ping" -H "X-API-Key: eeiot2024"

ผลลัพธ์ที่ถูกต้องควรมี "status":"ok" หรือ "message":"pong"

ตรวจสอบ Log

ไฟล์ log ของระบบอยู่ที่ logs/ โฟลเดอร์ ตรวจสอบไฟล์ error.log หากมีปัญหา

หน้าหลัก