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

วางแผน Capstone และใช้แผนที่เอกสาร

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

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

วิดีโอโดย สมาคมสมองกลฝังตัวไทย (TESA) · ดูทั้งชุดใน playlist AIoT Foundation

Course 1 · Module 8
Suggested time: ยืดหยุ่น — แนะนำ 2–4 ชั่วโมง + ทำ Capstone ต่อเองได้
Format: รวมทักษะ M01–M07 เป็นมินิโปรเจกต์ + ใช้แผนที่เอกสาร / พอร์ทัลออนไลน์

Lab · Capstone brief · Course package map · ← Table of Contents · ← M07

หมายเหตุ: โค้ดในบทนี้เขียนสำหรับเฟิร์มแวร์ชุดใด (ตรวจสอบเมื่อ 26 ก.ย. 2026)

โค้ด C ในบทนี้เรียก API ของเฟิร์มแวร์ TESAIoT Bitstream ที่ต้นฉบับเรียกว่า “TESA Firmware SDK” ซึ่งเผยแพร่เป็นไฟล์ HEX สำเร็จรูป (tesaiot-bitstream-<version>.hex) คู่กับ Bitstream Studio ในแพ็กแล็บ TESAIoT_Hackathon ซอร์สโค้ดของเฟิร์มแวร์ชุดนี้ยังไม่เปิดเผยต่อสาธารณะ ฟังก์ชันอย่าง cm55_*, sensor_*, led_controller_*, cm33_mqtt_*, cm55_ble_* จึงยังไม่มี header ให้เปิดดูหรือนำไป build เอง ให้อ่าน snippet เป็นแนวคิดและลำดับการเรียกใช้ ส่วนการเรียก FreeRTOS และ Infineon PDL (เช่น xTaskCreate, vTaskDelay, Cy_GPIO_*) เป็น API สาธารณะตามปกติ

Capstone ใช้ API จากโมดูล 3–7 ทั้งหมด ดูตัวเทียบที่ตรวจแล้วใน SDK เปิดได้ในหมายเหตุของแต่ละบทเรียน และในตารางสรุปที่หน้าหลักสูตร

โฮสต์ ble-flet ยังไม่เผยแพร่ — README ของ TESAIoT_Hackathon (commit f5f09a6) ระบุว่า python-app/, ble-react/ และ ble-flet/ เป็นของผู้ดูแลและไม่อยู่ใน repo สาธารณะ ให้ใช้เส้นทางสำรองที่บทเรียนเสนอไว้แล้ว คือ GATT explorer ทั่วไป เช่น nRF Connect, LightBlue หรือ AIROC™ Bluetooth® Connect


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

  1. ใช้ ชุดแบบฝึก M01–M07 เป็นฐาน แล้วรวมเป็นระบบที่สาธิตได้
  2. ส่งมอบงานตาม เกณฑ์ผ่าน ของ Capstone (build/flash, RTOS, sensor, MQTT หรือ BLE)
  3. ใช้ แผนที่เอกสาร / API ของหลักสูตรเพื่อหาฟังก์ชันและตัวอย่างต่อเอง
  4. ส่งมอบ โปรเจกต์ Capstone พร้อม README ที่ผู้อื่นทำซ้ำได้
  5. ใช้แหล่งเรียนรู้ ออนไลน์ (Developer Hub, Marketplace, Hackathon) ประกอบการสาธิต

แบบฝึกของแต่ละโมดูลเป็นส่วนหนึ่งของชุดฝึกทั้งหลักสูตร — M08 คือชั้น รวมและส่งมอบ

เอกสาร ใช้เมื่อ
Table of Contents ดัชนีทั้งคอร์ส
Course package map แผนที่โมดูล + พอร์ทัลออนไลน์ + ดัชนี API
TESAIoT Developer Hub ตัวอย่างโค้ด + API Reference
Bitstream Studio Host / Digital Twin / broker tools
TESAIoT_Hackathon HEX, Flasher, VSIX, web-app/, ble-flet/
M05 · M06 · M07 Sensor + MQTT + BLE สำหรับ Capstone

