การสมัครรับข้อมูลพลังงานแบบเรียลไทม์ผ่าน MQTT Broker (ฉบับปี 2025)
1. บทนำ
IAMMETER-คลาวด์เป็นแพลตฟอร์มการตรวจสอบพลังงานและการจัดการพลังงานแสงอาทิตย์ระดับมืออาชีพ นอกจากฟังก์ชันการแสดงภาพและการรายงานอันทรงพลังแล้ว IAMMETER-Cloud ยังมีอินเทอร์เฟซข้อมูลที่ยืดหยุ่นอีกด้วย ซึ่งช่วยให้ผู้ใช้ที่มีความต้องการเฉพาะสามารถใช้ IAMMETER-Cloud เป็นแพลตฟอร์มมิดเดิลแวร์ข้อมูลการดึงข้อมูลผ่านโปรแกรมโดยใช้รหัส
มีสองวิธีหลักในการรับข้อมูลจาก IAMMETER-Cloud โดยใช้โค้ด:
- สมัครรับข้อมูลผ่านทางโบรกเกอร์ MQTT ของ IAMMETER(จุดเน้นของบทความนี้)
- โทรหาเจ้าหน้าที่ของ IAMMETER-CloudAPI
คู่มือนี้จะอธิบายวิธีสมัครรับข้อมูลหัวข้อ IAMMETER MQTT ตีความโครงสร้างข้อมูล (สำหรับมิเตอร์เฟสเดียวและสามเฟส) และนำตัวอย่าง Python และ Node.js ที่ใช้งานได้ไปใช้
2. ภาพรวมโบรกเกอร์ IAMMETER MQTT
บันทึก:IAMMETER MQTT Broker ได้รับการออกแบบมาในตอนแรกเป็นบริการพัฒนาและทดสอบเพื่อความสะดวก และไม่ได้เป็นส่วนหนึ่งของข้อเสนอ IAMMETER-Cloud มาตรฐาน (แม้ว่าจะมีความเสถียรและใช้งานมานานกว่า 5 ปีแล้ว) สำหรับการผลิตหรือการปรับใช้ขนาดใหญ่ เราขอแนะนำให้ตั้งค่าโบรกเกอร์ MQTT ของตัวเอง.
การกำหนดค่าโบรกเกอร์ IAMMETER MQTT
| พารามิเตอร์ | คำอธิบาย |
|---|---|
| ที่อยู่โบรกเกอร์ | mqtt.iammeter.com |
| ท่าเรือ | 1883(ไม่ใช่ SSL) |
| ชื่อผู้ใช้ / รหัสผ่าน | จะต้องสร้างขึ้นในIAMMETER Cloud → การตั้งค่า → การตั้งค่า MQTT![]() |
| รูปแบบหัวข้อ | อุปกรณ์/{SN}/เรียลไทม์ |
| รูปแบบเพย์โหลด | เจสัน |
⚠️ สำคัญ:ทำไม่ใช้ข้อมูลเข้าสู่ระบบ IAMMETER Cloud ของคุณที่นี่ คุณต้องสร้างชื่อผู้ใช้และรหัสผ่าน MQTT เฉพาะในแดชบอร์ด IAMMETER Cloud
กำหนดค่ามิเตอร์ IAMMETER ให้ใช้โหมด MQTT
ตั้งค่ามิเตอร์ IAMMETER ของคุณเป็นโหมดอัปโหลด MQTT(ดูคู่มือการกำหนดค่าเฟิร์มแวร์) และป้อนพารามิเตอร์ IAMMETER MQTT Broker

