ทดสอบ end-to-end บน Digital Twin
วิดีโอประกอบ
ดูบน YouTube (เปิดในแท็บใหม่)
-
BS-12: Live/Real-time Data and Web Applications ผศ.ดร.สันติ นุราช (KMUTT)
วิดีโอโดย ผศ.ดร.สันติ นุราช ภาควิชาวิศวกรรมระบบควบคุมและเครื่องมือวัด คณะวิศวกรรมศาสตร์ มหาวิทยาลัยเทคโนโลยีพระจอมเกล้าธนบุรี (KMUTT) · ดูทั้งชุดใน playlist AIoT Foundation
Course 2 · Module 6
Suggested time: ประมาณ 2 ชั่วโมง + ใช้เวลาเพิ่มเพื่อให้มินิโปรเจกต์สมบูรณ์ได้
Format: Capstone — รวม M01–M05 เป็นระบบที่สาธิตซ้ำได้ พร้อมตารางเทส E2E และหลักฐาน
Lab · Case brief · Course package · ← Table of Contents · ← M05
เป้าหมาย (Learning Outcomes)
หัวข้อที่มีชื่อว่า “เป้าหมาย (Learning Outcomes)”เมื่อเรียนจบ คุณควรทำได้ดังนี้:
- ทดสอบระบบแบบ End-to-End (Firmware + Twin + Cloud/Dashboard)
- วิเคราะห์ Log และแก้ปัญหาแบบมีหลักฐาน
- ทำกรณีศึกษา / มินิโปรเจกต์ (เช่น Smart Environmental Monitor) และแมปเข้า โดเมนจริง — IoT ทั่วไป · ในบ้าน · โรงงาน · สุขภาพ
- ใช้ Developer Guide / ตัวอย่างโปรเจกต์ และแพ็กเอกสารออนไลน์ของหลักสูตร
- ส่งมอบแล็บเต็มรูปแบบ: สร้าง Twin model, ทดสอบโค้ดผ่าน Twin, จำลองเซ็นเซอร์/สัญญาณ
Key phrase
Capstone Course 2 = เลือกและเชื่อมชิ้นที่ทำมาแล้ว ให้มีตารางผ่าน/ไม่ผ่าน — ไม่ใช่เขียน Twin ใหม่ทั้งก้อน
Read alongside this chapter
หัวข้อที่มีชื่อว่า “Read alongside this chapter”| เอกสาร | ใช้เมื่อ |
|---|---|
| M01–M05 | ชิ้นส่วนที่ต้องรวม |
| Course 1 M08 Capstone | รูปแบบส่งมอบ / rubric ฝั่งเฟิร์มแวร์ |
| Bitstream Studio | Twin host · broker · visualization |
| TESAIoT_Hackathon | HEX · VSIX · web-app/ (ex06 · ex15) |
| TESAIoT Developer Hub | ตัวอย่างเฟิร์มแวร์ / API |
| ternion-3d-assets-free | GLB ประกอบเดโม 3D (ถ้าใช้) |
| Case brief · Course package | แบบฟอร์มผลงาน |
1. Course 2 Lab Index (What You Already Have)
หัวข้อที่มีชื่อว่า “1. Course 2 Lab Index (What You Already Have)”| Module | Lab focus | นำมาใช้ใน M06 |
|---|---|---|
| M01 | แผนที่ Twin / backend XOR | อธิบายสถาปัตยกรรมเดโม |
| M02 | Studio workspace / Link | bring-up ที่ทำซ้ำได้ |
| M03 | Virtual device + event script (+ GLB) | แหล่งกระตุ้นเซ็นเซอร์ |
| M04 | Co-sim I/O · optional ex05 |
พิสูจน์เฟิร์มแวร์ ↔ Twin |
| M05 | Telemetry · MQTT · ex08/ex09 |
ท่อออก dashboard / cloud |
| M06 | E2E mini-project | รวม + ตารางเทส + README |
ถ้าชิ้นใดยังไม่ผ่านเกณฑ์ขั้นต่ำ ให้ซ่อมก่อนขยายฟีเจอร์ใน Capstone
2. End-to-End Path on Twin
หัวข้อที่มีชื่อว่า “2. End-to-End Path on Twin”เส้นทางขั้นต่ำที่ต้องมีหลักฐานผ่าน/ไม่ผ่าน:
[1 Stimulus] M03 event script / scene / switch / tilt │ ▼[2 Firmware] read → decide → act (LED / flag / publish) │ ▼[3 Twin / Studio visualization] telemetry panel · 3D · status │ ├──► [4a Live Data dashboard] e.g. web-app ex06 │ └──► [4b MQTT] broker + pub and/or sub e.g. ex09 / ex15| ขั้น | หลักฐานที่ยอมรับ |
|---|---|
| 1 Stimulus | โน้ตสคริปต์/เวลา + สกรีนช็อตก่อน–หลัง |
| 2 Firmware | UART/log หรือพฤติกรรมที่สังเกตได้บนโฮสต์ว่ามาจาก logic |
| 3 Studio | กราฟ / สถานะ / 3D สอดคล้อง |
| 4a หรือ 4b | consumer ชั้นนอก อย่างน้อยหนึ่งท่อ (Live Data และ/หรือ MQTT) |
อย่าใช้ความรู้สึกว่า “ดูเหมือนใช้ได้” เป็นเกณฑ์เดียว — ใช้ตารางใน e2e-case-brief.md
2.1 Minimum pass rubric
หัวข้อที่มีชื่อว่า “2.1 Minimum pass rubric”| เกณฑ์ | ต้องมี |
|---|---|
| Virtual device + event script (หรือ timeline เทียบเท่า) | ใช่ |
| Firmware co-sim ทำงาน (Simulator และ/หรือ Board) | ใช่ |
| Visualization ใน Studio แสดงค่า/สถานะ | ใช่ |
| MQTT publish หรือ subscribe อย่างน้อยหนึ่งทาง | ใช่ |
| README วิธีรันซ้ำ (bring-up → demo → teardown) | ใช่ |
| ตารางเทส E2E ผ่านอย่างน้อย 3 เคส | ใช่ |
| ไม่ฝัง secret (Wi‑Fi / broker password) ในไฟล์ส่ง | ใช่ |
งานต่อยอด (ไม่บังคับ): ทั้ง Live Data และ MQTT บนเดโมเดียวกัน · fault/reconnect เคส · GLB จาก M03 · เปรียบเทียบ Path A vs B
3. Log Analysis — Layer by Layer
หัวข้อที่มีชื่อว่า “3. Log Analysis — Layer by Layer”เมื่อเดโมพัง ให้ถามตามลำดับ (ขยายจาก M04/M05):
1. Firmware still alive? → heartbeat / UART / LED2. Twin / Studio session up? → Link · backend XOR3. Stimulus actually applied? → M03 script / scene4. Value reached firmware? → log read path5. Firmware decided / wrote? → log / LED / publish6. Studio shows change? → correct panel7. Live Data consumer OK? → ex06 / ex08 connected · not stale8. Broker up + topic match? → Start broker · ex09/ex159. Payload schema OK? → fields / units (M05 drill)| อาการ | ชั้นที่น่าสงสัยก่อน |
|---|---|
| ไม่มีสตรีมเลย | 2 — host / Link |
| สตรีมมี กระตุ้นแล้วเงียบ | 3–4 — script / cfg |
| Log ถูก UI ไม่ขยับ | 6–7 — panel / consumer |
| Live Data ดี MQTT ว่าง | 8 — คนละท่อ / broker / topic |
| MQTT มีข้อความแต่ค่าเพี้ยน | 9 — schema |
Key phrase
แก้ทีละชั้น — แคป log ทั้งฝั่งเฟิร์มแวร์และโฮสต์ในรอบเดียวกัน
เก็บบรรทัดสำคัญใน case brief ส่วน “ปัญหาที่พบและการแก้”
4. Domain Stories — Same E2E Pipe, Different Worlds
หัวข้อที่มีชื่อว่า “4. Domain Stories — Same E2E Pipe, Different Worlds”โครง E2E ใน §2 เหมือนกันทุกโดเมน — ที่ต่างคือ เรื่องราว, ชื่อเซ็นเซอร์ในจินตนาการ, เกณฑ์แจ้งเตือน, และสิ่งที่ผู้ชมเข้าใจว่า “ทำไมต้องมี Twin”
เลือกโดเมนหนึ่งใน Capstone แล้วแมปลงเครื่องมือในแล็บ (SHT40 / DPS368 / BMI270 / สวิตช์ / MQTT) — ไม่ต้องมีฮาร์ดแวร์เฉพาะโดเมน
Key phrase
โดเมน = ภาษาของผู้ใช้ · ท่อ Twin = ภาษาของวิศวกรเฟิร์มแวร์ — Capstone ต้องพูดได้ทั้งสองภาษา
4.0 How to pick a domain (quick)
หัวข้อที่มีชื่อว่า “4.0 How to pick a domain (quick)”| ถ้าทีมสนใจ… | เลือกโดเมน | จุดเด่นในการสาธิต |
|---|---|---|
| อุปกรณ์เชื่อมคลาวด์ทั่วไป | §4.1 IoT | fleet / gateway / dashboard |
| ชีวิตประจำวันในที่อยู่อาศัย | §4.2 Home | comfort · ความปลอดภัยในบ้าน |
| สายการผลิต / เครื่องจักร | §4.3 Industrial | threshold · operator command · downtime |
| การดูแลสุขภาพ / wellness (จำลอง) | §4.4 Health | orientation · สัญญาณชีพจำลอง · privacy |
จากนั้นใช้ §5 เป็นแม่แบบแล็บ (Smart Environmental Monitor) หรือเปลี่ยนชื่อโปรเจกต์ให้ตรงโดเมนที่เลือก — เกณฑ์ผ่านยังเป็นชุดเดียวกัน
4.1 Internet of Things (general)
หัวข้อที่มีชื่อว่า “4.1 Internet of Things (general)”ภาพที่ผู้ชมเห็น: โหนดเซ็นเซอร์ที่ขอบเครือข่าย ส่งค่าเข้า gateway / Twin แล้วขึ้นแดชบอร์ดคลาวด์จำลอง — “อุปกรณ์พูดกับระบบหลังบ้านได้”
| ชิ้น E2E | ตัวอย่างในโดเมนนี้ | แมปลงแล็บ |
|---|---|---|
| Stimulus | สภาพแวดล้อมเปลี่ยน · หรือเปิดโหมดทดสอบจากศูนย์ | scene Quiet → Active · event script |
| Sense | อุณหภูมิ · ความชื้น · ความดัน · IMU | SHT40 / DPS368 / BMI270 |
| Decide | เกินเกณฑ์ → alert event · เปลี่ยน mode |
firmware threshold + state |
| Act / publish | telemetry เป็นจังหวะ + event เป็นครั้งคราว | MQTT …/telemetry · …/event/alert |
| Observe | แดชบอร์ดหลายช่อง · route/origin ชัด | Studio + ex06 + ex09/ex15 |
สามฉากเดโม
- Normal — โหนดออนไลน์ ส่ง telemetry สม่ำเสมอ (
originสอดคล้อง Simulator หรือ Board) - Stimulus — อุณหภูมิจำลองพุ่ง → event
threshold_exceededขึ้น subscriber - Command / fault — สั่ง
mode=maintenanceจาก MQTT หรือ ตัด broker สั้น ๆ แล้ว reconnect
Topic ตัวอย่าง (ปรับได้)
device/<id>/iot/telemetrydevice/<id>/iot/statedevice/<id>/iot/event/alertdevice/<id>/iot/cmd ← subscribe คำสั่งกลับ4.2 Inside the home (smart home)
หัวข้อที่มีชื่อว่า “4.2 Inside the home (smart home)”ภาพที่ผู้ชมเห็น: เซ็นเซอร์ในห้องนั่งเล่น / ห้องนอน ช่วยเรื่องสบายและความปลอดภัย — ไม่ใช่แค่กราฟตัวเลข แต่เป็น “บ้านตอบสนอง”
| สถานการณ์บ้าน | Twin จำลองอย่างไร | สิ่งที่สาธิตบนโฮสต์ |
|---|---|---|
| ห้องร้อนเกินไป | script ดัน temperatureC สูง |
LED/state = cool_request · MQTT event |
| เปิดหน้าต่าง / ประตู | สวิตช์หรือ GPIO จำลอง | state window=open · retain บน topic state |
| คนเดินในบ้านตอนกลางคืน | IMU / motion scene | event motion_detected สั้น ๆ |
| เจ้าของสั่งจากแอป | MQTT command | mode=away / mode=home |
สามฉากเดโม
- Normal — อุณหภูมิ/ความชื้นนิ่ง สบาย ๆ บน ex06
- Stimulus — “แดดจัดในห้อง” (Warm scene) → แจ้งเตือน + เปลี่ยนโหมด
- Command — ส่ง
awayจากโฮสต์ → อุปกรณ์เข้าโหมดประหยัด/เฝ้าระวัง (แสดงบน Studio)
จุดเล่าที่ดี: ใช้ GLB ห้องหรืออุปกรณ์จาก ternion-3d-assets-free เป็นฉากประกอบ — ย้ำว่าภาพ 3D ไม่แทน ค่าเซ็นเซอร์จริง
home/<roomId>/climate/telemetryhome/<roomId>/security/statehome/<roomId>/cmd4.3 Industrial plant / factory floor
หัวข้อที่มีชื่อว่า “4.3 Industrial plant / factory floor”ภาพที่ผู้ชมเห็น: เครื่องจักรบนไลน์ผลิตมี “ฝาแฝดดิจิทัล” สำหรับซ้อมแจ้งเตือนและคำสั่งจากห้องควบคุม — ลดการทดลองบนเครื่องจริงทุกครั้ง
| สถานการณ์โรงงาน | Twin จำลองอย่างไร | สิ่งที่สาธิตบนโฮสต์ |
|---|---|---|
| อุณหภูมิแบริ่ง / ตู้คอนโทรลสูง | temp + threshold | event overtemp · หยุดโหมดรันจำลอง |
| สั่นผิดปกติ / เอียง | BMI270 accel หรือ orientation (ex05) |
event vibration_high / tilt alarm |
| ความดันในระบบลม/ของเหลว | DPS368 เป็น proxy | กราฟ + MQTT telemetry |
| ช่างสั่งจาก SCADA จำลอง | MQTT command | run / stop / ack_alarm |
| สัญญาณขาดช่วงบนไลน์ | หยุด publish / stop broker | stale (ex08) · reconnect |
สามฉากเดโม
- Normal — ไลน์ “เขียว” ค่าอยู่ในย่าน · operator dashboard (ex06) อัปเดต
- Stimulus — inject overtemp/vibration → alarm state + event topic
- Command / fault — สั่ง
stopจาก MQTT หรือ สูญเสียลิงก์สั้น ๆ แล้วกู้ (สำคัญต่อ downtime narrative)
จุดเล่าที่ดี: เน้นว่า Twin ใช้ ซ้อม runbook (ใครทำอะไรเมื่อ alarm) ก่อนแตะเครื่องจริง
plant/<lineId>/machine/<id>/telemetryplant/<lineId>/machine/<id>/alarmplant/<lineId>/machine/<id>/cmd4.4 Medical / health & wellness (lab simulation only)
หัวข้อที่มีชื่อว่า “4.4 Medical / health & wellness (lab simulation only)”ภาพที่ผู้ชมเห็น: อุปกรณ์ติดตามสุขภาพหรือโมดูล bedside จำลอง — ฝึกท่อข้อมูลและความน่าเชื่อถือของลิงก์ ไม่ใช่ อุปกรณ์แพทย์ที่ผ่านการรับรองคลินิก
ขอบเขตของแล็บ
ใช้ค่าจำลอง / เซ็นเซอร์พัฒนาการบน DevKit เท่านั้น · ห้ามอ้างว่าผ่านมาตรฐานการแพทย์ · ห้ามใช้ข้อมูลคนไข้จริงในแล็บ · เน้น privacy: ไม่ใส่ชื่อ–HN ใน topic/payload ที่ส่งต่อ
| สถานการณ์สุขภาพ (จำลอง) | Twin จำลองอย่างไร | สิ่งที่สาธิตบนโฮสต์ |
|---|---|---|
| อุณหภูมิแวดล้อมรอบผู้ป่วย / ห้อง | SHT40 | climate comfort บน dashboard |
| ท่าทาง / การล้ม (แนวคิด) | BMI270 orientation — M04 ex05 | horizon เอียงผิดปกติ → event |
| กิจกรรม / การเคลื่อนไหว | IMU scene Motion | telemetry rate สูงขึ้น |
| พยาบาล/แอปสั่งโหมดวัด | MQTT command | mode=active_monitor |
| สัญญาณขาด = ความเสี่ยง | stale / disconnect | ex08 + reconnect drill (M05) |
สามฉากเดโม
- Normal — สตรีมนิ่ง · แสดงว่าลิงก์และ schema ถูกต้อง
- Stimulus — เอียง/Motion แรง → event
posture_alert(ชื่อจำลอง) ขึ้น subscriber - Fault — ตัดสตรีมสั้น ๆ → UI แสดง stale/reconnect — เล่าว่าทำไม health link ต้องมี watchdog
Topic ตัวอย่าง (หลีกเลี่ยงข้อมูลระบุตัวตน)
care/device/<id>/vitals_sim/telemetry ← ค่าจำลองเท่านั้นcare/device/<id>/statecare/device/<id>/event/posture_alertcare/device/<id>/cmd4.5 One mapping table (all domains → same lab kit)
หัวข้อที่มีชื่อว่า “4.5 One mapping table (all domains → same lab kit)”| โดเมน | “ฮีโร่” ที่เล่า | เซ็นเซอร์หลักในแล็บ | Consumer แนะนำ | Event ตัวอย่าง |
|---|---|---|---|---|
| IoT ทั่วไป | โหนดขอบ ↔ คลาวด์ | SHT40 + state | ex06 + ex15 | threshold_exceeded |
| ในบ้าน | ห้องสบาย / ปลอดภัย | SHT40 + switch | ex06 + MQTT cmd | motion_detected |
| โรงงาน | เครื่องจักร + alarm | temp/pressure + BMI270 | ex06 + ex08 + ex15 | overtemp / tilt |
| สุขภาพ (จำลอง) | ลิงก์เฝ้าระวัง | BMI270 + SHT40 | ex05 + ex08 + ex09 | posture_alert |
เขียนชื่อโดเมนที่เลือกไว้บนหน้าแรกของ e2e-case-brief.md
5. Case Study — Smart Environmental Monitor (Twin)
หัวข้อที่มีชื่อว่า “5. Case Study — Smart Environmental Monitor (Twin)”โจทย์แนะนำเริ่มต้นของหลักสูตร (เทียบเท่าโดเมน IoT / สภาพแวดล้อม) — จำลองมอนิเตอร์สิ่งแวดล้อมบน Twin แล้วพิสูจน์ E2E
ถ้าเลือกโดเมน §4.2–§4.4 ให้ใช้โครงเดียวกัน แค่เปลี่ยนชื่อสถานการณ์และ event ตามตารางด้านบน
5.1 Suggested story
หัวข้อที่มีชื่อว่า “5.1 Suggested story”| ชิ้น | ตัวอย่างในแล็บ |
|---|---|
| เซ็นเซอร์ | อุณหภูมิ / ความชื้น (SHT40) และ/หรือ pressure · สวิตช์หรือโหมด |
| พฤติกรรม | เกินเกณฑ์ → เปลี่ยน state / LED / event |
| Twin | Virtual device + script Lab Quiet → Warm / Alert |
| Host view | Studio telemetry + optional 3D |
| Cloud sim | MQTT telemetry topic + คำสั่งโหมดกลับ (อย่างน้อยหนึ่งทาง) |
| External proof | ex06 (multi-sensor Live Data) และ/หรือ ex15 (WS vs MQTT) |
5.2 Architecture sketch for your README
หัวข้อที่มีชื่อว่า “5.2 Architecture sketch for your README”[Event script] ──stimulus──► [Virtual sensors] │ ▼ [Firmware co-sim] decide / act │ ┌─────────────┴─────────────┐ ▼ ▼ [Bitstream Studio] [MQTT broker] │ │ ▼ ▼ web-app ex06 ex09 / ex15 / gauges5.3 Three demo scenarios (required)
หัวข้อที่มีชื่อว่า “5.3 Three demo scenarios (required)”| # | ชื่อ | สิ่งที่ผู้ชมต้องเห็น |
|---|---|---|
| 1 | Normal | ค่า environmental อัปเดตสม่ำเสมอบน Studio + consumer |
| 2 | Stimulus / threshold | สคริปต์หรือสวิตช์ทำให้ state/event เปลี่ยนชัด |
| 3 | Command or fault | คำสั่ง MQTT เข้าอุปกรณ์/Twin หรือ ตัด broker/สตรีมสั้น ๆ แล้วกู้คืน |
รายละเอียดกรอกใน e2e-case-brief.md
5.4 Host evidence — ex06 and ex15
หัวข้อที่มีชื่อว่า “5.4 Host evidence — ex06 and ex15”| หน้า | ท่อ | ใช้เป็นหลักฐาน |
|---|---|---|
ex06_dashboard.html |
Live Data | การ์ดหลายเซ็นเซอร์ · route · ค่า primary fields |
ex15_ws_mqtt_dashboard.html |
สลับ MQTT (:8883) / WebSocket (:9998) |
แสดงว่าท่อ cloud-sim กับ bus คนละช่อง — เลือก transport ให้ตรงเดโม |
ขั้นตอนสั้นสำหรับหลักฐาน:
- Serve Hackathon
web-app/ - เปิด ex06 ระหว่าง Normal + Stimulus — แคปคู่กับ Studio
- Start broker → เปิด ex15 โหมด MQTT (หรือ ex09) ระหว่าง publish — แคป payload/กราฟ
- แนบไฟล์หลักฐานในโฟลเดอร์ผลงาน
ex15 ช่วยสอนผู้ชมว่า WS bus ≠ MQTT broker — อย่าสลับ transport กลางการสาธิตโดยไม่บอก
6. Deliverables and Documentation
หัวข้อที่มีชื่อว่า “6. Deliverables and Documentation”6.1 What to submit
หัวข้อที่มีชื่อว่า “6.1 What to submit”| ชิ้น | คำอธิบาย |
|---|---|
| โปรเจกต์ / ลิงก์ | เฟิร์มแวร์ + twin assets ที่ใช้ |
| README | วิธีรันซ้ำทีละขั้น (ดู §6.2) · ระบุโดเมนที่เลือก |
| e2e-case-brief.md | กรอกครบ 3 เคส + โดเมน |
| หลักฐานเดโม | สกรีนช็อต/คลิป Studio + ex06 และ/หรือ ex15/ex09 |
| (ถ้ามี) script / device model | จาก M03 ที่ล็อกเวอร์ชันแล้ว |
แผนที่เอกสารทั้งคอร์ส: course-package.md
6.2 README outline (copy into your project)
หัวข้อที่มีชื่อว่า “6.2 README outline (copy into your project)”# <Project name> (Course 2 Capstone)Domain: IoT | Home | Industrial | Health-sim | Other: …
## Hardware / pathSimulator | Board + HEX version | Studio version
## Bring-up1. Open workspace …2. Link backend (one only) …3. Start broker (if MQTT) …4. Serve web-app …
## Demo script1. Normal — …2. Stimulus — …3. Command / fault — …
## Topics / payloads(no passwords · no personal health identifiers)
## Known limits…6.3 Where to look when stuck
หัวข้อที่มีชื่อว่า “6.3 Where to look when stuck”| ความต้องการ | ไปที่ |
|---|---|
| ตัวอย่างโค้ดเฟิร์มแวร์ / API | Developer Hub |
| Host / broker / twin UI | Bitstream Studio |
| HEX / VSIX / web-app | Hackathon |
| MQTT บนบอร์ดจริง | Course 1 M06 |
| Capstone ฝั่ง SDK อย่างเดียว | Course 1 M08 |
7. After Course 2
หัวข้อที่มีชื่อว่า “7. After Course 2”หลังจบโมดูลนี้ คุณควรพาโปรเจกต์จากระดับ “รันบน Twin ได้” ไปสู่ระดับ มีชุดทดสอบที่ทำซ้ำได้ และเล่าได้ว่าโดเมนไหนที่ท่อเดียวกันไปรองรับ
ทางเลือกถัดไปที่พบบ่อย:
| ทิศทาง | ทำอะไรต่อ |
|---|---|
| ยืนยันบนฮาร์ดแวร์เต็มรูป | กลับ Course 1 — flash · Wi‑Fi · MQTT/BLE จริง |
| ขยาย visualization / 3D | ternion-3d-assets-free + M03 Blender path |
| ขยาย cloud | broker ของแล็บ → นโยบายคลาวด์ขององค์กร (อย่า commit secret) |
| โดเมนเฉพาะ (โรงงาน / สุขภาพ) | ศึกษาข้อกำหนดจริงขององค์กร — Twin ในคอร์สเป็นสนามซ้อม ไม่แทนการรับรอง |
Next Steps
หัวข้อที่มีชื่อว่า “Next Steps”- เลือกโดเมนจาก §4 แล้วทำ แล็บ — Capstone E2E
- กรอก e2e-case-brief.md
- ตรวจรายการส่งมอบด้วย course-package.md
References and Further Reading
หัวข้อที่มีชื่อว่า “References and Further Reading”- M01–M05 · Course 2 TOC
- Course 1 M08 Capstone · Course 1 M06 MQTT
- Bitstream Studio
- TESAIoT_Hackathon —
web-app/ex06·ex15 - TESAIoT Developer Hub
- ternion-3d-assets-free
เช็กความเข้าใจ
หัวข้อที่มีชื่อว่า “เช็กความเข้าใจ”คำถามสั้นสามข้อใน quiz.yaml ผูกกับเป้าหมายของบทเรียนนี้ข้อละหนึ่งคำถาม ลองตอบเองก่อน แล้วค่อยเทียบกับเฉลยและคำอธิบายในไฟล์
ลงมือต่อที่ แล็บ Capstone: มินิโปรเจกต์ E2E บน Digital Twin
Lab · Case brief · Course package · ← Table of Contents · ← M05
คำถามทบทวน
ลองตอบเองก่อน แล้วค่อยเปิดดูเฉลย
-
ข้อใดอยู่ในเกณฑ์ผ่านขั้นต่ำของ Capstone Course 2 (เลือกได้หลายข้อ) (เป้าหมายข้อ 1)
- ใช้ทั้ง Live Data และ MQTT บนเดโมเดียวกัน
- README วิธีรันซ้ำ (bring-up → demo → teardown)
- ตารางเทส E2E ผ่านอย่างน้อย 3 เคส
- MQTT publish หรือ subscribe อย่างน้อยหนึ่งทาง
ดูเฉลย
คำตอบ: B. README วิธีรันซ้ำ (bring-up → demo → teardown) · C. ตารางเทส E2E ผ่านอย่างน้อย 3 เคส · D. MQTT publish หรือ subscribe อย่างน้อยหนึ่งทาง
ตาราง 2.1 Minimum pass rubric: การใช้ทั้ง Live Data และ MQTT เป็นงานต่อยอด
-
หลักของการวิเคราะห์ log ในโมดูลนี้คือข้อใด (เป้าหมายข้อ 2)
- แก้ทีละชั้น และแคป log ทั้งฝั่งเฟิร์มแวร์และโฮสต์ในรอบเดียวกัน
- ดู log ฝั่งโฮสต์อย่างเดียวก็พอ
- แก้เฟิร์มแวร์และโหมด Studio พร้อมกันเพื่อประหยัดเวลา
- ลบ log เก่าก่อนทุกครั้งเพื่อไม่ให้สับสน
ดูเฉลย
คำตอบ: A. แก้ทีละชั้น และแคป log ทั้งฝั่งเฟิร์มแวร์และโฮสต์ในรอบเดียวกัน
Key phrase ในหัวข้อ 3 Log Analysis
-
ถ้าเลือกโดเมน “โรงงาน” สำหรับ Capstone ต้องเตรียมฮาร์ดแวร์อย่างไรตามบทเรียน (เป้าหมายข้อ 3)
- ต้องใช้ PLC จริง
- ต้องต่อ Modbus กับเครื่องจักรจริง
- ไม่ต้องมีฮาร์ดแวร์เฉพาะโดเมน ให้แมปลงเครื่องมือในแล็บที่มีอยู่ (SHT40 / DPS368 / BMI270 / สวิตช์ / MQTT)
- ต้องซื้อเซนเซอร์อุตสาหกรรมจริงเท่านั้น
ดูเฉลย
คำตอบ: C. ไม่ต้องมีฮาร์ดแวร์เฉพาะโดเมน ให้แมปลงเครื่องมือในแล็บที่มีอยู่ (SHT40 / DPS368 / BMI270 / สวิตช์ / MQTT)
หัวข้อ 4: เลือกโดเมนแล้วแมปลงเครื่องมือในแล็บ โดยไม่ต้องมีฮาร์ดแวร์เฉพาะโดเมน
อ้างอิงบทเรียนนี้
ถ้านำบทเรียนนี้ไปสอน ทำสไลด์ หรือทำเอกสารต่อ ให้อ้างอิงด้วยข้อความนี้ ถ้าดัดแปลงเนื้อหา ให้เติม (ดัดแปลง)ต่อท้ายชื่อบทเรียน
"ทดสอบ end-to-end บน Digital Twin" จาก TESA Open Knowledge โดยสมาคมสมองกลฝังตัวไทย (Thai Embedded Systems Association: TESA) https://github.com/tesaiot/tesa-qualification-program สัญญาอนุญาต CC BY-NC 4.0
ข้อความอ้างอิงภาษาอังกฤษ: "End-to-end Testing on the Digital 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/m06-integration/l01-system-integration-testing/
บทเรียนนี้ดัดแปลงจากต้นฉบับด้านล่าง เมื่ออ้างอิงให้คงเครดิตต้นฉบับไว้ด้วย
https://github.com/drsanti/TESAIoT-Courses/blob/287c21814ba8c75f693136616dcd270349a15966/C2/M06/README.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 Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · CC BY-NC 4.0
เนื้อหาเผยแพร่ภายใต้ CC BY-NC 4.0 นำไปใช้ต่อในงานที่ไม่ใช่เพื่อการค้าได้ โปรดอ้างอิงสมาคมสมองกลฝังตัวไทย (TESA) ทุกครั้ง · วิธีอ้างอิง TESA