Module Lab สิ่งที่ได้เมื่อผ่าน
M01 แผนที่โดเมน ↔ ชั้น SDK เลือกโดเมน/ชั้นได้ก่อนเขียนโค้ด
M02 Create / Build / Flash / Debug โปรเจกต์รันบนบอร์ด
M03 GPIO + UART + peripheral Driver API จริงบนฮาร์ดแวร์
M04 Multi-task + queue / mutex FreeRTOS พื้นฐาน
M05 Sensor + filter + window ข้อมูลพร้อม AI / twin
M06 Wi‑Fi + MQTT pub/sub เชื่อม cloud / broker
M07 BLE peripheral / scan + host เชื่อม local / phone / desktop
M08 Capstone mini-project ระบบรวมที่สาธิตและทำซ้ำได้

Key phrase
Capstone คือการ เลือกและเชื่อม ชิ้นส่วนที่มีแล้ว — ไม่ใช่เขียนทุกอย่างใหม่จากศูนย์


ใช้ส่วนนี้วางแผนงานและตรวจก่อนส่ง

ช่วง โฟกัส
ก่อนเริ่ม Capstone ตรวจว่า lab หลัก M02–M07 ผ่านเกณฑ์ขั้นต่ำแล้ว
ชม. 1 เขียนสถาปัตยกรรม task + เลือกเซ็นเซอร์ / connectivity
ชม. 2–3 รวมโค้ดบนบอร์ด + ทดสอบ MQTT และ/หรือ BLE
ชม. 4 / ทำต่อเอง README, หลักฐานสาธิต, เก็บงาน
  • บอร์ด + สาย USB + Wi‑Fi ที่ใช้ได้
  • Broker ที่กำหนด (LAN / Studio / สาธารณะตามนโยบาย) — ถ้าใช้ MQTT
  • โทรศัพท์หรือ PC ที่สแกน BLE ได้ — ถ้าใช้ BLE
  • Bitstream Studio หรือ VSIX จาก Hackathon
  • HEX / Flasher จาก Hackathon เมื่อเลือกใช้แพ็กสำเร็จรูป
  • อย่า commit รหัสผ่าน Wi‑Fi / broker ในไฟล์ที่ส่งสาธารณะ
เกณฑ์ ต้องมี
Build + flash ได้ตาม README ของคุณ ใช่
≥ 2 FreeRTOS tasks ใช่
Sensor path + LED/UART indication ใช่
Connectivity — MQTT หรือ BLE (อย่างน้อยหนึ่งเส้น) พร้อมรับคำสั่งหรือยืนยันลิงก์ ใช่
ไม่ฝัง secret ในไฟล์ส่งสาธารณะ ใช่

งานต่อยอด (ไม่บังคับ): ใช้ทั้ง MQTT และ BLE, threshold alert, mutex บนบัสร่วม, คิว/topic พร้อมต่อ Digital Twin, คุณภาพสาธิต

รายละเอียดเต็มใน แล็บ และ capstone-brief.md


ความต้องการ ไปที่
เรียกดูตัวอย่างออนไลน์ TESAIoT Developer Hub — Example Explorer + API Reference
ชื่อฟังก์ชัน peripheral M03 cheatsheet
FreeRTOS patterns M04 cheatsheet
Sensors / windows / fusion M05 cheatsheet
MQTT / Wi‑Fi triggers M06 cheatsheet
BLE peripheral / scan M07 cheatsheet
สถาปัตยกรรมชิป / ชั้น SDK M01
Toolchain M02
led_controller_* / cm55_button_* / sensor_*_*
xTaskCreate / vTaskDelay / xQueue* / xSemaphore*
cm55_trigger_connect / cm55_trigger_mqtt_* / bs_mqtt_telem_encode_json_*
cm55_trigger_ble_periph_* / cm55_ble_request_scan_* / cm55_ble_ipc_set_event_handler
[sensor_*_read task] --samples--> [filter / window]
│ │
│ ▼
│ [decision / event]
│ │ │
▼ ▼ ▼
[UART / LED] [MQTT publish] [BLE notify / host]
▲ ▲
└── [MQTT and/or BLE command path]

ตัวอย่างหน่วงใน task (จาก M04/M05):

TickType_t last = xTaskGetTickCount();
for (;;) {
/* read → filter → maybe publish */
vTaskDelayUntil(&last, pdMS_TO_TICKS(200));
}