3. รูปแบบหัวข้อ MQTT
อุปกรณ์ IAMMETER แต่ละเครื่องจะเผยแพร่ข้อมูลเรียลไทม์ภายใต้หัวข้อต่อไปนี้:
อุปกรณ์/{SN}/เรียลไทม์
ที่ไหน{สส}คือหมายเลขซีเรียลของมิเตอร์ของคุณ
ตัวอย่างเช่น หาก SN ของอุปกรณ์ของคุณคือDA2BED94หัวข้อจะเป็นดังนี้:
อุปกรณ์/DA2BED94/เรียลไทม์
คุณสามารถสมัครสมาชิกหัวข้อนี้เพื่อรับข้อมูลการวัดแบบเรียลไทม์อย่างต่อเนื่อง
4. รูปแบบข้อมูล
4.1 รูปแบบข้อมูลมิเตอร์เฟสเดียว
มิเตอร์ IAMMETER เฟสเดียวเผยแพร่ข้อมูลเรียลไทม์ในรูปแบบ JSON ดังต่อไปนี้:
{
"วิธีการ": "1-272",
"mac": "B0F8932A295C",
"เวอร์ชัน": "i.91.062T6",
"เซิร์ฟเวอร์": "em",
"SN": "DA2BED94",
"ข้อมูล": [227.02, 1.81, 296.0, 21699.98, 0.00, 50.01, 0.72]
}
| ดัชนี | สนาม | คำอธิบาย | หน่วย |
|---|---|---|---|
| 1 | แรงดันไฟฟ้า | แรงดันไฟฟ้าสายปัจจุบัน | วี |
| 2 | ปัจจุบัน | กระแสไฟฟ้าในปัจจุบัน | อา |
| 3 | พลัง | พลังแอ็คทีฟ | W |
| 4 | พลังงานไปข้างหน้า | พลังงานนำเข้า (บริโภค) | กิโลวัตต์ชั่วโมง |
| 5 | พลังงานย้อนกลับ | พลังงานส่งออก (ป้อนเข้า, พลังงานแสงอาทิตย์) | กิโลวัตต์ชั่วโมง |
| 6 | ความถี่ | ความถี่กริด | เฮิรตซ์ |
| 7 | ตัวประกอบกำลัง | ปัจจัยกำลังไฟฟ้าปัจจุบัน | พีเอฟ |
🟢 หมายเหตุ:
- พลังบวก → การใช้พลังงาน
- พลังงานเชิงลบ → การส่งออกพลังงาน (เช่น การป้อนพลังงานแสงอาทิตย์)
4.2 รูปแบบข้อมูลมิเตอร์สามเฟส (WEM3080T / WEM3046T / WEM3050T)
มิเตอร์ IAMMETER สามเฟสเผยแพร่ข้อมูลในรูปแบบ JSON ที่คล้ายกัน โดยมีอาร์เรย์สามชุดที่สอดคล้องกับแต่ละเฟส
{
"วิธีการ": "4-9",
"mac": "849DC2CEC625",
"เวอร์ชัน": "i.91.062T6",
"เซิร์ฟเวอร์": "em",
"SN": "CB0A0CFB",
"EA": {
"ปฏิกิริยา": [
[-111.0, 0.000, 176.750],
[-113.0, 0.000, 179.110],
[-114.0, 36.120, 144.410]
]
},
"ข้อมูล": [
[225.9, 1.260, 194.0, 305.110, 0.000, 49.99, 0.87],
[225.8, 1.260, 193.0, 302.690, 0.000, 49.99, 0.86],
[225.9, 1.260, 192.0, 300.890, 0.000, 49.99, 0.86]
]
}
ข้อมูลเป็นรายการที่มีสามอาร์เรย์แต่ละอันสอดคล้องกับเฟส A, B และ C.
อาร์เรย์ภายในแต่ละอันมีโครงสร้างเดียวกันกับแบบเฟสเดียวข้อมูลอาร์เรย์
| ดัชนี | สนาม | คำอธิบาย | หน่วย |
|---|---|---|---|
| 1 | แรงดันไฟฟ้า | แรงดันเฟส | วี |
| 2 | ปัจจุบัน | กระแสเฟส | อา |
| 3 | พลัง | พลังแอ็คทีฟ | W |
| 4 | พลังงานไปข้างหน้า | พลังงานนำเข้า | กิโลวัตต์ชั่วโมง |
| 5 | พลังงานย้อนกลับ | พลังงานส่งออก | กิโลวัตต์ชั่วโมง |
| 6 | ความถี่ | ความถี่กริด | เฮิรตซ์ |
| 7 | ตัวประกอบกำลัง | ปัจจัยกำลังเฟส | พีเอฟ |
นอกจากข้อมูลพลังงานจริงเมื่อการวัดกำลังรีแอคทีฟเมื่อเปิดใช้งานแล้ว คุณจะเห็นอีเอส่วนดังต่อไปนี้:
"EA": {
"ปฏิกิริยา": [
[-111.0, 0.000, 176.750],
[-113.0, 0.000, 179.110],
[-114.0, 36.120, 144.410]
]
}
ส่วนนี้จะแสดงข้อมูลการวัดปฏิกิริยาซึ่งจะปรากฏเฉพาะเมื่อฟังก์ชันการทดสอบปฏิกิริยาเปิดใช้งานแล้ว (ดูภาพหน้าจอด้านล่าง)

