MQTT Protocol กับ HMI: สร้างระบบ IoT สื่อสารไร้สาย
เรียนรู้การใช้ MQTT Protocol กับ HMI สำหรับระบบ IoT แบบไร้สาย ตั้งค่า Publisher/Subscriber ควบคุมอุปกรณ์อัตโนมัติผ่าน Wi-Fi
อัพเดทล่าสุด: 7/3/2569
ราคาชุดอุปกรณ์
MQTT Protocol กับ HMI: การสื่อสารระหว่างอุปกรณ์ IoT
การใช้งาน MQTT Protocol กับ HMI เป็นวิธีที่มีประสิทธิภาพในการสร้างระบบสื่อสารระหว่างอุปกรณ์ IoT โดยไม่ต้องใช้สายเชื่อมต่อโดยตรง ในบทความนี้จะสอนวิธีการตั้งค่าและใช้งาน MQTT กับหน้าจอ HMI แบบครบวงจร
ตัวอย่างการใช้งานจริง
ระบบ Demo ประกอบด้วย:
- HMI ตัวที่ 1: ต่อกับเซนเซอร์อุณหภูมิและความชื้น (Publisher)
- HMI ตัวที่ 2: ต่อกับ PLC ที่ควบคุมหลอดไฟ (Subscriber)
เมื่ออุณหภูมิเกิน 30 องศา หลอดไฟจะติดอัตโนมัติ โดยข้อมูลถูกส่งผ่าน Wi-Fi และ MQTT Protocol
อุปกรณ์ที่ใช้
- HMI: SK070-QS-QG-WiFi Module
- PLC: FAS-32MT-AC-E
- เซนเซอร์: Temperature & Humidity Sensor (Modbus RS485)
พื้นฐาน MQTT Protocol
MQTT คืออะไร
MQTT (Message Queuing Telemetry Transport) เป็น Protocol ที่ได้รับความนิยมในงาน IoT เนื่องจาก:
- สร้างบนพื้นฐาน TCP
- ใช้แบนด์วิดท์น้อย
- เหมาะสำหรับเครือข่ายที่ไม่เสถียร
- รองรับการเชื่อมต่อแบบติดๆ ดับๆ ได้ดี
โครงสร้างของ MQTT
มีองค์ประกอบหลัก 2 ส่วน:
- MQTT Broker: ตัวกลางที่รับและส่งข้อความ
- MQTT Client: ผู้ใช้งานที่แบ่งเป็น
- Publisher: ผู้ส่งข้อมูล
- Subscriber: ผู้รับข้อมูล
ขั้นตอนการดำเนินงาน
1. เลือก MQTT Broker
ตัวเลือกที่ 1: Public MQTT Broker
- HiveMQ Public Broker
- Host:
broker.hivemq.com - Port:
1883 - ฟรีใช้งาน (เหมาะสำหรับทดลอง)
- Host:
ตัวเลือกที่ 2: Private MQTT Server
- ติดตั้งเซิร์ฟเวอร์เอง (Raspberry Pi หรือ Computer)
- Software: Mosquitto, EMQX
- ความปลอดภัยสูงกว่า
2. การตั้งค่า HMI Publisher
การเชื่อมต่อเซนเซอร์
Communication: COM3 (RS485)
Protocol: Modbus RTU Master
Slave ID: 1
Temperature: 3X1
Humidity: 3X2
การตั้งค่า MQTT
-
เปิดใช้งาน MQTT ในหน้าจอ
-
ตั้งค่า Server:
Server Address: broker.hivemq.com Port: 1883 Client ID: %0 (Serial Number) -
สร้าง Publish Topic:
Topic Name: YourName/HMI/Data Publish Type: Automatic Interval: 10 seconds -
เพิ่มข้อมูลที่จะส่ง:
- Temperature: Key = "Temp", Address = 3X1
- Humidity: Key = "Humi", Address = 3X2
3. การตั้งค่า HMI Subscriber
การตั้งค่า MQTT
-
ใช้การตั้งค่า Server เหมือนกับ Publisher
-
สร้าง Subscribe Topic:
Topic Name: YourName/HMI/Data (เหมือนกับ Publisher) Format: JSON Advanced -
การรับข้อมูล:
Temperature -> Name: Temp, Address: LW1 Humidity -> Name: Humi, Address: LW2
4. การเขียน Logic Control
Script สำหรับควบคุมหลอดไฟ
if (LW1 > 300) { // 30.0 องศา
Y0 = 1; // เปิดหลอดไฟ
} else {
Y0 = 0; // ปิดหลอดไฟ
}
การตั้งค่า Script
- สร้าง Variable Setting สำหรับ Y0
- ตั้งค่า Global Script ให้ทำงานทุก 50ms
- Compile และทดสอบ
5. การทดสอบระบบ
- เชื่อมต่อ HMI ทั้งสองเครื่องกับ Wi-Fi
- ตรวจสอบสถานะการเชื่อมต่อ:
- Signal Strength: LW61250
- MQTT State: LW0 (ค่า 2 = เชื่อมต่อปกติ)
- ทดสอบการส่งข้อมูลด้วยการเปลี่ยนอุณหภูมิ
การแก้ปัญหาที่พบบ่อย
ปัญหาการเชื่อมต่อ
- ตรวจสอบ Client ID ให้ไม่ซ้ำกัน
- ใช้ Serial Number (%0) เพื่อความปลอดภัย
- ตรวจสอบ Topic Name ให้ตรงกันทุกฝั่ง
ปัญหาข้อมูลไม่อัพเดต
- ตรวจสอบ Publish Interval
- ยืนยัน Data Type และ Address ที่ถูกต้อง
- ตรวจสอบ MQTT State ว่าเป็น 2
เคล็ดลับการใช้งาน
- ใช้ชื่อ Topic ที่ไม่ซ้ำกับผู้อื่น
- เก็บ MQTT State ไว้ใน LW0 เพื่อติดตามสถานะ
- ใช้ JSON Advanced สำหรับข้อมูลที่ซับซ้อน
- ตั้งค่า Script ให้ทำงานด้วยความถี่ที่เหมาะสม
สรุป
การใช้งาน MQTT Protocol กับ HMI ช่วยให้สามารถสร้างระบบ IoT ที่มีประสิทธิภาพโดยไม่ต้องใช้สายเชื่อมต่อโดยตรง ระบบนี้เหมาะสำหรับ:
- Remote Monitoring: ติดตามข้อมูลจากระยะไกล
- Distributed Control: ควบคุมอุปกรณ์หลายจุด
- Data Integration: รวบรวมข้อมูลจากหลายแหล่ง
ด้วยการตั้งค่าที่ถูกต้องและการใช้ Public MQTT Broker สำหรับทดลอง ผู้ใช้งานสามารถเริ่มต้นพัฒนาระบบ IoT ได้อย่างง่ายดายและมีประสิทธิภาพ
มีคำถาม? ติดต่อทีมงาน




