ข้ามไปยังเนื้อหา

แล็บ: ท่อ telemetry และ MQTT บน Twin

วิดีโอประกอบ

ดูบน YouTube (เปิดในแท็บใหม่)

วิดีโอโดย ผศ.ดร.สันติ นุราช ภาควิชาวิศวกรรมระบบควบคุมและเครื่องมือวัด คณะวิศวกรรมศาสตร์ มหาวิทยาลัยเทคโนโลยีพระจอมเกล้าธนบุรี (KMUTT) · ดูทั้งชุดใน playlist AIoT Foundation

Course 2 · Module 5
Type: Hands-on (classify · Live Data quality · MQTT pub/sub · fault injection)
Suggested time: ~3.5–4 ชั่วโมง

Read first: Lesson · Lab notes · ← Table of Contents · ← M04 · M06 →

เอกสาร ใช้เมื่อ
M04 lab · ex05 walkthrough consumer Live Data พื้นฐาน
Course 1 M06 MQTT บนเฟิร์มแวร์ / QoS
Hackathon web-app/ ex08, ex09–ex15
Bitstream Studio Start broker · Twin publish

  • แยกและส่งแนวคิด Telemetry / State / Event อย่างละอย่างน้อยหนึ่งอย่าง
  • ตรวจบน dashboard หรือ subscriber ว่าฟิลด์/หน่วยตรง
  • ตั้ง MQTT broker ใน Studio แล้วทำ pub/sub อย่างน้อยหนึ่งคู่
  • ทดลอง lossy / disconnect / schema break อย่างน้อยหนึ่งเคส
  • กรอก telemetry-mqtt-lab-notes.md

  • M04 bring-up ผ่าน (Link เสถียร · รู้ Simulator XOR Bitstream)
  • โฟลเดอร์ Hackathon มี web-app/
  • รู้วิธี Serve Web App Folder over HTTP (M04)
  • โฟลเดอร์ lab-notes/ สำหรับหลักฐาน

ออกแบบ (บนกระดาษหรือใน lab notes):

  1. Telemetry — topic + ตัวอย่าง JSON 1 ก้อน + อัตราโดยประมาณ
  2. State — topic + เมื่อไรจะส่ง (เปลี่ยนโหมด / LED / Link)
  3. Event — topic หรือชื่อ event + เงื่อนไขสั้น ๆ

ใช้โครงตัวอย่างจากบทเรียนได้ เช่น:

device/<id>/devkit-twin/telemetry
device/<id>/state
device/<id>/event/<name>

Pass when: เพื่อนในทีมอ่าน topic แล้วเดาชนิดข้อมูลถูกโดยไม่ต้องเดาจาก payload อย่างเดียว


  1. Link Studio (โหมดเดียว)
  2. Serve web-app/ → เปิด ex08_stale_and_route.html
  3. จด route, COM open, last origin
  4. ทำให้เซ็นเซอร์อย่างน้อยหนึ่งตัวเข้า stale แล้วกลับ fresh
  5. แคป event log + pills

Pass when: อธิบายได้ว่า stale เป็น host-side Event เมื่อ telemetry ขาด — และ origin สอดคล้องโหมด Studio


  1. ใน Bitstream Studio: Start broker
  2. เปิด ex09_mqtt_subscriber.html — รอ connected
  3. Publish ไป topic ที่หน้าเว็บ subscribe (ค่าเริ่มต้น device/devkit-twin-01/devkit-twin/telemetry หรือตาม ?device= / ?topic=)
    • แหล่ง publish: DevKit Twin MQTT tab / Sensor Studio connectivity / เครื่องมืออื่นที่มี
  4. ยืนยัน Last payload ตรงฟิลด์และหน่วย
  5. แคปคู่: แหล่ง publish + หน้า ex09

Pass when: message count ≥ 1 และ JSON อธิบายได้ว่าเป็น Telemetry (หรือชนิดที่ตั้งใจ)


เลือกอย่างน้อยหนึ่ง:

  • ตัดฟิลด์จาก payload แล้วดูว่า subscriber/dashboard พังตรงไหน
  • ส่งค่าหน่วยผิดโดยตั้งใจ แล้วจดว่า UI “ยังสวยแต่ผิดความหมาย”
  • เปิด ex14 ลอง QoS + retain บน lab/qos-demo แล้วให้เพื่อนเปิด subscriber (เช่น ex11) หลังคุณ retain

