ส่งข้อมูลจากคอมพิวเตอร์ไปที่ HMI ผ่าน MQTT (Subscribe)
ตั้งให้หน้าจอ Samkoon SK-070QS-G Subscribe Topic แบบ Json (Advance) รับค่า bitData และ wordData จากคอมพิวเตอร์ลง LB200 และ LW200 แล้วทดสอบส่งข้อมูลด้วย MQTTX
ให้หน้าจอเป็นฝั่ง Subscribe: ใน MQTT setting ที่ Topical แท็บ Subscribe สร้าง Topic แบบ Json (Advance) โหมด Automatic แล้วผูก Key ใน Payload กับ Address เช่น bitData → LB200 และ wordData → LW200 เมื่อคอมพิวเตอร์ Publish JSON มาที่ Topic นั้น หน้าจอจะเปลี่ยนค่าทันที
อัพเดทล่าสุด: 26 ตุลาคม 2569
โจทย์
อยากส่งข้อมูลจากคอมพิวเตอร์ไปที่หน้าจอ HMI ใช้ MQTT เป็นตัวช่วย โดยให้หน้าจอเป็นฝั่ง Subscribe Topic ที่เรากำหนด คลิปนี้ต่อจากคลิป Publish ใช้โปรเจกต์เดิมบนหน้าจอ SK-070QS-G และ Broker ตัวเดิม
ขั้นตอนใน SKTool
1. เปิด MQTT และระบุ Broker
ไปที่ MQTT ใน System Setting ติ๊ก Use แล้วระบุ Broker (ตั้งแบบเดียวกับคลิป Publish)
2. สร้าง Topic ฝั่ง Subscribe
- ที่หัวข้อ Topical เลือกแท็บ Subscribe แล้วกด New
- ตั้งชื่อ Topic ในคลิปใช้
quick-mqtt-hmi/test/subทั้งช่อง Name และ Topical - Format เลือก Json (Advance)
- Operator mode เป็น Automatic (Immediate processing) คือเมื่อมีข้อมูลส่งเข้ามา หน้าจอจะนำไปแสดงทันที
3. กำหนด Payload ที่จะรับ
ไปที่แท็บ Address แล้วกด Add Value เข้าไปที่ Payload ในคลิปรับข้อมูล Bit หนึ่งตัวกับ Word หนึ่งตัว
| Name (Key ใน JSON) | Data type | ข้อมูลที่ได้รับเขียนลง Address |
|---|---|---|
bitData | bool | LB200 |
wordData | 16-Bit Unsigned Int | LW200 |
ชื่อ Key ใน Payload ตัวพิมพ์เล็กตัวพิมพ์ใหญ่มีผล ฝั่งคอมพิวเตอร์ต้องส่ง Key ให้ตรงทุกตัวอักษร
4. สร้าง UI แสดงผล
สร้างตัวแสดงผลฝั่ง Subscribe บนหน้าจอ (ด้านซ้ายของหน้าจอในคลิปเป็นชุดของคลิป Publish เดิม)
- Bit Lamp ที่ LB200
- Numeric Display ที่ LW200
จากนั้น Download ลงหน้าจอ
ทดสอบส่งข้อมูลด้วย MQTTX
- เปิด MQTTX ที่เชื่อมต่อกับ Broker ตัวเดียวกับหน้าจอไว้แล้ว
- ใส่ชื่อ Topic
quick-mqtt-hmi/test/subและเขียน Payload เตรียมไว้ เช่น
{
"bitData": true,
"wordData": 555
}
- รอให้หน้าจอต่ออินเทอร์เน็ตและเชื่อมกับ Broker เสร็จ โดยดูที่ LW0 (State) ถ้ามีค่าเป็น 2 แปลว่าเชื่อมต่อติดแล้ว
- กดส่ง Payload ไปที่ Broker หน้าจอจะเปลี่ยนค่าตามที่ส่งไป: Bit Lamp ติด และช่องตัวเลขแสดง 555
- ลองเปลี่ยนเป็น
falseหรือตัวเลขอื่นแล้วส่งใหม่ หน้าจอก็รับค่าจากคอมพิวเตอร์ได้เช่นกัน
บทถัดไป
วิธีต่อ Internet ผ่านสาย Ethernet ด้วยหน้าจอ HMI IoT
มีคำถาม? ติดต่อทีมงาน