ตัวอย่างสั่ง MQTT หลัง Wi‑Fi พร้อม (จาก M06):

(void)cm55_trigger_mqtt_connect();
/* wait until cm55_get_mqtt_status reports CONNECTED */

ตัวอย่างอ่านสถานะ BLE peripheral (จาก M07):

ipc_ble_periph_status_t ble;
if (cm55_ble_periph_status_get_sync(&ble, 5000U)) {
/* stack_ready / connection_id / tx_notify_enabled */
}

แผ่นรวม: course-package.md


แหล่งตัวอย่าง บทบาทใน M08
โปรเจกต์ที่ผู้เรียนสร้างใน M02–M07 ฐานโค้ด Capstone
Developer Hub ดึงตัวอย่าง GPIO / Sensors / System / Integrations
TESAIoT_Hackathon HEX สำเร็จรูป, web-app/, ble-flet/ สำหรับหลักฐาน live
Infineon CE (เสริม) เทียบแนวทางผู้ผลิต — ไม่แทน TESA Driver API

Environmental / Activity monitor (ขนาดเล็ก)

ต้องมีอย่างน้อย:

  1. Sensor path — อ่านเป็นคาบ + filter หรือ window (M05)
  2. Local indication — LED และ/หรือ UART (M03)
  3. RTOS — ≥ 2 tasks + คิวหรือ mutex เมื่อจำเป็น (M04)
  4. Connectivity — อย่างน้อยหนึ่งเส้น:
    • MQTT publish + subscribe คำสั่ง (M06), หรือ
    • BLE peripheral ที่โฮสต์เชื่อมได้ + ยืนยันลิงก์/คำสั่ง (M07)

ทางเลือกเสริม:

  • ใช้ทั้ง MQTT และ BLE
  • Event/alert เมื่อเกินเกณฑ์
  • โครงสร้าง to_twin (คิวหรือ topic แยก) สำหรับต่อ Digital Twin
  • สาธิตบน Bitstream Studio, Hackathon dashboard หรือ ble-flet/

