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

ทดสอบ end-to-end บน Digital Twin

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

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

วิดีโอโดย ผศ.ดร.สันติ นุราช ภาควิชาวิศวกรรมระบบควบคุมและเครื่องมือวัด คณะวิศวกรรมศาสตร์ มหาวิทยาลัยเทคโนโลยีพระจอมเกล้าธนบุรี (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


เมื่อเรียนจบ คุณควรทำได้ดังนี้:

  1. ทดสอบระบบแบบ End-to-End (Firmware + Twin + Cloud/Dashboard)
  2. วิเคราะห์ Log และแก้ปัญหาแบบมีหลักฐาน
  3. ทำกรณีศึกษา / มินิโปรเจกต์ (เช่น Smart Environmental Monitor) และแมปเข้า โดเมนจริง — IoT ทั่วไป · ในบ้าน · โรงงาน · สุขภาพ
  4. ใช้ Developer Guide / ตัวอย่างโปรเจกต์ และแพ็กเอกสารออนไลน์ของหลักสูตร
  5. ส่งมอบแล็บเต็มรูปแบบ: สร้าง Twin model, ทดสอบโค้ดผ่าน Twin, จำลองเซ็นเซอร์/สัญญาณ

Key phrase
Capstone Course 2 = เลือกและเชื่อมชิ้นที่ทำมาแล้ว ให้มีตารางผ่าน/ไม่ผ่าน — ไม่ใช่เขียน Twin ใหม่ทั้งก้อน

เอกสาร ใช้เมื่อ
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 แบบฟอร์มผลงาน

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


เส้นทางขั้นต่ำที่ต้องมีหลักฐานผ่าน/ไม่ผ่าน:

[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

เกณฑ์ ต้องมี
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


เมื่อเดโมพัง ให้ถามตามลำดับ (ขยายจาก M04/M05):

1. Firmware still alive? → heartbeat / UART / LED
2. Twin / Studio session up? → Link · backend XOR
3. Stimulus actually applied? → M03 script / scene
4. Value reached firmware? → log read path
5. Firmware decided / wrote? → log / LED / publish
6. Studio shows change? → correct panel
7. Live Data consumer OK? → ex06 / ex08 connected · not stale
8. Broker up + topic match? → Start broker · ex09/ex15
9. 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 ส่วน “ปัญหาที่พบและการแก้”


โครง E2E ใน §2 เหมือนกันทุกโดเมน — ที่ต่างคือ เรื่องราว, ชื่อเซ็นเซอร์ในจินตนาการ, เกณฑ์แจ้งเตือน, และสิ่งที่ผู้ชมเข้าใจว่า “ทำไมต้องมี Twin”

เลือกโดเมนหนึ่งใน Capstone แล้วแมปลงเครื่องมือในแล็บ (SHT40 / DPS368 / BMI270 / สวิตช์ / MQTT) — ไม่ต้องมีฮาร์ดแวร์เฉพาะโดเมน

Key phrase
โดเมน = ภาษาของผู้ใช้ · ท่อ Twin = ภาษาของวิศวกรเฟิร์มแวร์ — Capstone ต้องพูดได้ทั้งสองภาษา

ถ้าทีมสนใจ… เลือกโดเมน จุดเด่นในการสาธิต
อุปกรณ์เชื่อมคลาวด์ทั่วไป §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) หรือเปลี่ยนชื่อโปรเจกต์ให้ตรงโดเมนที่เลือก — เกณฑ์ผ่านยังเป็นชุดเดียวกัน

ภาพที่ผู้ชมเห็น: โหนดเซ็นเซอร์ที่ขอบเครือข่าย ส่งค่าเข้า 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

สามฉากเดโม

  1. Normal — โหนดออนไลน์ ส่ง telemetry สม่ำเสมอ (origin สอดคล้อง Simulator หรือ Board)
  2. Stimulus — อุณหภูมิจำลองพุ่ง → event threshold_exceeded ขึ้น subscriber
  3. Command / fault — สั่ง mode=maintenance จาก MQTT หรือ ตัด broker สั้น ๆ แล้ว reconnect

Topic ตัวอย่าง (ปรับได้)

device/<id>/iot/telemetry
device/<id>/iot/state
device/<id>/iot/event/alert
device/<id>/iot/cmd ← subscribe คำสั่งกลับ

ภาพที่ผู้ชมเห็น: เซ็นเซอร์ในห้องนั่งเล่น / ห้องนอน ช่วยเรื่องสบายและความปลอดภัย — ไม่ใช่แค่กราฟตัวเลข แต่เป็น “บ้านตอบสนอง”

สถานการณ์บ้าน 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

สามฉากเดโม

  1. Normal — อุณหภูมิ/ความชื้นนิ่ง สบาย ๆ บน ex06
  2. Stimulus — “แดดจัดในห้อง” (Warm scene) → แจ้งเตือน + เปลี่ยนโหมด
  3. Command — ส่ง away จากโฮสต์ → อุปกรณ์เข้าโหมดประหยัด/เฝ้าระวัง (แสดงบน Studio)

จุดเล่าที่ดี: ใช้ GLB ห้องหรืออุปกรณ์จาก ternion-3d-assets-free เป็นฉากประกอบ — ย้ำว่าภาพ 3D ไม่แทน ค่าเซ็นเซอร์จริง

home/<roomId>/climate/telemetry
home/<roomId>/security/state
home/<roomId>/cmd

ภาพที่ผู้ชมเห็น: เครื่องจักรบนไลน์ผลิตมี “ฝาแฝดดิจิทัล” สำหรับซ้อมแจ้งเตือนและคำสั่งจากห้องควบคุม — ลดการทดลองบนเครื่องจริงทุกครั้ง

สถานการณ์โรงงาน 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

สามฉากเดโม

  1. Normal — ไลน์ “เขียว” ค่าอยู่ในย่าน · operator dashboard (ex06) อัปเดต
  2. Stimulus — inject overtemp/vibration → alarm state + event topic
  3. Command / fault — สั่ง stop จาก MQTT หรือ สูญเสียลิงก์สั้น ๆ แล้วกู้ (สำคัญต่อ downtime narrative)

จุดเล่าที่ดี: เน้นว่า Twin ใช้ ซ้อม runbook (ใครทำอะไรเมื่อ alarm) ก่อนแตะเครื่องจริง

plant/<lineId>/machine/<id>/telemetry
plant/<lineId>/machine/<id>/alarm
plant/<lineId>/machine/<id>/cmd

ภาพที่ผู้ชมเห็น: อุปกรณ์ติดตามสุขภาพหรือโมดูล 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)

