วางแผน Capstone และใช้แผนที่เอกสาร
วิดีโอประกอบ
ดูบน YouTube (เปิดในแท็บใหม่)
-
Software Development Process - EP01 : Overall Software Development Process สมาคมสมองกลฝังตัวไทย (TESA) -
Software Development Process - EP03 : System Requirements สมาคมสมองกลฝังตัวไทย (TESA) -
Software Development Process - EP04 : Software Requirements (ต่อ) สมาคมสมองกลฝังตัวไทย (TESA)
วิดีโอโดย สมาคมสมองกลฝังตัวไทย (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 (commitf5f09a6) ระบุว่าpython-app/,ble-react/และble-flet/เป็นของผู้ดูแลและไม่อยู่ใน repo สาธารณะ ให้ใช้เส้นทางสำรองที่บทเรียนเสนอไว้แล้ว คือ GATT explorer ทั่วไป เช่น nRF Connect, LightBlue หรือ AIROC™ Bluetooth® Connect
เป้าหมาย (Learning Outcomes)
หัวข้อที่มีชื่อว่า “เป้าหมาย (Learning Outcomes)”เมื่อเรียนจบ คุณควรทำได้ดังนี้:
- ใช้ ชุดแบบฝึก M01–M07 เป็นฐาน แล้วรวมเป็นระบบที่สาธิตได้
- ส่งมอบงานตาม เกณฑ์ผ่าน ของ Capstone (build/flash, RTOS, sensor, MQTT หรือ BLE)
- ใช้ แผนที่เอกสาร / API ของหลักสูตรเพื่อหาฟังก์ชันและตัวอย่างต่อเอง
- ส่งมอบ โปรเจกต์ Capstone พร้อม README ที่ผู้อื่นทำซ้ำได้
- ใช้แหล่งเรียนรู้ ออนไลน์ (Developer Hub, Marketplace, Hackathon) ประกอบการสาธิต
แบบฝึกของแต่ละโมดูลเป็นส่วนหนึ่งของชุดฝึกทั้งหลักสูตร — M08 คือชั้น รวมและส่งมอบ
Read alongside this chapter
หัวข้อที่มีชื่อว่า “Read alongside this chapter”| เอกสาร | ใช้เมื่อ |
|---|---|
| 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 |
1. Full Hands-on Lab Index (Course 1)
หัวข้อที่มีชื่อว่า “1. Full Hands-on Lab Index (Course 1)”| 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 คือการ เลือกและเชื่อม ชิ้นส่วนที่มีแล้ว — ไม่ใช่เขียนทุกอย่างใหม่จากศูนย์
2. Capstone Plan and Pass Criteria
หัวข้อที่มีชื่อว่า “2. Capstone Plan and Pass Criteria”ใช้ส่วนนี้วางแผนงานและตรวจก่อนส่ง
2.1 Suggested pacing (for you)
หัวข้อที่มีชื่อว่า “2.1 Suggested pacing (for you)”| ช่วง | โฟกัส |
|---|---|
| ก่อนเริ่ม Capstone | ตรวจว่า lab หลัก M02–M07 ผ่านเกณฑ์ขั้นต่ำแล้ว |
| ชม. 1 | เขียนสถาปัตยกรรม task + เลือกเซ็นเซอร์ / connectivity |
| ชม. 2–3 | รวมโค้ดบนบอร์ด + ทดสอบ MQTT และ/หรือ BLE |
| ชม. 4 / ทำต่อเอง | README, หลักฐานสาธิต, เก็บงาน |
2.2 Your setup checklist
หัวข้อที่มีชื่อว่า “2.2 Your setup checklist”- บอร์ด + สาย USB + Wi‑Fi ที่ใช้ได้
- Broker ที่กำหนด (LAN / Studio / สาธารณะตามนโยบาย) — ถ้าใช้ MQTT
- โทรศัพท์หรือ PC ที่สแกน BLE ได้ — ถ้าใช้ BLE
- Bitstream Studio หรือ VSIX จาก Hackathon
- HEX / Flasher จาก Hackathon เมื่อเลือกใช้แพ็กสำเร็จรูป
- อย่า commit รหัสผ่าน Wi‑Fi / broker ในไฟล์ที่ส่งสาธารณะ
2.3 Minimum pass criteria
หัวข้อที่มีชื่อว่า “2.3 Minimum pass criteria”| เกณฑ์ | ต้องมี |
|---|---|
| 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
3. Developer Guide and API Reference Map
หัวข้อที่มีชื่อว่า “3. Developer Guide and API Reference Map”3.1 Where to look first
หัวข้อที่มีชื่อว่า “3.1 Where to look first”| ความต้องการ | ไปที่ |
|---|---|
| เรียกดูตัวอย่างออนไลน์ | 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 |
3.2 Naming map (recap for Capstone)
หัวข้อที่มีชื่อว่า “3.2 Naming map (recap for Capstone)”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_handler3.3 Capstone data-flow (reference architecture)
หัวข้อที่มีชื่อว่า “3.3 Capstone data-flow (reference architecture)”[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
4. Project Examples and Source Patterns
หัวข้อที่มีชื่อว่า “4. Project Examples and Source Patterns”| แหล่งตัวอย่าง | บทบาทใน M08 |
|---|---|
| โปรเจกต์ที่ผู้เรียนสร้างใน M02–M07 | ฐานโค้ด Capstone |
| Developer Hub | ดึงตัวอย่าง GPIO / Sensors / System / Integrations |
| TESAIoT_Hackathon | HEX สำเร็จรูป, web-app/, ble-flet/ สำหรับหลักฐาน live |
| Infineon CE (เสริม) | เทียบแนวทางผู้ผลิต — ไม่แทน TESA Driver API |
4.1 Recommended Capstone theme
หัวข้อที่มีชื่อว่า “4.1 Recommended Capstone theme”Environmental / Activity monitor (ขนาดเล็ก)
ต้องมีอย่างน้อย:
- Sensor path — อ่านเป็นคาบ + filter หรือ window (M05)
- Local indication — LED และ/หรือ UART (M03)
- RTOS — ≥ 2 tasks + คิวหรือ mutex เมื่อจำเป็น (M04)
- Connectivity — อย่างน้อยหนึ่งเส้น:
- MQTT publish + subscribe คำสั่ง (M06), หรือ
- BLE peripheral ที่โฮสต์เชื่อมได้ + ยืนยันลิงก์/คำสั่ง (M07)
ทางเลือกเสริม:
- ใช้ทั้ง MQTT และ BLE
- Event/alert เมื่อเกินเกณฑ์
- โครงสร้าง
to_twin(คิวหรือ topic แยก) สำหรับต่อ Digital Twin - สาธิตบน Bitstream Studio, Hackathon dashboard หรือ
ble-flet/
5. Course Resources Map
หัวข้อที่มีชื่อว่า “5. Course Resources Map”| ชิ้น | ที่อยู่ |
|---|---|
| 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 |
External portals
หัวข้อที่มีชื่อว่า “External portals”| 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 |
6. Course 1 Wrap-Up and Next Path
หัวข้อที่มีชื่อว่า “6. Course 1 Wrap-Up and Next Path”หลังจบ Course 1 คุณควรอธิบายได้ว่า:
- TESA Firmware SDK วางชั้น HAL/Driver/Utility/Application อย่างไร
- ModusToolbox™ + VS Code ใช้สร้าง ไล่บั๊ก และ flash อย่างไร
- GPIO / peripherals, FreeRTOS, sensor prep, MQTT และ BLE ต่อกันเป็นผลิตภัณฑ์ Edge อย่างไร
- โฮสต์ (Bitstream Studio / Hackathon BLE) และแพ็กแล็บช่วยทดสอบอย่างไร
เส้นทางต่อไป (นอก Course 1): หลักสูตร Digital Twin / Product Design — ใช้สตรีมและโครงสร้างที่เตรียมใน Capstone เป็นอินพุต
Next Steps
หัวข้อที่มีชื่อว่า “Next Steps”- ทำ Capstone: Lab
- กรอก capstone-brief.md
- เก็บแผนที่เอกสาร: course-package.md
- กลับไปทบทวนโมดูลที่ยังไม่แน่นผ่าน TOC
References and Further Reading
หัวข้อที่มีชื่อว่า “References and Further Reading”- Course 1 TOC
- TESAIoT Developer Hub
- Bitstream Studio
- TESAIoT_Hackathon
- M01 · M02 · M03 · M04 · M05 · M06 · M07
- MQTT Essentials · Bluetooth LE overview (Bluetooth SIG)
- PSOC™ Edge E84
เช็กความเข้าใจ
หัวข้อที่มีชื่อว่า “เช็กความเข้าใจ”คำถามสั้นสามข้อใน quiz.yaml ผูกกับเป้าหมายของบทเรียนนี้ข้อละหนึ่งคำถาม ลองตอบเองก่อน แล้วค่อยเทียบกับเฉลยและคำอธิบายในไฟล์
ลงมือต่อที่ แล็บ Capstone: มินิโปรเจกต์
Lab · Capstone brief · Course package map · ← Table of Contents
ตัวอย่างบน TESAIoT Developer Hub
หัวข้อที่มีชื่อว่า “ตัวอย่างบน TESAIoT Developer Hub”ลองของจริงบน 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
คำถามทบทวน
ลองตอบเองก่อน แล้วค่อยเปิดดูเฉลย
-
ข้อใดเป็นเกณฑ์ผ่านขั้นต่ำของ Capstone (เลือกได้หลายข้อ) (เป้าหมายข้อ 1)
- ไม่ฝัง secret ในไฟล์ส่งสาธารณะ
- มีอย่างน้อย 2 FreeRTOS tasks
- MQTT หรือ BLE อย่างน้อยหนึ่งเส้น พร้อมรับคำสั่งหรือยืนยันลิงก์
- ใช้ทั้ง MQTT และ BLE พร้อมกัน
ดูเฉลย
คำตอบ: A. ไม่ฝัง secret ในไฟล์ส่งสาธารณะ · B. มีอย่างน้อย 2 FreeRTOS tasks · C. MQTT หรือ BLE อย่างน้อยหนึ่งเส้น พร้อมรับคำสั่งหรือยืนยันลิงก์
ตาราง Minimum pass criteria ในหัวข้อ 2.3: การใช้ทั้ง MQTT และ BLE เป็นงานต่อยอด ไม่ใช่เกณฑ์ขั้นต่ำ
-
ต้องการชื่อฟังก์ชัน peripheral ตารางในหัวข้อ 3.1 ให้เปิดที่ใดก่อน (เป้าหมายข้อ 2)
- ชีตของโมดูล 7 (ble-connectivity.md)
- บทเรียนโมดูล 1
- บทเรียนโมดูล 2 (toolchain)
- ชีตของโมดูล 3 (peripheral-api-map.md)
ดูเฉลย
คำตอบ: D. ชีตของโมดูล 3 (peripheral-api-map.md)
หัวข้อ 3.1 Where to look first: ชื่อฟังก์ชัน peripheral อยู่ใน M03 cheatsheet
-
สถานการณ์สาธิต “Command” หมายถึงข้อใด (เป้าหมายข้อ 3)
- build และ flash ใหม่ให้สำเร็จ
- ส่งคำสั่งจาก PC หรือโทรศัพท์ (MQTT topic หรือ BLE write) แล้วอุปกรณ์ตอบสนอง
- ค่าเซ็นเซอร์ไหลและ LED/UART ทำงานปกติ
- เปลี่ยนอุณหภูมิหรือขยับบอร์ดแล้วค่าเปลี่ยน
ดูเฉลย
คำตอบ: 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 Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · CC BY-NC 4.0
เนื้อหาเผยแพร่ภายใต้ CC BY-NC 4.0 นำไปใช้ต่อในงานที่ไม่ใช่เพื่อการค้าได้ โปรดอ้างอิงสมาคมสมองกลฝังตัวไทย (TESA) ทุกครั้ง · วิธีอ้างอิง TESA