Content update
This commit is contained in:
+111
-103
@@ -2,13 +2,14 @@
|
||||
|
||||
== สร้างไฟล์แอปพลิเคชันด้วยตนเอง
|
||||
|
||||
#i โครงงานนี้ใช้แอปพลิเคชันที่สร้างขึ้นมาเอง โดยในการพัฒนาแอปพลิเคชัน
|
||||
#h(1.7em) โครงงานนี้ใช้แอปพลิเคชันที่สร้างขึ้นมาเอง โดยในการพัฒนาแอปพลิเคชัน
|
||||
อย่างน้อยต้องมีส่วนประกอบดังกล่าวก่อน
|
||||
|
||||
- Flutter
|
||||
- Git (ซึ่งคุณจะติดตั้งแล้วหากคุณทำตาม@writingFirmware)
|
||||
#set enum(indent: 1.7em)
|
||||
1. Flutter
|
||||
2. Git (ซึ่งคุณจะติดตั้งแล้วหากคุณทำตาม@writingFirmware)
|
||||
|
||||
#i อย่างไรก็ตาม Flutter มีข้อจำกัดว่า มีเพียง Android
|
||||
#h(1.7em) อย่างไรก็ตาม Flutter มีข้อจำกัดว่า มีเพียง Android
|
||||
เท่านั้นที่ไม่ว่าแพลตฟอร์มไหนก็จะสามารถคอมไพล์ไฟล์ `.apk` ออกมาได้ ดังนั้น
|
||||
การสร้างแอปพลิเคชันสำหรับ Linux ต้องทำบน Linux เท่านั้น และการสร้างแอปพลิเคชันสำหรับ Windows
|
||||
ต้องทำบน Windows เท่านั้น
|
||||
@@ -16,12 +17,13 @@
|
||||
=== การติดตั้งโปรแกรมเขียนโคด
|
||||
|
||||
#iii จริง ๆ แล้วนั้น Flutter สามารถทำงานกับโปรแกรมเขียนโคดใดก็ได้
|
||||
แต่มีโปรแกรมเหล่านี้ที่อาจมีประสบการณ์การพัฒนาที่ดีกว่าโปรแกรมอื่น:
|
||||
แต่มีโปรแกรมเหล่านี้ที่อาจมีประสบการณ์การพัฒนาที่ดีกว่าโปรแกรมอื่น
|
||||
|
||||
- Visual Studio Code (VS Code)
|
||||
- Android Studio
|
||||
- JetBrains IntelliJ
|
||||
- Firebase Studio
|
||||
#set enum(indent: 4.1em)
|
||||
1. Visual Studio Code (VS Code)
|
||||
2. Android Studio
|
||||
3. JetBrains IntelliJ
|
||||
4. Firebase Studio
|
||||
|
||||
#iii โครงงานนี้ใช้โปรแกรมเขียนโคด Android Studio เป็นหลักเนื่องจากแอปพลิเคชันโครงงานมี
|
||||
Android เป็นเป้าหมายหลัก และ Android SDK สามารถจัดการได้ง่ายกว่าใน Android Studio
|
||||
@@ -31,66 +33,64 @@ Code) และการติดตั้งด้วยตนเอง โด
|
||||
สามารถติดตั้งผ่าน VS Code ได้เลย แต่ก่อนอื่น ต้องทำการติดตั้งโปรแกรมและไลบรารีพื้นฐานที่จำเป็นสำหรับ
|
||||
Flutter ก่อน
|
||||
|
||||
#pagebreak()
|
||||
|
||||
=== การติดตั้งโปรแกรมและไลบรารีที่จำเป็น
|
||||
|
||||
#[
|
||||
#set enum(indent: 5.5em)
|
||||
+ Windows: ติดตั้ง Git สำหรับ Windows ซึ่งคุณสามารถดูขั้นตอนการติดตั้งได้ที่
|
||||
https://git-scm.com/install/windows หรือเพียงแค่ใช้คำสั่งด้านล่าง
|
||||
#afigure(
|
||||
```sh
|
||||
winget install --id Git.Git -e --source winget
|
||||
```,
|
||||
kind: image,
|
||||
caption: [คำสั่งในการติดตั้ง Git],
|
||||
)
|
||||
+ Linux: โปรดดู@flLinuxDetails สำหรับรายละเอียดแพคเกจและคำสั่งที่ต้องใช้สำหรับระบบต่าง ๆ
|
||||
|
||||
+ macOS: ใช้คำสั่งต่อไปนี้ในการติดตั้งเครื่องมือ Xcode ต่าง ๆ รวมถึง Git
|
||||
#afigure(
|
||||
```sh
|
||||
xcode-select --install
|
||||
```,
|
||||
kind: image,
|
||||
caption: [คำสั่งในการติดตั้งเครื่องมือ Xcode],
|
||||
)
|
||||
]
|
||||
1. สำหรับ Windows ติดตั้ง Git สำหรับ Windows ซึ่งคุณสามารถดูขั้นตอนการติดตั้งได้ที่
|
||||
https://git-scm.com/install/windows หรือเพียงแค่ใช้คำสั่งด้านล่าง
|
||||
#figure(
|
||||
```sh
|
||||
winget install --id Git.Git -e --source winget
|
||||
```,
|
||||
kind: image,
|
||||
caption: [คำสั่งในการติดตั้ง Git],
|
||||
)
|
||||
2. สำหรับ Linux โปรดดู@flLinuxDetails
|
||||
สำหรับรายละเอียดแพคเกจและคำสั่งที่ต้องใช้สำหรับระบบต่าง ๆ
|
||||
3. สำหรับ macOS ใช้คำสั่งต่อไปนี้ในการติดตั้งเครื่องมือ Xcode ต่าง ๆ รวมถึง Git
|
||||
#figure(
|
||||
```sh
|
||||
xcode-select --install
|
||||
```,
|
||||
kind: image,
|
||||
caption: [คำสั่งในการติดตั้งเครื่องมือ Xcode],
|
||||
)
|
||||
|
||||
=== การติดตั้งผ่าน Visual Studio Code
|
||||
|
||||
#block(inset: (left: 4.5em))[
|
||||
#set enum(indent: 1em)
|
||||
+ เปิด VSCode
|
||||
+ ติดตั้งส่วนขยาย Flutter \
|
||||
อยู่ภายใต้ ID `Dart-Code.flutter` ทั้งบน Visual Studio Marketplace และ OpenVSX
|
||||
+ ติดตั้ง Flutter ด้วย VS Code
|
||||
+ เปิด Command Palette ด้วยเมนู *View* > *Command Palette* หรือกด Ctrl + Shift +
|
||||
P
|
||||
+ ใน Command Palette พิมพ์ `flutter`.
|
||||
+ เลือก *Flutter: New Project*
|
||||
+ VS Code จะให้คุณเลือก Flutter SDK บนคอมพิวเตอร์ของคุณ เลือก *Download SDK*
|
||||
+ เมือหน้าไดอะลอก *Select Folder for Flutter SDK* แสดงขึ้น เลือกสถานที่ที่คุณอยากติดตั้ง
|
||||
Flutter
|
||||
+ คลิก *Clone Flutter* \
|
||||
ในระหว่างการดาวน์โหลด VS Code จะแสดงการแจ้งเตือนนี้:
|
||||
#[
|
||||
#set enum(indent: 4.1em)
|
||||
1. เปิด VSCode
|
||||
2. ติดตั้งส่วนขยาย Flutter ซึ่งอยู่ภายใต้ ID `Dart-Code.flutter` ทั้งบน Visual Studio
|
||||
Marketplace และ OpenVSX
|
||||
3. ติดตั้ง Flutter ด้วย VS Code
|
||||
|
||||
#listy(
|
||||
indent: 5.5em,
|
||||
numbering: thai-numbering,
|
||||
[เปิด Command Palette ด้วยเมนู _View > Command Palette_ หรือกด Ctrl + Shift +
|
||||
P],
|
||||
[ใน Command Palette พิมพ์ `flutter`],
|
||||
[เลือก _Flutter: New Project_],
|
||||
[VS Code จะให้คุณเลือก Flutter SDK บนคอมพิวเตอร์ของคุณ เลือก _Download SDK_],
|
||||
[เมือหน้าไดอะลอก _Select Folder for Flutter SDK_ แสดงขึ้น เลือกสถานที่ที่คุณอยากติดตั้ง
|
||||
Flutter],
|
||||
[คลิก _Clone Flutter_ โดยในระหว่างการดาวน์โหลด VS Code จะแสดงการแจ้งเตือนนี้
|
||||
```
|
||||
Downloading the Flutter SDK. This may take a few minutes.
|
||||
```
|
||||
การดาวน์โหลดนี้จะใช้เวลาสองสามนาที หากคุณเชื่อว่าการดาวน์โหลดหยุดชะงัก คุณสามารถคลิก
|
||||
*Cancel* แล้วเริ่มต้นการติดตั้งใหม่ได้
|
||||
+ คลิก *Add SDK to PATH* \
|
||||
เมื่อเสร็จสิ้น จะมีการแจ้งเตือน
|
||||
_Cancel_ แล้วเริ่มต้นการติดตั้งใหม่ได้],
|
||||
[คลิก _Add SDK to PATH_ และเมื่อเสร็จสิ้น จะมีการแจ้งเตือน
|
||||
```
|
||||
The Flutter SDK was added to your PATH
|
||||
```
|
||||
+ VS Code อาจแสดงการแจ้งเตือนเกี่ยวกับการเก็บข้อมูลของ Google หากคุณยินยอม คลิก *OK*
|
||||
+ เพื่อความแน่ใจ กรุณาปิดเทอร์มินัลทุกหน้าต่างหรือรีสตาร์ท VS Code เพื่อให้แน่ใจว่า Flutter
|
||||
จะสามารถใช้ผ่านเทอร์มินัลได้
|
||||
+ เมื่อเสร็จสิ้น ใช้คำสั่ง `flutter doctor -v` ในเทอร์มินัลที่คุณเลือกเพื่อตรวจสอบการติดตั้ง
|
||||
Flutter ของคุณ \
|
||||
หากคำสั่งไม่เจอหรือเกิดข้อผิดพลาดขึ้น ตรวจสอบ
|
||||
```],
|
||||
[VS Code อาจแสดงการแจ้งเตือนเกี่ยวกับการเก็บข้อมูลของ Google หากคุณยินยอม คลิก _OK_],
|
||||
[เพื่อความแน่ใจ กรุณาปิดเทอร์มินัลทุกหน้าต่างหรือรีสตาร์ท VS Code เพื่อให้แน่ใจว่า Flutter
|
||||
จะสามารถใช้ผ่านเทอร์มินัลได้],
|
||||
)
|
||||
|
||||
4. เมื่อเสร็จสิ้น ใช้คำสั่ง `flutter doctor -v` ในเทอร์มินัลที่คุณเลือกเพื่อตรวจสอบการติดตั้ง
|
||||
Flutter ของคุณ หากคำสั่งไม่เจอหรือเกิดข้อผิดพลาดขึ้น ตรวจสอบ
|
||||
https://docs.flutter.dev/install/troubleshoot สำหรับข้อมูลเพิ่มเติม
|
||||
]
|
||||
|
||||
@@ -99,32 +99,38 @@ Flutter ก่อน
|
||||
#iii แนะนำให้ทำตาม https://docs.flutter.dev/install/manual#install-flutter
|
||||
เนื่องจากกระบวนการนี้ต้องใช้ข้อมูลที่ใหม่ล่าสุด
|
||||
|
||||
1. ดาวน์โหลด Flutter (สามารถหาปุ่มดาวน์โหลดได้จากลิงก์ด้านบน)
|
||||
2. สร้างโฟลเดอร์สำหรับเก็บ Flutter SDK
|
||||
3. ทำการแตกไฟล์ที่ดาวน์โหลดมา
|
||||
4. เพิ่ม Flutter เข้าไปยัง PATH ของคุณ (วิธีการขึ้นอยู่กับระบบปฏิบัติการ)
|
||||
5. ยืนยันความถูกต้องของการติดตั้งของคุณด้วยคำสั่ง `flutter doctor -v`
|
||||
#[
|
||||
#set enum(indent: 4.1em)
|
||||
1. ดาวน์โหลด Flutter (สามารถหาปุ่มดาวน์โหลดได้จากลิงก์ด้านบน)
|
||||
2. สร้างโฟลเดอร์สำหรับเก็บ Flutter SDK
|
||||
3. ทำการแตกไฟล์ที่ดาวน์โหลดมา
|
||||
4. เพิ่ม Flutter เข้าไปยัง PATH ของคุณ (วิธีการขึ้นอยู่กับระบบปฏิบัติการ)
|
||||
5. ยืนยันความถูกต้องของการติดตั้งของคุณด้วยคำสั่ง `flutter doctor -v`
|
||||
]
|
||||
|
||||
=== ข้อมูลเฉพาะแพลตฟอร์ม
|
||||
|
||||
==== Android <flAndroid>
|
||||
|
||||
#iiii ในการพัฒนาแอปพลิเคชัน Android โดยใช้เฟรมเวิร์ก Flutter
|
||||
#h(7.3em) ในการพัฒนาแอปพลิเคชัน Android โดยใช้เฟรมเวิร์ก Flutter
|
||||
จำเป็นต้องใช้ส่วนประกอบเครื่องมือพัฒนา Android ดังนี้
|
||||
|
||||
- Android SDK (API Level 36 ณ เวลาที่พิมพ์)
|
||||
- Android SDK Build-Tools
|
||||
- Android SDK Command-line Tools
|
||||
- Android SDK Platform-Tools
|
||||
- Android Emulator (ไม่บังคับ)
|
||||
#[
|
||||
#set enum(indent: 7.3em)
|
||||
1. Android SDK (API Level 36 ณ เวลาที่พิมพ์)
|
||||
2. Android SDK Build-Tools
|
||||
3. Android SDK Command-line Tools
|
||||
4. Android SDK Platform-Tools
|
||||
5. Android Emulator (ไม่บังคับ)
|
||||
]
|
||||
|
||||
โดยแนะนำให้จัดการและติดตั้งเครื่องมือเหล่านี้ผ่าน Android Studio
|
||||
|
||||
#iiii ในการติดตั้ง Android SDK ควรติดตั้ง Android SDK
|
||||
#h(7.3em) ในการติดตั้ง Android SDK ควรติดตั้ง Android SDK
|
||||
ล่าสุดถึงแม้ว่าอุปกรณ์ของคุณจะใช้เวอร์ชันที่เก่ากว่านั้น
|
||||
เพื่อความมั่นใจว่าแอปพลิเคชันจะสามารถใช้กับอุปกรณ์ที่ใหม่ล่าสุดได้
|
||||
|
||||
#iiii แอปพลิเคชัน Android จะมี SDK/API level เป้าหมาย (Target SDK/API level) และ
|
||||
#h(7.3em) แอปพลิเคชัน Android จะมี SDK/API level เป้าหมาย (Target SDK/API level) และ
|
||||
SDK/API level ขั้นต่ำ (Minimum SDK/API level) โครงงานนี้ ณ เวลาที่พิมพ์ ใช้ API level
|
||||
เป้าหมาย 36 (Android 16) และ API level ขั้นต่ำ 24 (Android 7) ซึ่งรวมกันแล้ว
|
||||
แอปพลิเคชัน#jb Android จะสามารถติดตั้งได้บนระบบตั้งแต่ API level ขั้นต่ำจนถึง API level
|
||||
@@ -133,70 +139,68 @@ SDK/API level ขั้นต่ำ (Minimum SDK/API level) โครงงา
|
||||
|
||||
===== Java/Kotlin
|
||||
|
||||
#iiiii Java และ Kotlin เป็นภาษาสำคัญสำหรับการพัฒนาแอปพลิเคชัน Android ถึงอย่างไรก็ตาม
|
||||
#h(11.3em) Java และ Kotlin เป็นภาษาสำคัญสำหรับการพัฒนาแอปพลิเคชัน Android ถึงอย่างไรก็ตาม
|
||||
แอปพลิเคชัน Flutter นั้นถูกเขียนด้วยภาษา Dart แต่ยังจำเป็นต้องมีโคด Java และ Kotlin
|
||||
เล็กน้อยเพื่อเริ่มต้นแอปพลิเคชัน Flutter
|
||||
|
||||
#iiiii โดยปกติแล้ว Flutter จะสร้างโคดพื้นฐานขึ้นมาให้สำหรับการเริ่มแอปพลิเคชันแบบพื้นฐาน
|
||||
#h(11.3em) โดยปกติแล้ว Flutter จะสร้างโคดพื้นฐานขึ้นมาให้สำหรับการเริ่มแอปพลิเคชันแบบพื้นฐาน
|
||||
ดังนั้นจึงไม่จำเป็นต้องมีการเขียนโคด Java หรือ Kotlin เอง แต่ในบางกรณี
|
||||
อาจต้องเขียนโคดเพิ่มเองหากมีความต้องการเข้าถึงฟีเจอร์พื้นฐานระบบที่ Flutter ไม่มี API
|
||||
เพื่อให้เข้าถึงได้และไม่มีแพคเกจเพื่อรองรับฟีเจอร์ที่ต้องการ
|
||||
|
||||
#iiiii โครงการนี้ใช้ Java 21 (JetBrains Runtime/Azul Zulu OpenJDK)
|
||||
#h(11.3em) โครงการนี้ใช้ Java 21 (JetBrains Runtime/Azul Zulu OpenJDK)
|
||||
เป็นหลักในการทำงานกับ Gradle แต่แอปพลิเคชัน Android ที่ผลิตออกมานั้น
|
||||
เพื่อให้เข้ากับเวอร์ชันที่เก่ากว่าของระบบปฏิบัติการได้ ใช้ Java 11
|
||||
|
||||
===== Gradle
|
||||
|
||||
#iiiii Gradle เป็นเครื่องมือสร้างระบบอัตโนมัติสำหรับการพัฒนาซอฟต์แวร์หลายภาษา จัดการงานต่าง ๆ
|
||||
เช่น การคอมไพล์ การแพ็คเกจ การทดสอบ การปรับใช้ และการเผยแพร่ ภาษาที่รองรับ ได้แก่ Java
|
||||
(รวมถึงภาษา Kotlin, Groovy, Scala ที่ใช้ JDK), C/C++ และ JavaScript Gradle
|
||||
#h(11.3em) Gradle เป็นเครื่องมือสร้างระบบอัตโนมัติสำหรับการพัฒนาซอฟต์แวร์หลายภาษา
|
||||
จัดการงานต่าง ๆ เช่น การคอมไพล์ การแพ็คเกจ การทดสอบ การปรับใช้ และการเผยแพร่ ภาษาที่รองรับ
|
||||
ได้แก่ Java (รวมถึงภาษา Kotlin, Groovy, Scala ที่ใช้ JDK), C/C++ และ JavaScript Gradle
|
||||
พัฒนาต่อยอดจากแนวคิดของ Apache Ant และ Apache Maven และนำเสนอภาษาเฉพาะโดเมนที่ใช้
|
||||
Groovy และ Kotlin ซึ่งต่างจากการกำหนดค่าโครงการที่ใช้ XML ที่ Maven ใช้ Gradle
|
||||
ใช้กราฟแบบอะไซคลิกกำกับทิศทางเพื่อจัดการการอ้างอิง กราฟนี้ใช้เพื่อกำหนดลำดับของงานที่ควรดำเนินการ
|
||||
Gradle ทำงานบน Java Virtual Machine
|
||||
|
||||
#iiiii Gradle คือเครื่องมือหลักที่ใช้ในการจัดการโปรเจกต์ Java ส่วนใหญ่ รวมถึงโปรเจกต์ Android
|
||||
โดยในโครงการนี้ จะใช้ Gradle เวอร์ชัน 8.14.3 เป็นหลัก
|
||||
#h(11.3em) Gradle คือเครื่องมือหลักที่ใช้ในการจัดการโปรเจกต์ Java ส่วนใหญ่ รวมถึงโปรเจกต์
|
||||
Android โดยในโครงการนี้ จะใช้ Gradle เวอร์ชัน 8.14.3 เป็นหลัก
|
||||
|
||||
#iiiii โดยปกติแล้ว ผู้พัฒนานั้นไม่มีความจำเป็นที่จะต้องแตะต้อง Gradle ด้วยตนเอง และ Flutter
|
||||
#h(11.3em) โดยปกติแล้ว ผู้พัฒนานั้นไม่มีความจำเป็นที่จะต้องแตะต้อง Gradle ด้วยตนเอง และ Flutter
|
||||
จะทำการจัดการเอง แต่หากมีความจำเป็นต้องใช้คำสั่ง Gradle ด้วยตนเอง จะมีสคริปต์ `gradlew` (หรือ
|
||||
`gradlew.bat` สำหรับผู้ใช้ Windows) ภายในโฟลเดอร์ `android` ของโปรเจกต์ Flutter
|
||||
เสมอเพื่อเรียกใช้ Gradle ที่ถูกดาวน์โหลดมาสำหรับโปรเจกต์นั้น ๆ
|
||||
|
||||
==== Linux <flLinuxDetails>
|
||||
|
||||
#iiii เช่นเดียวกับ Android ที่กล่าวไปข้างต้น Flutter
|
||||
#h(7.3em) เช่นเดียวกับ Android ที่กล่าวไปข้างต้น Flutter
|
||||
มีการสร้างโคดสำหรับการเปิดแอปพลิเคชันแบบพื้นฐาน แต่สำหรับ Linux แล้วนั้น Flutter ใช้โคด C++
|
||||
และเฟรมเวิร์ก CMake ในการสร้างรากฐานของแอปพลิเคชัน
|
||||
|
||||
#iiii ในการพัฒนาแอปพลิเคชันสำหรับ Linux ต้องติดตั้งโปรแกรมเพิ่มเติม#jb (build dependencies)
|
||||
ขยายความคือ ด้านบนคือสิ่งที่จำเป็นหากมีระบบอื่นเป็นเป้าหมาย แต่หากต้องการพัฒนาแอปพลิเคชัน Linux
|
||||
ต้องติดตั้งโปรแกรมในรายการหน้าถัดไปเพิ่ม
|
||||
#h(7.3em) ในการพัฒนาแอปพลิเคชันสำหรับ Linux ต้องติดตั้งโปรแกรมเพิ่มเติม#jb (build
|
||||
dependencies) ขยายความคือ ด้านบนคือสิ่งที่จำเป็นหากมีระบบอื่นเป็นเป้าหมาย
|
||||
แต่หากต้องการพัฒนาแอปพลิเคชัน Linux ต้องติดตั้งโปรแกรมในรายการหน้าถัดไปเพิ่ม
|
||||
|
||||
#pagebreak()
|
||||
|
||||
#grid(
|
||||
columns: 2,
|
||||
column-gutter: 1in,
|
||||
[
|
||||
- GTK 3 (ไลบรารีสำหรับการพัฒนา)
|
||||
- pkg-config
|
||||
- ไลบรารี GNU Standard C++ v3
|
||||
],
|
||||
[
|
||||
- Clang
|
||||
- CMake
|
||||
- Ninja
|
||||
],
|
||||
)
|
||||
#[
|
||||
#set enum(indent: 7.3em)
|
||||
1. GTK 3 (ไลบรารีสำหรับการพัฒนา)
|
||||
2. pkg-config
|
||||
3. ไลบรารี GNU Standard C++ v3
|
||||
4. Clang
|
||||
5. CMake
|
||||
6. Ninja
|
||||
]
|
||||
|
||||
#iiii การติดตั้งไลบรารีและโปรแกรมที่กล่าวไปข้างต้นจะแตกต่างกันไปแต่ละการแจกจ่าย Linux และ
|
||||
#h(7.3em) การติดตั้งไลบรารีและโปรแกรมที่กล่าวไปข้างต้นจะแตกต่างกันไปแต่ละการแจกจ่าย Linux และ
|
||||
Flutter ใช้ไลบรารีพื้นฐานดังกล่าวในการทำงานของแอปพลิเคชัน (runtime dependencies)
|
||||
|
||||
- GTK 3
|
||||
- blkid
|
||||
- LZMA
|
||||
#[
|
||||
#set enum(indent: 7.3em)
|
||||
1. GTK 3
|
||||
2. blkid
|
||||
3. LZMA
|
||||
]
|
||||
|
||||
แต่โดยทั่วไปแล้ว ไลบรารีเหล่านี้ควรถูกติดตั้งมาอยู่แล้วหากคุณใช้ graphical desktop ทั่วไป
|
||||
|
||||
@@ -217,6 +221,8 @@ Flutter ใช้ไลบรารีพื้นฐานดังกล่า
|
||||
caption: [คำสั่งในการติดตั้งรายการแพคเกจต่าง ๆ บน Debian],
|
||||
)
|
||||
|
||||
#v(0.5em)
|
||||
|
||||
===== Fedora Linux
|
||||
|
||||
#afigure(
|
||||
@@ -251,8 +257,10 @@ Flutter ใช้ไลบรารีพื้นฐานดังกล่า
|
||||
caption: [คำสั่งในการติดตั้งรายการแพคเกจต่าง ๆ บน Arch Linux],
|
||||
)
|
||||
|
||||
#v(0.5em)
|
||||
|
||||
==== macOS/iOS
|
||||
|
||||
#iiii การพัฒนาแอปพลิเคชันสำหรับ macOS และ iOS นั้นต้องทำบน#jb macOS
|
||||
#h(7.3em) การพัฒนาแอปพลิเคชันสำหรับ macOS และ iOS นั้นต้องทำบน macOS
|
||||
เท่านั้นและจำเป็นต้องพึ่งพาเครื่องมือ Xcode แต่เนื่องจากในโครงงานนี้ไม่มีผู้ใช้ macOS
|
||||
จึงไม่สามารถสร้างไบนารีสำหรับ macOS และ iOS ออกมาได้ และไม่ใช่เป้าหมายของโครงงานนี้เช่นกัน
|
||||
|
||||
+261
-123
@@ -12,12 +12,32 @@
|
||||
คณะผู้จัดทำโครงงานได้ศึกษาข้อมูลเบื้องต้นในการสร้างเครื่องยืนยันตัวตนด้วย NFC
|
||||
และได้ดำเนินการตามขั้นตอนนี้
|
||||
|
||||
+ วางแผนการดำเนินงาน
|
||||
+ การออกแบบ
|
||||
+ วัสดุอุปกรณ์
|
||||
+ ขั้นตอนการประกอบ
|
||||
+ การทดลอง
|
||||
+ การวิเคราะห์ข้อมูล
|
||||
#set enum(indent: 3em)
|
||||
1. วางแผนการดำเนินงาน
|
||||
2. การออกแบบ
|
||||
3. วัสดุอุปกรณ์
|
||||
4. ขั้นตอนการประกอบ
|
||||
5. การทดลอง
|
||||
6. การวิเคราะห์ข้อมูล
|
||||
|
||||
#show heading.where(level: 3): it => {
|
||||
block(
|
||||
it,
|
||||
inset: (left: 1.7em),
|
||||
)
|
||||
}
|
||||
#show heading.where(level: 4): it => {
|
||||
block(
|
||||
it,
|
||||
inset: (left: 4.1em),
|
||||
)
|
||||
}
|
||||
#show heading.where(level: 5): it => {
|
||||
block(
|
||||
it,
|
||||
inset: (left: 7.3em),
|
||||
)
|
||||
}
|
||||
|
||||
== วางแผนการดำเนินงาน
|
||||
|
||||
@@ -115,45 +135,69 @@
|
||||
|
||||
== การออกแบบ
|
||||
|
||||
#figure(
|
||||
image(
|
||||
"imgs/ProjectDraft_Modules.png",
|
||||
alt: "ภาพแสดงการโมเดลโครงงานซึ่งประกอบไปด้วยสามส่วน",
|
||||
width: 5in,
|
||||
),
|
||||
caption: [การออกแบบโครงสร้างเครื่องยืนยันตัวตนด้วย NFC],
|
||||
)
|
||||
|
||||
#v(2em)
|
||||
|
||||
== วัสดุอุปกรณ์
|
||||
|
||||
+ บอร์ด ESP32 (NodeMCU)
|
||||
+ กล่องพลาสติก
|
||||
+ Buzzer
|
||||
+ เซนเซอร์ PIR
|
||||
+ เซนเซอร์ NFC 2 ชิ้น
|
||||
#set enum(indent: 1.7em)
|
||||
|
||||
1. บอร์ด ESP32 (NodeMCU)
|
||||
2. กล่องพลาสติก
|
||||
3. บัซเซอร์ (Buzzer)
|
||||
4. เซนเซอร์ NFC (PN532)
|
||||
// 5. เซนเซอร์ PIR
|
||||
|
||||
== ขั้นตอนการประกอบ
|
||||
|
||||
=== การติดตั้งอุปกรณ์
|
||||
|
||||
โครงงานแบ่งออกเป็น 3 โมดูล
|
||||
#h(4.1em) โครงงานแบ่งออกเป็น 3 โมดูล
|
||||
|
||||
+ โมดูลเซนเซอร์ NFC ขาเข้าและบอร์ด ESP32
|
||||
+ โมดูลเซนเซอร์ NFC ขาออก
|
||||
+ โมดูลเซนเซอร์ PIR
|
||||
#set enum(indent: 4.1em)
|
||||
1. โมดูลบอร์ด ESP32
|
||||
2. โมดูลเซนเซอร์ NFC
|
||||
// 3. โมดูลเซนเซอร์ PIR
|
||||
|
||||
#show heading: it => {
|
||||
if it.level > 2 {
|
||||
block(
|
||||
it,
|
||||
inset: (left: -3em * (it.level - 2)),
|
||||
)
|
||||
} else {
|
||||
it
|
||||
}
|
||||
}
|
||||
==== โมดูลบอร์ด ESP32
|
||||
|
||||
==== โมดูลเซนเซอร์ NFC ขาเข้าและบอร์ด ESP32
|
||||
#h(7.3em) ทำการเจาะรู 2 รูสำหรับสายและร้อยสายเข้าไปในกล่อง
|
||||
|
||||
#iiii ทำการเจาะรู
|
||||
#figure(
|
||||
image(
|
||||
"imgs/MainModuleInternal.jpg",
|
||||
alt: "ภายในกล่องโมดูลหลัก มีบอร์ดอยู่ภายใน",
|
||||
height: 2in,
|
||||
),
|
||||
caption: [ภายในกล่องโมดูล ESP32],
|
||||
)
|
||||
|
||||
==== โมดูลเซนเซอร์ NFC ขาออก
|
||||
#v(2em)
|
||||
|
||||
#iiii ดำเนินการเจาะรูบริเวณตัวกล่องเพื่อใช้เป็นช่องสำหรับสายไฟ
|
||||
==== โมดูลเซนเซอร์ NFC
|
||||
|
||||
#h(7.3em) ดำเนินการเจาะรูบริเวณตัวกล่องเพื่อใช้เป็นช่องสำหรับสายไฟ
|
||||
จากนั้นนำสายไฟร้อยผ่านช่องดังกล่าวและต่อเข้ากับเซนเซอร์ NFC ให้เรียบร้อย
|
||||
|
||||
==== โมดูลเซนเซอร์ PIR
|
||||
#figure(
|
||||
image(
|
||||
"imgs/NFCSensor_cropped.jpg",
|
||||
alt: "ภายกล่องโมดูลเซนเซอร์ NFC",
|
||||
height: 2in,
|
||||
),
|
||||
caption: [โมดูลเซนเซอร์ NFC],
|
||||
)
|
||||
#v(1.5em)
|
||||
|
||||
// ==== โมดูลเซนเซอร์ PIR
|
||||
|
||||
=== การเขียนเฟิร์มแวร์ <writingFirmware>
|
||||
|
||||
@@ -171,9 +215,15 @@ Windows Terminal อย่างไรก็ตาม เมื่อเปิ
|
||||
#iii โดยในปัจจุบัน Python เวอร์ชันล่าสุดคือ Python 3.14.2 โดยคุณสามารถติดตั้ง Python และ Git
|
||||
บน Windows ได้ด้วยการใช้คำสั่งต่อไปนี้
|
||||
|
||||
```sh
|
||||
winget install Python.Python.3.14 Git.Git -e -s winget
|
||||
```
|
||||
#figure(
|
||||
```sh
|
||||
winget install Python.Python.3.14 Git.Git -e -s winget
|
||||
```,
|
||||
kind: image,
|
||||
caption: [คำสั่งในการติดตั้ง Python 3.14 และ Git],
|
||||
)
|
||||
|
||||
#v(1.5em)
|
||||
|
||||
#iii สำหรับระบบปฏิบัติการอื่นนั้น โดยปกติแล้วจะไม่ต้องติดตั้ง Python
|
||||
เพิ่มเนื่องจากมีติดมากับระบบปฏิบัติการอยู่แล้ว อย่างไรก็ตาม บน Linux อาจต้องมีการติดตั้งการรองรับ
|
||||
@@ -181,156 +231,244 @@ Virtual Environment แยก โดยแต่ละระบบจะมี
|
||||
และ Arch สามารถใช้คำสั่งต่อไปนี้ในการติดตั้งทั้ง Python Virtual Environment และ Git
|
||||
พร้อมกันได้
|
||||
|
||||
#pagebreak()
|
||||
|
||||
```sh
|
||||
# Debian
|
||||
sudo apt install python3-venv git
|
||||
# Fedora
|
||||
sudo dnf install python3-virtualenv git
|
||||
# Arch
|
||||
sudo pacman -S python-virtualenv git
|
||||
```
|
||||
|
||||
#show raw.where(block: true): set block(below: 2em)
|
||||
#figure(
|
||||
```sh
|
||||
# Debian
|
||||
sudo apt install python3-venv git
|
||||
# Fedora
|
||||
sudo dnf install python3-virtualenv git
|
||||
# Arch
|
||||
sudo pacman -S python-virtualenv git
|
||||
```,
|
||||
kind: image,
|
||||
caption: [คำสั่งในการติดตั้ง Virtual Environment และ Git บนการแจกจ่าย Linux ต่าง ๆ],
|
||||
)
|
||||
|
||||
#v(1.5em)
|
||||
|
||||
#pagebreak()
|
||||
|
||||
==== การติดตั้ง PlatformIO Core ผ่านแพคเกจ
|
||||
|
||||
#iiii หากคุณใช้ Fedora Linux หรือ Arch Linux (หรือลูก ๆ ของมัน) คุณสามารถติดตั้งแพคเกจ
|
||||
PlatformIO ได้โดยตรง โดยมีคำสั่งดังนี้:
|
||||
#h(7.3em) หากคุณใช้ Fedora Linux หรือ Arch Linux (หรือลูก ๆ ของมัน) คุณสามารถติดตั้งแพคเกจ
|
||||
PlatformIO ได้โดยตรง โดยมีคำสั่งดังนี้
|
||||
|
||||
```sh
|
||||
# Fedora Linux
|
||||
sudo dnf install platformio
|
||||
# Arch Linux
|
||||
sudo pacman -S platformio-core
|
||||
```
|
||||
|
||||
- หากคุณติดตั้งแพคเกจ Fedora นั้นแล้ว คุณไม่จำเป็นที่จะต้องติดตั้งกฎ udev ด้วยตนเอง
|
||||
(ที่จะถูกกล่าวถึงใน@pioudev)
|
||||
- หากคุณใช้ Arch คุณสามารถติดตั้งแพคเกจกฎ udev ได้โดยตรงโดยไม่ต้องดาวน์โหลดเอง
|
||||
#figure(
|
||||
```sh
|
||||
sudo pacman -S --asdeps platformio-core-udev
|
||||
```
|
||||
# Fedora Linux
|
||||
sudo dnf install platformio
|
||||
# Arch Linux
|
||||
sudo pacman -S platformio-core
|
||||
```,
|
||||
kind: image,
|
||||
caption: [คำสั่งในการติดตั้ง PlatformIO Core บน Fedora และ Arch Linux],
|
||||
)
|
||||
|
||||
#v(1.5em)
|
||||
|
||||
#set enum(indent: 7.3em)
|
||||
1. หากคุณติดตั้งแพคเกจ Fedora นั้นแล้ว คุณไม่จำเป็นที่จะต้องติดตั้งกฎ udev ด้วยตนเอง
|
||||
(ที่จะถูกกล่าวถึงใน@pioudev)
|
||||
|
||||
2. หากคุณใช้ Arch คุณสามารถติดตั้งแพคเกจกฎ udev ได้โดยตรงโดยไม่ต้องดาวน์โหลดเอง
|
||||
#figure(
|
||||
```sh
|
||||
sudo pacman -S --asdeps platformio-core-udev
|
||||
```,
|
||||
kind: image,
|
||||
caption: [คำสั่งในการติดตั้งกฎ udev ของ PlatformIO บน Arch Linux],
|
||||
)
|
||||
|
||||
#v(2.5em)
|
||||
|
||||
==== การติดตั้ง PlatformIO Core ผ่านสคริปต์
|
||||
|
||||
#iiii ถัดไป ในการติดตั้ง PlatformIO Core สามารถทำได้โดยการใช้สคริปต์ติดตั้ง โดยสำหรับ `curl`
|
||||
สามารถใช้คำสั่งนี้ได้:
|
||||
#h(7.3em) ถัดไป ในการติดตั้ง PlatformIO Core สามารถทำได้โดยการใช้สคริปต์ติดตั้ง โดยสำหรับ
|
||||
`curl` สามารถใช้คำสั่งนี้ได้
|
||||
|
||||
```sh
|
||||
curl -fsSL -o get-platformio.py https://raw.githubusercontent.com/platformio/platformio-core-installer/master/get-platformio.py
|
||||
```
|
||||
|
||||
หรือหากต้องการใช้ `wget`:
|
||||
|
||||
```sh
|
||||
wget -O get-platformio.py https://raw.githubusercontent.com/platformio/platformio-core-installer/master/get-platformio.py
|
||||
```
|
||||
#figure(
|
||||
```sh
|
||||
curl -fsSL -o get-platformio.py https://raw.githubusercontent.com/platformio/platformio-core-installer/master/get-platformio.py
|
||||
```,
|
||||
kind: image,
|
||||
caption: [คำสั่ง `curl` ที่ใช้ในการดาวน์โหลดสคริปต์ติดตั้ง PlatformIO],
|
||||
)
|
||||
|
||||
#pagebreak()
|
||||
|
||||
หรือสำหรับ PowerShell, สามารถใช้ `iwr` (หรือชื่อเต็มคือ `Invoke-WebRequest`) ได้:
|
||||
#h(7.3em) หรือหากต้องการใช้ `wget`
|
||||
|
||||
```sh
|
||||
iwr -OutFile get-platformio.py -Uri https://raw.githubusercontent.com/platformio/platformio-core-installer/master/get-platformio.py
|
||||
```
|
||||
#figure(
|
||||
```sh
|
||||
wget -O get-platformio.py https://raw.githubusercontent.com/platformio/platformio-core-installer/master/get-platformio.py
|
||||
```,
|
||||
kind: image,
|
||||
caption: [คำสั่ง `wget` ที่ใช้ในการดาวน์โหลดสคริปต์ติดตั้ง PlatformIO],
|
||||
)
|
||||
|
||||
#v(1.5em)
|
||||
|
||||
#h(7.3em) หรือสำหรับ PowerShell, สามารถใช้ `iwr` (หรือชื่อเต็มคือ `Invoke-WebRequest`)
|
||||
ได้
|
||||
|
||||
#figure(
|
||||
```sh
|
||||
iwr -OutFile get-platformio.py -Uri https://raw.githubusercontent.com/platformio/platformio-core-installer/master/get-platformio.py
|
||||
```,
|
||||
kind: image,
|
||||
caption: [คำสั่ง `iwr` ที่ใช้ในการดาวน์โหลดสคริปต์ติดตั้ง PlatformIO],
|
||||
)
|
||||
|
||||
#v(1.5em)
|
||||
|
||||
(มีการเว้นบรรทัดใหม่เนื่องจากพื้นที่ไม่เพียงพอ โปรดอย่าเว้นบรรทัดเมื่อพิมพ์คำสั่งจริง)
|
||||
|
||||
#iiii แล้วดังนั้นจึงใช้คำสั่ง `python3 get-platformio.py`
|
||||
#h(7.3em) แล้วดังนั้นจึงใช้คำสั่ง `python3 get-platformio.py`
|
||||
ในการรันสคริปต์ติดตั้งที่ได้ทำการดาวน์โหลดมา โดยค่าเริ่มต้นแล้ว PlatformIO
|
||||
จะไม่เพิ่มตนเองเข้าไปยังตัวแปรสิ่งแวดล้อม PATH
|
||||
ซึ่งจำเป็นในการใช้คำสั่งจากที่ใหนก็ได้โดยไม่ต้องกล่าวถึงไฟล์พาธ
|
||||
|
||||
#iiii โดยสำหรับ Linux แล้วนั้น คุณต้องเพิ่ม `$HOME/.local/bin/` เข้าไปยัง PATH ของคุณ
|
||||
โดยหากคุณใช้ Bash คุณสามารถแก้ไข `~/.bash_profile` และเพิ่มบรรทัดนี้เข้าไปได้:
|
||||
#h(7.3em) โดยสำหรับ Linux แล้วนั้น คุณต้องเพิ่ม `$HOME/.local/bin/` เข้าไปยัง PATH ของคุณ
|
||||
โดยหากคุณใช้ Bash คุณสามารถแก้ไข `~/.bash_profile` และเพิ่มบรรทัดนี้เข้าไปได้
|
||||
|
||||
```sh
|
||||
export PATH=$PATH:$HOME/.local/bin
|
||||
```
|
||||
#figure(
|
||||
```sh
|
||||
export PATH=$PATH:$HOME/.local/bin
|
||||
```,
|
||||
kind: image,
|
||||
caption: [โคดที่ต้องใช้ในการเพิ่ม `~/.local/bin` เข้า PATH],
|
||||
)
|
||||
|
||||
#iiii หากคุณใช้ Zsh สามารถใช้โคดเดียวกันได้ เพียงแต่คุณต้องแก้ไขไฟล์ `~/.zprofile` หรือ
|
||||
#v(1.5em)
|
||||
|
||||
#h(7.3em) หากคุณใช้ Zsh สามารถใช้โคดเดียวกันได้ เพียงแต่คุณต้องแก้ไขไฟล์ `~/.zprofile` หรือ
|
||||
`~/.zshrc` แทน
|
||||
|
||||
โดยบน Windows มีขั้นตอนดังนี้:
|
||||
#h(7.3em) โดยบน Windows มีขั้นตอนดังนี้
|
||||
|
||||
+ กด Windows + R
|
||||
+ พิมพ์ `sysdm.cpl` และกด Enter
|
||||
+ ในหน้าต่าง *System Properties* คลิกไปยังแท็บ *Advanced*
|
||||
+ คลิกปุ่ม *Environment Variables*
|
||||
#[
|
||||
#set enum(indent: 7.3em)
|
||||
1. กด Windows + R
|
||||
2. พิมพ์ `sysdm.cpl` และกด Enter
|
||||
3. ในหน้าต่าง _System Properties_ คลิกไปยังแท็บ _Advanced_
|
||||
4. คลิกปุ่ม _Environment Variables_
|
||||
]
|
||||
|
||||
หลังจากนั้น เลือกตัวแปร *Path* ในส่วน *User variables* แล้วจึงกด *Edit* แล้วเพิ่ม
|
||||
#h(7.3em) จากนั้น เลือกตัวแปร _Path_ ในส่วน _User variables_ แล้วจึงกด _Edit_ แล้วเพิ่ม
|
||||
`%USERPROFILE%\.platformio\penv\Scripts\` เข้าไปในรายการ
|
||||
|
||||
==== 99-platformio-udev.rules <pioudev>
|
||||
|
||||
#iiii ผู้ใช้ Linux จำเป็นที่จะต้องติดตั้งกฎ udev โดยสามารถดูไฟล์กฎ udev เวอร์ชันล่าสุดได้ที่
|
||||
#h(7.3em) ผู้ใช้ Linux จำเป็นที่จะต้องติดตั้งกฎ udev โดยสามารถดูไฟล์กฎ udev เวอร์ชันล่าสุดได้ที่
|
||||
https://raw.githubusercontent.com/platformio/platformio-core/develop/platformio/assets/system/99-platformio-udev.rules
|
||||
|
||||
*หมายเหตุ:* โปรดตรวจสอบว่า PID และ VID ของบอร์ดคุณอยู่ในไฟล์กฎนั้น โดยคุณสามารถดู PID/VID
|
||||
และโปรดตรวจสอบว่า PID และ VID ของบอร์ดคุณอยู่ในไฟล์กฎนั้น โดยคุณสามารถดู PID/VID
|
||||
ของบอร์ดคุณได้ผ่านคำสั่ง `pio device list`
|
||||
|
||||
#iiii โดยไฟล์นั้นต้องถูกวางอยู่ที่ `/etc/udev/rules.d/99-platformio-udev.rules`
|
||||
#h(7.3em) โดยไฟล์นั้นต้องถูกวางอยู่ที่ `/etc/udev/rules.d/99-platformio-udev.rules`
|
||||
(ตำแหน่งที่ดีที่สุด) หรือ `/lib/udev/rules.d/99-platformio-udev.rules`
|
||||
(อาจจำเป็นสำหรับบางระบบที่พัง)
|
||||
|
||||
โปรดใช้คำสั่งต่อไปนี้ในการดาวน์โหลดและวางไฟล์นั้นไว้ในสถานที่ที่ถูกต้อง:
|
||||
#h(7.3em) โปรดใช้คำสั่งต่อไปนี้ในการดาวน์โหลดและวางไฟล์นั้นไว้ในสถานที่ที่ถูกต้อง
|
||||
|
||||
```sh
|
||||
curl -fsSL https://raw.githubusercontent.com/platformio/platformio-core/develop/platformio/assets/system/99-platformio-udev.rules | sudo tee /etc/udev/rules.d/99-platformio-udev.rules
|
||||
```
|
||||
#figure(
|
||||
```sh
|
||||
curl -fsSL https://raw.githubusercontent.com/platformio/platformio-core/develop/platformio/assets/system/99-platformio-udev.rules | sudo tee /etc/udev/rules.d/99-platformio-udev.rules
|
||||
```,
|
||||
kind: image,
|
||||
caption: [คำสั่งในการดาวน์โหลดไฟล์กฎ `udev`],
|
||||
)
|
||||
|
||||
หรือคุณก็สามารถดาวน์โหลดไฟล์นั้นด้วยตัวเองและคัดลอกมันไปในโฟลเดอร์ที่หมายได้เช่นกัน
|
||||
#v(1.5em)
|
||||
|
||||
```sh
|
||||
sudo cp 99-platformio-udev.rules /etc/udev/rules.d/99-platformio-udev.rules
|
||||
```
|
||||
#h(7.3em) หรือคุณก็สามารถดาวน์โหลดไฟล์นั้นด้วยตัวเองและคัดลอกมันไปในโฟลเดอร์ที่หมายได้เช่นกัน
|
||||
|
||||
หลังจากนั้น รีสตาร์ทบริการ udev:
|
||||
#figure(
|
||||
```sh
|
||||
sudo cp 99-platformio-udev.rules /etc/udev/rules.d/99-platformio-udev.rules
|
||||
```,
|
||||
kind: image,
|
||||
caption: [คำสั่งในการคัดลอกไฟล์กฎ `udev` ไปยังสถานที่ที่ถูกต้อง],
|
||||
)
|
||||
|
||||
```sh
|
||||
sudo service udev restart
|
||||
```
|
||||
หรือ:
|
||||
```sh
|
||||
sudo udevadm control --reload-rules
|
||||
sudo udevadm trigger
|
||||
```
|
||||
#v(1.5em)
|
||||
|
||||
หลังจากติดตั้งไฟล์นี้แล้ว ถอดสายที่เชื่อมต่อระหว่างบอร์ดและคอมพิวเตอร์ของคุณแล้วเสียบมันใหม่
|
||||
#h(7.3em) หลังจากนั้น รีสตาร์ทบริการ udev
|
||||
|
||||
#figure(
|
||||
```sh
|
||||
sudo service udev restart
|
||||
```,
|
||||
kind: image,
|
||||
caption: [คำสั่งในการรีสตาร์ทบริการ `udev`],
|
||||
)
|
||||
|
||||
#v(1.5em)
|
||||
|
||||
#h(7.3em) หรือทำการรีโหลดและทริกเกอร์กฎ
|
||||
|
||||
#figure(
|
||||
```sh
|
||||
sudo udevadm control --reload-rules
|
||||
sudo udevadm trigger
|
||||
```,
|
||||
kind: image,
|
||||
caption: [คำสั่งในการรีโหลดกฎ `udev`],
|
||||
)
|
||||
|
||||
#v(1.5em)
|
||||
|
||||
#h(7.3em) หลังจากติดตั้งไฟล์นี้แล้ว ถอดสายที่เชื่อมต่อระหว่างบอร์ดและคอมพิวเตอร์ของคุณแล้วเสียบมันใหม่
|
||||
|
||||
==== การดาวน์โหลดโปรเจกต์
|
||||
|
||||
#iiii สามารถใช้ Git ในการ clone โปรเจกต์ได้ด้วยคำสั่งต่อไปนี้:
|
||||
#h(7.3em) สามารถใช้ Git ในการ clone โปรเจกต์ได้ด้วยคำสั่งต่อไปนี้
|
||||
|
||||
```sh
|
||||
git clone https://gitskette.dailitation.xyz/linesofcodes/liteauth-firmware32.git
|
||||
```
|
||||
#figure(
|
||||
```sh
|
||||
git clone https://gitskette.dailitation.xyz/linesofcodes/liteauth-firmware32.git
|
||||
```,
|
||||
kind: image,
|
||||
caption: [คำสั่งในการโคลนโคดสำหรับเฟิร์มแวร์],
|
||||
)
|
||||
|
||||
#iiii โดย Git นั้นจะทำการโคลนโปรเจกต์ไปที่โฟลเดอร์ `liteauth-firmware32`
|
||||
#v(1.5em)
|
||||
|
||||
#h(7.3em) โดย Git นั้นจะทำการโคลนโปรเจกต์ไปที่โฟลเดอร์ `liteauth-firmware32`
|
||||
เนื่องจากเป็นชื่อของ Git repository หรือหากไม่ต้องการใช้ Git กรุณาไปที่
|
||||
https://gitskette.dailitation.xyz/linesofcodes/liteauth-firmware32 และทำการคลิกปุ่ม
|
||||
*Code* แล้วกด *Download ZIP* หรือ *Download TAR.GZ* แล้วทำการแตกไฟล์ได้ตามปกติ
|
||||
|
||||
หลังจากนั้น ไปที่โฟลเดอร์ของคุณในเทอร์มินัลโดยใช้คำสั่ง `cd`
|
||||
|
||||
#pagebreak()
|
||||
_Code_ แล้วกด _Download ZIP_ หรือ _Download TAR.GZ_ แล้วทำการแตกไฟล์ได้ตามปกติ
|
||||
จากนั้นจึงไปที่โฟลเดอร์ของคุณในเทอร์มินัลโดยใช้คำสั่ง `cd`
|
||||
|
||||
==== คำสั่ง PlatformIO เบื้องต้น
|
||||
|
||||
#[
|
||||
#set list(indent: 9.25em)
|
||||
- `pio run --list-targets`: ดูรายการเป้าหมายคำสั่งรัน
|
||||
- `pio run upload`: รันเป้าหมายอัพโหลด
|
||||
#set enum(indent: 7.3em)
|
||||
1. `pio run --list-targets` เพื่อดูรายการเป้าหมายคำสั่งรัน
|
||||
2. `pio run upload` เพื่อรันเป้าหมายอัพโหลด
|
||||
ซึ่งนี่คือคำสั่งที่คุณควรจะใช้ในการเขียนเฟิร์มแวร์ลงบนบอร์ด
|
||||
- `pio device monitor`: เปิด Serial Monitor
|
||||
3. `pio device monitor` เพื่อเปิด Serial Monitor
|
||||
]
|
||||
|
||||
#iiii *หมายเหตุ:* โปรดใช้คำสั่งประเภท `pio run` ในโฟลเดอร์ของโปรเจกต์
|
||||
#h(7.3em) และโปรดใช้คำสั่งประเภท `pio run` ในโฟลเดอร์ของโปรเจกต์
|
||||
|
||||
#include "BuildApp.typ"
|
||||
|
||||
== การทดสอบ
|
||||
|
||||
#set enum(indent: 1.7em)
|
||||
1. เข้าแอพลิเคชัน liteauthconfig
|
||||
2. ทำการเชื่อมต่อไวไฟที่ต้องการให้อุปกรณ์เชื่อมต่อ (ต้องไม่ใช่ไวไฟ 2.4 GHz)
|
||||
3. กดปุ่มบวก
|
||||
4. กดตั้งค่าอุปกรณ์ใหม่ (Setup new device)
|
||||
5. ตั้งชื่ออุปกรณ์และใส่รหัสผ่านเครือข่าย
|
||||
6. กดปุ่มติ๊กถูกเพื่อเริ่มการตั้งค่าอุปกรณ์
|
||||
7. เข้าสู่โหมดลงทะเบียนอุปกรณ์ NFC
|
||||
8. ทำการแตะอุปกรณ์ NFC (เช่นโทรศัพท์ที่รองรับหรือแท็ก NFC)
|
||||
9. ออกจากโหมดลงทะเบียน
|
||||
10. ทำการแตะอุปกรณ์ NFC ที่ลงทะเบียน
|
||||
11. รอสังเกตุรายการกิจกรรม (Activity Logs)
|
||||
|
||||
== การวิเคราะห์ข้อมูล
|
||||
|
||||
#h(1.7em) วิเคราะห์จากตารางการทดลองตามความเร็วในการทำงานจริงของเครื่องยืนยันตัวตนด้วย NFC
|
||||
|
||||
@@ -18,17 +18,17 @@
|
||||
node((1, 3), [เชื่อมต่อเครือข่าย]),
|
||||
edge("-|>"),
|
||||
|
||||
node((0, 4), [มีอุปกรณ์ควบคุม\ หลักแล้วหรือไม่], shape: diamond),
|
||||
node((0, 3.5), [ตั้งค่าเซิร์ฟเวอร์ HTTPS]),
|
||||
edge("-|>"),
|
||||
|
||||
node((0, 5), [มีอุปกรณ์ควบคุม\ หลักแล้วหรือไม่], shape: diamond),
|
||||
edge("-|>", [ไม่มี]),
|
||||
edge("d", "-|>", [มี]),
|
||||
|
||||
node((1, 4), [สร้างโทเค็นสำหรับการยืนยัน\ อุปกรณ์ควบคุมหลัก]),
|
||||
edge("-|>"),
|
||||
|
||||
node((1, 5), [รออุปกรณ์ควบคุมหลัก\ แตะเซนเซอร์ NFC]),
|
||||
edge("-|>"),
|
||||
|
||||
node((0, 5), [ตั้งค่าเซิร์ฟเวอร์ HTTPS]),
|
||||
node((1, 5), [รออุปกรณ์ควบคุมหลัก\ ติดต่อกับอุปกรณ์]),
|
||||
edge("-|>"),
|
||||
|
||||
node((0, 6), shape: circle, radius: 1em),
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 3.6 MiB |
|
Before Width: | Height: | Size: 2.8 MiB After Width: | Height: | Size: 2.8 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 839 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 21 KiB |
Reference in New Issue
Block a user