สามฉากเดโม

  1. Normal — สตรีมนิ่ง · แสดงว่าลิงก์และ schema ถูกต้อง
  2. Stimulus — เอียง/Motion แรง → event posture_alert (ชื่อจำลอง) ขึ้น subscriber
  3. Fault — ตัดสตรีมสั้น ๆ → UI แสดง stale/reconnect — เล่าว่าทำไม health link ต้องมี watchdog

Topic ตัวอย่าง (หลีกเลี่ยงข้อมูลระบุตัวตน)

care/device/<id>/vitals_sim/telemetry ← ค่าจำลองเท่านั้น
care/device/<id>/state
care/device/<id>/event/posture_alert
care/device/<id>/cmd
โดเมน “ฮีโร่” ที่เล่า เซ็นเซอร์หลักในแล็บ 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


โจทย์แนะนำเริ่มต้นของหลักสูตร (เทียบเท่าโดเมน IoT / สภาพแวดล้อม) — จำลองมอนิเตอร์สิ่งแวดล้อมบน Twin แล้วพิสูจน์ E2E
ถ้าเลือกโดเมน §4.2–§4.4 ให้ใช้โครงเดียวกัน แค่เปลี่ยนชื่อสถานการณ์และ event ตามตารางด้านบน

ชิ้น ตัวอย่างในแล็บ
เซ็นเซอร์ อุณหภูมิ / ความชื้น (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)
[Event script] ──stimulus──► [Virtual sensors]
│
▼
[Firmware co-sim]
decide / act
│
┌─────────────┴─────────────┐
▼ ▼
[Bitstream Studio] [MQTT broker]
│ │
▼ ▼
web-app ex06 ex09 / ex15 / gauges
# ชื่อ สิ่งที่ผู้ชมต้องเห็น
1 Normal ค่า environmental อัปเดตสม่ำเสมอบน Studio + consumer
2 Stimulus / threshold สคริปต์หรือสวิตช์ทำให้ state/event เปลี่ยนชัด
3 Command or fault คำสั่ง MQTT เข้าอุปกรณ์/Twin หรือ ตัด broker/สตรีมสั้น ๆ แล้วกู้คืน