แต่ละอาร์เรย์แสดงถึงสามเฟส (A, B, C) โดยแสดงกำลังปฏิกิริยา (Q ในหน่วย kVar)และพลังงานปฏิกิริยา (kVARh).
Q (กิโลวาร์):กำลังปฏิกิริยา — บวก = เหนี่ยวนำ, ลบ = ความจุกิโลวาร์รห์:พลังงานปฏิกิริยา — แต่ละเฟสมีค่า kVARh สองค่า: หนึ่งค่าสำหรับโหลดอุปนัยและอีกหนึ่งสำหรับโหลดแบบเก็บประจุ.
5. ตัวอย่าง Python: การสมัครรับข้อมูลเรียลไทม์
ด้านล่างนี้เป็นสคริปต์ Python ที่ใช้งานได้โดยใช้ปาโฮ-เอ็มคิวทีทีห้องสมุด.
นำเข้า paho.mqtt.client เป็น mqtt
นำเข้า json
# การกำหนดค่าโบรกเกอร์ MQTT
MQTT_BROKER = "mqtt.iammeter.com"
MQTT_PORT = 1883
MQTT_USER = "ชื่อผู้ใช้_mqtt_your_username" # ตั้งค่าใน IAMMETER Cloud → การตั้งค่า MQTT
MQTT_PASS = "รหัสผ่าน_mqtt_your_password"
TOPIC = "อุปกรณ์/DA2BED94/เรียลไทม์" # แทนที่ด้วย SN ของอุปกรณ์ของคุณเอง
# เรียกกลับเมื่อเชื่อมต่อกับโบรกเกอร์
def on_connect(client, userdata, flags, rc):
if rc == 0:
print("✅ เชื่อมต่อกับโบรกเกอร์ IAMMETER MQTT เรียบร้อยแล้ว)
client.subscribe(TOPIC)
print(f"📡 สมัครรับหัวข้อ: {TOPIC}")
else:
print(f"❌ การเชื่อมต่อล้มเหลวด้วยรหัส {rc}")
# เรียกกลับเมื่อได้รับข้อความ
def on_message(client, userdata, msg):
payload = json.loads(msg.payload.decode())
print("📊 ได้รับข้อมูลแบบเรียลไทม์:")
print(json.dumps(payload, indent=2, ensure_ascii=False))
# เริ่มต้นใช้งานไคลเอนต์ MQTT
client = mqtt.Client()
client.username_pw_set(MQTT_USER, MQTT_PASS)
client.on_connect = on_connect
client.on_message = on_message
# เชื่อมต่อกับโบรกเกอร์และเริ่มลูป
client.connect(MQTT_BROKER, MQTT_PORT, 60)
client.loop_forever()
6. ตัวอย่าง Node.js
เราขอแนะนำให้ลองใช้โครงการโอเพนซอร์สที่น่าสนใจนี้: ใช้โหนด jsเพื่อสมัครรับข้อมูลเรียลไทม์จากโบรกเกอร์ IAMMETER MQTT และแสดงภาพในส่วนต่อประสานผู้ใช้เว็บไซต์สร้างแดชบอร์ดแบบเรียลไทม์ที่เจ๋ง
🔗 https://github.com/lewei50/iammeter.JS
7. กรณีการใช้งานจริง
- ระบบบ้านอัจฉริยะรวมข้อมูลพลังงานแบบเรียลไทม์เข้าในผู้ช่วยที่บ้านหรือโหนด-REDเพื่อกระตุ้นการดำเนินการอัตโนมัติ (เช่น เริ่มเปิดเครื่องทำความร้อนเมื่อการผลิตพลังงานแสงอาทิตย์สูง)
- การแสดงภาพข้อมูลท้องถิ่นจัดเก็บข้อมูล MQTT ขาเข้าในอินฟลักซ์ดีบีและจินตนาการถึงมันด้วยแดชบอร์ด Grafana.
- คลาวด์ส่วนตัวหรือการประมวลผลแบบ Edgeดึงข้อมูลพลังงานแบบเรียลไทม์โดยตรงผ่าน MQTT สำหรับการวิเคราะห์ที่กำหนดเองหรือตรรกะการควบคุมโดยไม่ต้องพึ่งพา IAMMETER Cloud
8. การแก้ไขปัญหา
| ปัญหา | สาเหตุที่เป็นไปได้ / วิธีแก้ไข |
|---|---|
| ไม่สามารถเชื่อมต่อกับโบรกเกอร์ได้ | ตรวจสอบว่าชื่อผู้ใช้/รหัสผ่าน MQTT ของคุณได้รับการตั้งค่าอย่างถูกต้องใน IAMMETER Cloud |
| ไม่ได้รับข้อมูล | ตรวจสอบรูปแบบหัวข้อของคุณ (อุปกรณ์/{SN}/เรียลไทม์) และตรวจสอบให้แน่ใจว่ามิเตอร์เชื่อมต่อออนไลน์อยู่ |
| ความล่าช้าของข้อมูล | ตรวจสอบความเสถียรของเครือข่ายหรือความแรงของสัญญาณ Wi-Fi ของคุณ |
| หลายเมตร | คุณสามารถสมัครรับหัวข้อหลายหัวข้อพร้อมกันได้ (หนึ่งหัวข้อต่อ SN) |
9. บทสรุป
โดยใช้โบรกเกอร์ IAMMETER MQTTคุณสามารถเข้าถึงได้อย่างง่ายดายสตรีมข้อมูลพลังงานแบบเรียลไทม์จากอุปกรณ์ IAMMETER ของคุณ เป็นวิธีที่มีประสิทธิภาพและยืดหยุ่นในการสร้างแดชบอร์ดในพื้นที่ ระบบอัตโนมัติอัจฉริยะ หรือระบบเพิ่มประสิทธิภาพพลังงานที่ใช้ AI.
📘 อ้างอิง
- เฟิร์มแวร์ IAMMETER และคุณสมบัติการสื่อสาร
- เอกสารประกอบ API ของ IAMMETER Cloud และ MQTT
- พัฒนาแดชบอร์ดการตรวจสอบพลังงานของคุณเองโดยใช้ NodeJS
คุณต้องการให้ฉันทำเวอร์ชันโพสต์บล็อกที่จัดรูปแบบมาร์กดาวน์(พร้อมที่จะเผยแพร่บนบล็อกอย่างเป็นทางการของ IAMMETER พร้อมไฮไลต์ไวยากรณ์และลิงก์รูปภาพที่ฝังไว้ครบถ้วน)