Pass when: มีโน้ต “สิ่งที่พัง / สิ่งที่ไม่พัง” อย่างน้อยหนึ่งบรรทัดใน lab notes


เลือกอย่างน้อยหนึ่งเคส แล้วกรอกตารางใน lab notes:

เคส ตัวอย่างการทำ
Stop / Start broker สั้น ๆ ดู ex09 reconnecting → connected
หยุด publisher ชั่วคราว ดูช่องว่าง · หรือ ex08 stale
ปิดแท็บ ex09 แล้วเปิดใหม่ ถ้ามี retain บน state topic — ได้ค่าล่าสุดหรือไม่

Pass when: ระบุพฤติกรรมที่เห็น (drop / retry / reconnect / stale) โดยไม่เดา


ถ้าเหลือเวลา เลือกต่อ:

  • ex10 publish จากเบราว์เซอร์
  • ex12 gauges
  • ex15 dashboard รวม
  • Publish จากเฟิร์มแวร์จริงหลัง Wi‑Fi (C1 M06) เข้า broker ของแล็บ

  • Lab A–C ผ่าน
  • Lab E (หรืออย่างน้อย Lab D ถ้าเวลาไม่พอ)
  • telemetry-mqtt-lab-notes.md กรอกครบ
  • หลักฐานสกรีนช็อต: ex08 + ex09 (+ schema/lossy ตามที่ทำ)

อาการ แนวทาง
ex08 disconnected Studio/bridge · Serve ถูกโฟลเดอร์ web-app/
ex09 ค้าง connecting Start broker · ตรวจ ws://127.0.0.1:8883/mqtt
connected แต่ Waiting for messages ยังไม่มี publisher · topic ไม่ตรง · ตรวจ ?device= / ?topic=
Live Data ดี MQTT ว่าง คนละท่อ — อย่าแก้เฟิร์มแวร์ก่อนเช็ค broker/topic
origin สับสน อย่าผสม Simulator + Bitstream · เคลียร์แล้ว Link ใหม่
Retain ทำให้ค่า “ค้าง” ตรวจว่าทดลองบน topic lab ไม่ใช่ telemetry หนาแน่น

Lesson · Lab notes · Table of Contents · M06 →

อ้างอิงบทเรียนนี้

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

"แล็บ: ท่อ telemetry และ MQTT บน Twin" จาก TESA Open Knowledge โดยสมาคมสมองกลฝังตัวไทย (Thai Embedded Systems Association: TESA) https://github.com/tesaiot/tesa-qualification-program สัญญาอนุญาต CC BY-NC 4.0

ข้อความอ้างอิงภาษาอังกฤษ: "Lab: Telemetry Pipeline and MQTT on Twin" from TESA Open Knowledge by the Thai Embedded Systems Association (TESA), https://github.com/tesaiot/tesa-qualification-program, licensed under CC BY-NC 4.0

ลิงก์บทเรียน: https://tesaiot.github.io/tesa-qualification-program/courses/digital-twin/m05-telemetry-cloud/l02-lab/

บทเรียนนี้ดัดแปลงจากต้นฉบับด้านล่าง เมื่ออ้างอิงให้คงเครดิตต้นฉบับไว้ด้วย
https://github.com/drsanti/TESAIoT-Courses/blob/287c21814ba8c75f693136616dcd270349a15966/C2/M05/lab.md · Original content by Asst. Prof. Dr. Santi Nuratch (ผศ.ดร.สันติ นุราช), KMUTT. Course 2 (C2/) of drsanti/TESAIoT-Courses. TESA funded the work and holds the rights; published here under CC BY-NC 4.0. The upstream repository carries no licence file. Text kept faithful; structure, front matter, quizzes and notes added by TESA Open Knowledge.

วิธีอ้างอิง TESA ฉบับเต็ม

TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · CC BY-NC 4.0

เนื้อหาเผยแพร่ภายใต้ CC BY-NC 4.0 นำไปใช้ต่อในงานที่ไม่ใช่เพื่อการค้าได้ โปรดอ้างอิงสมาคมสมองกลฝังตัวไทย (TESA) ทุกครั้ง · วิธีอ้างอิง TESA