รายละเอียดกรอกใน e2e-case-brief.md

หน้า ท่อ ใช้เป็นหลักฐาน
ex06_dashboard.html Live Data การ์ดหลายเซ็นเซอร์ · route · ค่า primary fields
ex15_ws_mqtt_dashboard.html สลับ MQTT (:8883) / WebSocket (:9998) แสดงว่าท่อ cloud-sim กับ bus คนละช่อง — เลือก transport ให้ตรงเดโม

ขั้นตอนสั้นสำหรับหลักฐาน:

  1. Serve Hackathon web-app/
  2. เปิด ex06 ระหว่าง Normal + Stimulus — แคปคู่กับ Studio
  3. Start broker → เปิด ex15 โหมด MQTT (หรือ ex09) ระหว่าง publish — แคป payload/กราฟ
  4. แนบไฟล์หลักฐานในโฟลเดอร์ผลงาน

ex15 ช่วยสอนผู้ชมว่า WS bus ≠ MQTT broker — อย่าสลับ transport กลางการสาธิตโดยไม่บอก


ชิ้น คำอธิบาย
โปรเจกต์ / ลิงก์ เฟิร์มแวร์ + twin assets ที่ใช้
README วิธีรันซ้ำทีละขั้น (ดู §6.2) · ระบุโดเมนที่เลือก
e2e-case-brief.md กรอกครบ 3 เคส + โดเมน
หลักฐานเดโม สกรีนช็อต/คลิป Studio + ex06 และ/หรือ ex15/ex09
(ถ้ามี) script / device model จาก M03 ที่ล็อกเวอร์ชันแล้ว

แผนที่เอกสารทั้งคอร์ส: course-package.md

# <Project name> (Course 2 Capstone)
Domain: IoT | Home | Industrial | Health-sim | Other: …
## Hardware / path
Simulator | Board + HEX version | Studio version
## Bring-up
1. Open workspace …
2. Link backend (one only) …
3. Start broker (if MQTT) …
4. Serve web-app …
## Demo script
1. Normal — …
2. Stimulus — …
3. Command / fault — …
## Topics / payloads
(no passwords · no personal health identifiers)
## Known limits
…
ความต้องการ ไปที่
ตัวอย่างโค้ดเฟิร์มแวร์ / API Developer Hub
Host / broker / twin UI Bitstream Studio
HEX / VSIX / web-app Hackathon
MQTT บนบอร์ดจริง Course 1 M06
Capstone ฝั่ง SDK อย่างเดียว Course 1 M08

หลังจบโมดูลนี้ คุณควรพาโปรเจกต์จากระดับ “รันบน Twin ได้” ไปสู่ระดับ มีชุดทดสอบที่ทำซ้ำได้ และเล่าได้ว่าโดเมนไหนที่ท่อเดียวกันไปรองรับ

ทางเลือกถัดไปที่พบบ่อย:

ทิศทาง ทำอะไรต่อ
ยืนยันบนฮาร์ดแวร์เต็มรูป กลับ Course 1 — flash · Wi‑Fi · MQTT/BLE จริง
ขยาย visualization / 3D ternion-3d-assets-free + M03 Blender path
ขยาย cloud broker ของแล็บ → นโยบายคลาวด์ขององค์กร (อย่า commit secret)
โดเมนเฉพาะ (โรงงาน / สุขภาพ) ศึกษาข้อกำหนดจริงขององค์กร — Twin ในคอร์สเป็นสนามซ้อม ไม่แทนการรับรอง

  1. เลือกโดเมนจาก §4 แล้วทำ แล็บ — Capstone E2E
  2. กรอก e2e-case-brief.md
  3. ตรวจรายการส่งมอบด้วย course-package.md

  1. M01–M05 · Course 2 TOC
  2. Course 1 M08 Capstone · Course 1 M06 MQTT
  3. Bitstream Studio
  4. TESAIoT_Hackathon — web-app/ex06 · ex15
  5. TESAIoT Developer Hub
  6. ternion-3d-assets-free

คำถามสั้นสามข้อใน quiz.yaml ผูกกับเป้าหมายของบทเรียนนี้ข้อละหนึ่งคำถาม ลองตอบเองก่อน แล้วค่อยเทียบกับเฉลยและคำอธิบายในไฟล์

ลงมือต่อที่ แล็บ Capstone: มินิโปรเจกต์ E2E บน Digital Twin

Lab · Case brief · Course package · ← Table of Contents · ← M05

คำถามทบทวน

ลองตอบเองก่อน แล้วค่อยเปิดดูเฉลย

  1. ข้อใดอยู่ในเกณฑ์ผ่านขั้นต่ำของ Capstone Course 2 (เลือกได้หลายข้อ) (เป้าหมายข้อ 1)

    1. ใช้ทั้ง Live Data และ MQTT บนเดโมเดียวกัน
    2. README วิธีรันซ้ำ (bring-up → demo → teardown)
    3. ตารางเทส E2E ผ่านอย่างน้อย 3 เคส
    4. MQTT publish หรือ subscribe อย่างน้อยหนึ่งทาง
    ดูเฉลย

    คำตอบ: B. README วิธีรันซ้ำ (bring-up → demo → teardown) · C. ตารางเทส E2E ผ่านอย่างน้อย 3 เคส · D. MQTT publish หรือ subscribe อย่างน้อยหนึ่งทาง

    ตาราง 2.1 Minimum pass rubric: การใช้ทั้ง Live Data และ MQTT เป็นงานต่อยอด

  2. หลักของการวิเคราะห์ log ในโมดูลนี้คือข้อใด (เป้าหมายข้อ 2)

    1. แก้ทีละชั้น และแคป log ทั้งฝั่งเฟิร์มแวร์และโฮสต์ในรอบเดียวกัน
    2. ดู log ฝั่งโฮสต์อย่างเดียวก็พอ
    3. แก้เฟิร์มแวร์และโหมด Studio พร้อมกันเพื่อประหยัดเวลา
    4. ลบ log เก่าก่อนทุกครั้งเพื่อไม่ให้สับสน
    ดูเฉลย

    คำตอบ: A. แก้ทีละชั้น และแคป log ทั้งฝั่งเฟิร์มแวร์และโฮสต์ในรอบเดียวกัน

    Key phrase ในหัวข้อ 3 Log Analysis

  3. ถ้าเลือกโดเมน “โรงงาน” สำหรับ Capstone ต้องเตรียมฮาร์ดแวร์อย่างไรตามบทเรียน (เป้าหมายข้อ 3)

    1. ต้องใช้ PLC จริง
    2. ต้องต่อ Modbus กับเครื่องจักรจริง
    3. ไม่ต้องมีฮาร์ดแวร์เฉพาะโดเมน ให้แมปลงเครื่องมือในแล็บที่มีอยู่ (SHT40 / DPS368 / BMI270 / สวิตช์ / MQTT)
    4. ต้องซื้อเซนเซอร์อุตสาหกรรมจริงเท่านั้น
    ดูเฉลย

    คำตอบ: 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 ฉบับเต็ม

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

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