ใช้ MQTT ในหน้าจอ HMI แบบรวบรัด: Publish ข้อมูลเป็น JSON
ตั้งค่า MQTT ใน SKTool ให้หน้าจอ Samkoon รุ่น -G Publish ค่า LB100 และ LW100 เป็น JSON ไปที่ Broker ทุก 1 วินาที ดูสถานะการเชื่อมต่อที่ LW0 แล้วทดสอบรับข้อมูลด้วย MQTTX
ใช้หน้าจอรุ่นที่ชื่อลงท้ายด้วย -G เปิด MQTT ใน SKTool ติ๊ก Use ใส่ Broker แล้วสร้าง Publish Topic แบบ Json (Advance) ส่งอัตโนมัติทุก 1 วินาที โดยกำหนด Key ใน Payload ให้อ่านค่าจาก Address เช่น LB100 และ LW100 จากนั้นทดสอบรับด้วย MQTTX
อัพเดทล่าสุด: 26 ตุลาคม 2569
เลือกหน้าจอที่รองรับ MQTT
หน้าจอ Samkoon ที่รองรับ MQTT คือรุ่นที่ ชื่อ Model ลงท้ายด้วย -G (เช่น SK-070QS-G + WiFi Module หรือ SK-102QS-G + WiFi Module ที่มีป้าย IoT บนเว็บไซต์) ตอนสร้างโปรเจกต์ใหม่ใน SKTool ให้เลือกรุ่นแบบนี้ (โปรเจกต์ในคลิปเป็น SK-070QS-G)
ขั้นตอนใน SKTool
1. เปิด MQTT และตั้ง Broker
- สร้าง New Project โดยเลือกรุ่นหน้าจอ -G
- ไปที่ MQTT ในหน้าต่างโปรเจกต์ แล้วติ๊ก Use
- แท็บ General ใส่ IP หรือชื่อโดเมนของ Broker ที่จะใช้ ในคลิปใช้ Free Broker
IP/Domain name: broker.emqx.io
Port: 1883
2. Address สถานะการเชื่อมต่อ
แท็บ Address ช่อง State คือ Address ที่บอกสถานะการเชื่อมต่อไปที่ MQTT Broker ในคลิปใช้ค่า Default LW0
- LW0 = 0 แปลว่ายังเชื่อมต่อไม่ติด
- LW0 = 2 แปลว่าเชื่อมต่อติดแล้ว
3. สร้าง Topic สำหรับ Publish
ที่หัวข้อ Topical แท็บ Publish กด New เพื่อสร้าง Topic ใหม่ แล้วตั้งค่าในแท็บ General
Name / Topical: quick-mqtt-hmi/test
Format: Json (Advance)
Send mode: Automatic
Period: 1 second
Qos: 0 (at most once)
4. กำหนดหน้าตา Payload
ไปที่แท็บ Address ของ Topic แล้วเพิ่มค่าใต้ Payload ในคลิปส่งข้อมูล 2 ตัว คือ Bit หนึ่งตัวกับ Word หนึ่งตัว
| Name (Key ใน JSON) | Data type | Data | Address |
|---|---|---|---|
lb100 | bool | Address | LB100 |
lw100 | 16-Bit Unsigned Int | Address | LW100 |
ชื่อ Key ใน Payload ตัวพิมพ์เล็กตัวพิมพ์ใหญ่มีผล ให้จำไว้ใช้ฝั่งที่รับข้อมูล
5. สร้าง Control บนหน้าจอ
สร้าง Control ที่เปลี่ยนค่าใน Payload เพื่อทดสอบ
- Bit Switch ที่ LB100 (ในคลิปให้กดสลับค่าแบบ Invert)
- Numeric Input ที่ LW100
- Numeric Display ที่ LW0 ไว้เช็กสถานะการเชื่อมต่อ Broker
จากนั้น Download ลงหน้าจอ
ทดสอบด้วย MQTTX
- เปิดโปรแกรม MQTT Client ในคลิปใช้ MQTTX
- Connect ไปที่ Broker เดียวกับหน้าจอ (
broker.emqx.ioPort 1883) - สร้าง Subscription ใหม่ด้วยชื่อ Topic ที่ตั้งไว้ใน SKTool คือ
quick-mqtt-hmi/test - จะเห็น Payload ถูกส่งมาทุก 1 วินาที เช่น
{
"lb100": true,
"lw100": 40
}
ลองกดปุ่มหรือเปลี่ยนค่าบนหน้าจอ แล้วดูค่าที่เปลี่ยนไปจากคอมพิวเตอร์ได้ทันที (ในคลิปหน้าจอแสดง LW0 = 2 คือเชื่อมต่อ Broker ติดแล้ว)
บทถัดไป
ส่งข้อมูลจากคอมพิวเตอร์ไปที่ HMI ผ่าน MQTT (Subscribe)
มีคำถาม? ติดต่อทีมงาน