ชิ้น ที่อยู่
Table of Contents หน้าหลักสูตร
Lessons M01–M08 mNN-<slug>/l01-<slug>/README.md
Labs mNN-<slug>/l02-lab/README.md
Cheatsheets / worksheets mNN-<slug>/l01-<slug>/resources/*
แผนที่รวม course-package.md
Portal URL
Code examples / API https://dev.tesaiot.dev/
VS Code host / twin https://marketplace.visualstudio.com/items?itemName=TERNIONDEV.bitstream-studio
Lab pack HEX/VSIX/web/BLE https://github.com/drsanti/TESAIoT_Hackathon

หลังจบ Course 1 คุณควรอธิบายได้ว่า:

  1. TESA Firmware SDK วางชั้น HAL/Driver/Utility/Application อย่างไร
  2. ModusToolbox™ + VS Code ใช้สร้าง ไล่บั๊ก และ flash อย่างไร
  3. GPIO / peripherals, FreeRTOS, sensor prep, MQTT และ BLE ต่อกันเป็นผลิตภัณฑ์ Edge อย่างไร
  4. โฮสต์ (Bitstream Studio / Hackathon BLE) และแพ็กแล็บช่วยทดสอบอย่างไร

เส้นทางต่อไป (นอก Course 1): หลักสูตร Digital Twin / Product Design — ใช้สตรีมและโครงสร้างที่เตรียมใน Capstone เป็นอินพุต

  1. ทำ Capstone: Lab
  2. กรอก capstone-brief.md
  3. เก็บแผนที่เอกสาร: course-package.md
  4. กลับไปทบทวนโมดูลที่ยังไม่แน่นผ่าน TOC

  1. Course 1 TOC
  2. TESAIoT Developer Hub
  3. Bitstream Studio
  4. TESAIoT_Hackathon
  5. M01 · M02 · M03 · M04 · M05 · M06 · M07
  6. MQTT Essentials · Bluetooth LE overview (Bluetooth SIG)
  7. PSOC™ Edge E84

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

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

Lab · Capstone brief · Course package map · ← Table of Contents

ลองของจริงบน TESAIoT Dev Kit: เปิดตัวอย่างบน Developer Hub เพื่ออ่านโค้ด ดาวน์โหลด หรือ flash เฟิร์มแวร์สำเร็จรูป

  • EP07 — SensorHub Final — โปรเจกต์ปิดคอร์ส: แดชบอร์ดรวมเซนเซอร์ทั้ง 4 ตัว (DPS368, SHT4x, BMI270, BMM350) + ไมโครโฟน PDM สเตอริโอ บนจอเดียว
  • EP07 — Final WiFi Manager — รวม scan + profile + connect + auto-retry + ping watchdog เป็น WiFi manager สมบูรณ์ พร้อม state machine บนหน้าจอและ auto-connect จาก profile

คำถามทบทวน

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

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

    1. ไม่ฝัง secret ในไฟล์ส่งสาธารณะ
    2. มีอย่างน้อย 2 FreeRTOS tasks
    3. MQTT หรือ BLE อย่างน้อยหนึ่งเส้น พร้อมรับคำสั่งหรือยืนยันลิงก์
    4. ใช้ทั้ง MQTT และ BLE พร้อมกัน
    ดูเฉลย

    คำตอบ: A. ไม่ฝัง secret ในไฟล์ส่งสาธารณะ · B. มีอย่างน้อย 2 FreeRTOS tasks · C. MQTT หรือ BLE อย่างน้อยหนึ่งเส้น พร้อมรับคำสั่งหรือยืนยันลิงก์

    ตาราง Minimum pass criteria ในหัวข้อ 2.3: การใช้ทั้ง MQTT และ BLE เป็นงานต่อยอด ไม่ใช่เกณฑ์ขั้นต่ำ

  2. ต้องการชื่อฟังก์ชัน peripheral ตารางในหัวข้อ 3.1 ให้เปิดที่ใดก่อน (เป้าหมายข้อ 2)

    1. ชีตของโมดูล 7 (ble-connectivity.md)
    2. บทเรียนโมดูล 1
    3. บทเรียนโมดูล 2 (toolchain)
    4. ชีตของโมดูล 3 (peripheral-api-map.md)
    ดูเฉลย

    คำตอบ: D. ชีตของโมดูล 3 (peripheral-api-map.md)

    หัวข้อ 3.1 Where to look first: ชื่อฟังก์ชัน peripheral อยู่ใน M03 cheatsheet

  3. สถานการณ์สาธิต “Command” หมายถึงข้อใด (เป้าหมายข้อ 3)

    1. build และ flash ใหม่ให้สำเร็จ
    2. ส่งคำสั่งจาก PC หรือโทรศัพท์ (MQTT topic หรือ BLE write) แล้วอุปกรณ์ตอบสนอง
    3. ค่าเซ็นเซอร์ไหลและ LED/UART ทำงานปกติ
    4. เปลี่ยนอุณหภูมิหรือขยับบอร์ดแล้วค่าเปลี่ยน
    ดูเฉลย

    คำตอบ: B. ส่งคำสั่งจาก PC หรือโทรศัพท์ (MQTT topic หรือ BLE write) แล้วอุปกรณ์ตอบสนอง

    Demo scenarios ในแล็บ Capstone: Normal, Stimulus และ Command ต่างกันที่แหล่งของการเปลี่ยนแปลง

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

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

"วางแผน Capstone และใช้แผนที่เอกสาร" จาก TESA Open Knowledge โดยสมาคมสมองกลฝังตัวไทย (Thai Embedded Systems Association: TESA) https://github.com/tesaiot/tesa-qualification-program สัญญาอนุญาต CC BY-NC 4.0

ข้อความอ้างอิงภาษาอังกฤษ: "Plan the Capstone and Use the Resource Map" 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/firmware-sdk-edge-ai/m08-capstone/l01-capstone-and-resources/

บทเรียนนี้ดัดแปลงจากต้นฉบับด้านล่าง เมื่ออ้างอิงให้คงเครดิตต้นฉบับไว้ด้วย
https://github.com/drsanti/TESAIoT-Courses/blob/287c21814ba8c75f693136616dcd270349a15966/C1/M08/README.md · Original content by Asst. Prof. Dr. Santi Nuratch (ผศ.ดร.สันติ นุราช), KMUTT. Course 1 (C1/) 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