You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
245 lines
24 KiB
245 lines
24 KiB
<!--
|
|
CO_OP_TRANSLATOR_METADATA:
|
|
{
|
|
"original_hash": "52b4de6144b2efdced7797a5339d6035",
|
|
"translation_date": "2025-08-27T21:20:20+00:00",
|
|
"source_file": "1-getting-started/lessons/1-introduction-to-iot/virtual-device.md",
|
|
"language_code": "th"
|
|
}
|
|
-->
|
|
# คอมพิวเตอร์บอร์ดเดี่ยวเสมือน
|
|
|
|
แทนที่จะซื้ออุปกรณ์ IoT พร้อมกับเซ็นเซอร์และแอคชูเอเตอร์ คุณสามารถใช้คอมพิวเตอร์ของคุณเพื่อจำลองฮาร์ดแวร์ IoT ได้ โครงการ [CounterFit](https://github.com/CounterFit-IoT/CounterFit) ช่วยให้คุณสามารถรันแอปในเครื่องที่จำลองฮาร์ดแวร์ IoT เช่น เซ็นเซอร์และแอคชูเอเตอร์ และเข้าถึงเซ็นเซอร์และแอคชูเอเตอร์จากโค้ด Python ในเครื่องที่เขียนในลักษณะเดียวกับโค้ดที่คุณจะเขียนบน Raspberry Pi โดยใช้ฮาร์ดแวร์จริง
|
|
|
|
## การตั้งค่า
|
|
|
|
ในการใช้ CounterFit คุณจะต้องติดตั้งซอฟต์แวร์ฟรีบางตัวบนคอมพิวเตอร์ของคุณ
|
|
|
|
### งาน
|
|
|
|
ติดตั้งซอฟต์แวร์ที่จำเป็น
|
|
|
|
1. ติดตั้ง Python ดูคำแนะนำในการติดตั้งเวอร์ชันล่าสุดของ Python ได้ที่ [หน้า Python downloads](https://www.python.org/downloads/)
|
|
|
|
1. ติดตั้ง Visual Studio Code (VS Code) ซึ่งเป็นโปรแกรมแก้ไขที่คุณจะใช้เขียนโค้ดอุปกรณ์เสมือนใน Python ดูคำแนะนำในการติดตั้ง VS Code ได้ที่ [เอกสาร VS Code](https://code.visualstudio.com?WT.mc_id=academic-17441-jabenn)
|
|
|
|
> 💁 คุณสามารถใช้ Python IDE หรือโปรแกรมแก้ไขใด ๆ ที่คุณชอบสำหรับบทเรียนนี้ได้ แต่บทเรียนจะให้คำแนะนำโดยอิงจากการใช้ VS Code
|
|
|
|
1. ติดตั้งส่วนขยาย VS Code Pylance ซึ่งเป็นส่วนขยายสำหรับ VS Code ที่ให้การสนับสนุนภาษา Python ดูคำแนะนำในการติดตั้งส่วนขยายนี้ใน VS Code ได้ที่ [เอกสารส่วนขยาย Pylance](https://marketplace.visualstudio.com/items?WT.mc_id=academic-17441-jabenn&itemName=ms-python.vscode-pylance)
|
|
|
|
คำแนะนำในการติดตั้งและกำหนดค่าแอป CounterFit จะมีให้ในเวลาที่เหมาะสมในคำแนะนำของงาน เนื่องจากจะติดตั้งในแต่ละโปรเจกต์
|
|
|
|
## Hello world
|
|
|
|
ตามธรรมเนียมเมื่อเริ่มต้นกับภาษาโปรแกรมหรือเทคโนโลยีใหม่ ๆ เราจะสร้างแอป 'Hello World' ซึ่งเป็นแอปเล็ก ๆ ที่แสดงข้อความ เช่น `"Hello World"` เพื่อแสดงว่าเครื่องมือทั้งหมดได้รับการกำหนดค่าอย่างถูกต้อง
|
|
|
|
แอป Hello World สำหรับฮาร์ดแวร์ IoT เสมือนจะช่วยให้คุณมั่นใจได้ว่า Python และ Visual Studio Code ได้รับการติดตั้งอย่างถูกต้อง นอกจากนี้ยังจะเชื่อมต่อกับ CounterFit สำหรับเซ็นเซอร์และแอคชูเอเตอร์ IoT เสมือน โดยไม่ใช้ฮาร์ดแวร์ใด ๆ เพียงแค่เชื่อมต่อเพื่อพิสูจน์ว่าทุกอย่างทำงานได้
|
|
|
|
แอปนี้จะอยู่ในโฟลเดอร์ชื่อ `nightlight` และจะถูกนำมาใช้ซ้ำพร้อมโค้ดที่แตกต่างกันในส่วนถัดไปของงานนี้เพื่อสร้างแอปพลิเคชัน nightlight
|
|
|
|
### กำหนดค่าสภาพแวดล้อมเสมือน Python
|
|
|
|
หนึ่งในคุณสมบัติที่ทรงพลังของ Python คือความสามารถในการติดตั้ง [Pip packages](https://pypi.org) ซึ่งเป็นแพ็กเกจโค้ดที่เขียนโดยผู้อื่นและเผยแพร่บนอินเทอร์เน็ต คุณสามารถติดตั้งแพ็กเกจ Pip ลงในคอมพิวเตอร์ของคุณด้วยคำสั่งเดียว จากนั้นใช้แพ็กเกจนั้นในโค้ดของคุณ คุณจะใช้ Pip เพื่อติดตั้งแพ็กเกจสำหรับการเชื่อมต่อกับ CounterFit
|
|
|
|
โดยปกติเมื่อคุณติดตั้งแพ็กเกจ มันจะพร้อมใช้งานทุกที่ในคอมพิวเตอร์ของคุณ ซึ่งอาจนำไปสู่ปัญหาเกี่ยวกับเวอร์ชันของแพ็กเกจ เช่น แอปพลิเคชันหนึ่งต้องการเวอร์ชันหนึ่งของแพ็กเกจที่อาจใช้งานไม่ได้เมื่อคุณติดตั้งเวอร์ชันใหม่สำหรับแอปพลิเคชันอื่น เพื่อหลีกเลี่ยงปัญหานี้ คุณสามารถใช้ [สภาพแวดล้อมเสมือน Python](https://docs.python.org/3/library/venv.html) ซึ่งเป็นสำเนาของ Python ในโฟลเดอร์เฉพาะ และเมื่อคุณติดตั้งแพ็กเกจ Pip แพ็กเกจเหล่านั้นจะถูกติดตั้งเฉพาะในโฟลเดอร์นั้น
|
|
|
|
> 💁 หากคุณใช้ Raspberry Pi คุณไม่ได้ตั้งค่าสภาพแวดล้อมเสมือนบนอุปกรณ์นั้นเพื่อจัดการแพ็กเกจ Pip แต่คุณใช้แพ็กเกจแบบ global เนื่องจากแพ็กเกจ Grove ถูกติดตั้งแบบ global โดยสคริปต์ติดตั้ง
|
|
|
|
#### งาน - กำหนดค่าสภาพแวดล้อมเสมือน Python
|
|
|
|
กำหนดค่าสภาพแวดล้อมเสมือน Python และติดตั้งแพ็กเกจ Pip สำหรับ CounterFit
|
|
|
|
1. จากเทอร์มินัลหรือคอมมานด์ไลน์ของคุณ รันคำสั่งต่อไปนี้ในตำแหน่งที่คุณเลือกเพื่อสร้างและนำทางไปยังไดเรกทอรีใหม่:
|
|
|
|
```sh
|
|
mkdir nightlight
|
|
cd nightlight
|
|
```
|
|
|
|
1. รันคำสั่งต่อไปนี้เพื่อสร้างสภาพแวดล้อมเสมือนในโฟลเดอร์ `.venv`:
|
|
|
|
```sh
|
|
python3 -m venv .venv
|
|
```
|
|
|
|
> 💁 คุณต้องเรียก `python3` อย่างชัดเจนเพื่อสร้างสภาพแวดล้อมเสมือนในกรณีที่คุณติดตั้ง Python 2 ไว้ด้วย หากคุณติดตั้ง Python 2 การเรียก `python` จะใช้ Python 2 แทน Python 3
|
|
|
|
1. เปิดใช้งานสภาพแวดล้อมเสมือน:
|
|
|
|
* บน Windows:
|
|
* หากคุณใช้ Command Prompt หรือ Command Prompt ผ่าน Windows Terminal ให้รัน:
|
|
|
|
```cmd
|
|
.venv\Scripts\activate.bat
|
|
```
|
|
|
|
* หากคุณใช้ PowerShell ให้รัน:
|
|
|
|
```powershell
|
|
.\.venv\Scripts\Activate.ps1
|
|
```
|
|
|
|
> หากคุณได้รับข้อผิดพลาดเกี่ยวกับการรันสคริปต์ที่ถูกปิดใช้งานในระบบนี้ คุณจะต้องเปิดใช้งานการรันสคริปต์โดยตั้งค่านโยบายการดำเนินการที่เหมาะสม คุณสามารถทำได้โดยเปิด PowerShell ในฐานะผู้ดูแลระบบ จากนั้นรันคำสั่งต่อไปนี้:
|
|
|
|
```powershell
|
|
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
|
|
```
|
|
|
|
กด `Y` เมื่อถูกถามเพื่อยืนยัน จากนั้นเปิด PowerShell ใหม่และลองอีกครั้ง
|
|
|
|
คุณสามารถรีเซ็ตนโยบายการดำเนินการนี้ในภายหลังหากจำเป็น คุณสามารถอ่านเพิ่มเติมเกี่ยวกับเรื่องนี้ได้ใน [หน้าการตั้งค่านโยบายการดำเนินการใน Microsoft Docs](https://docs.microsoft.com/powershell/module/microsoft.powershell.core/about/about_execution_policies?WT.mc_id=academic-17441-jabenn)
|
|
|
|
* บน macOS หรือ Linux ให้รัน:
|
|
|
|
```cmd
|
|
source ./.venv/bin/activate
|
|
```
|
|
|
|
> 💁 คำสั่งเหล่านี้ควรรันจากตำแหน่งเดียวกับที่คุณรันคำสั่งเพื่อสร้างสภาพแวดล้อมเสมือน คุณไม่จำเป็นต้องนำทางเข้าไปในโฟลเดอร์ `.venv` คุณควรรันคำสั่งเปิดใช้งานและคำสั่งใด ๆ เพื่อการติดตั้งแพ็กเกจหรือรันโค้ดจากโฟลเดอร์ที่คุณอยู่เมื่อคุณสร้างสภาพแวดล้อมเสมือน
|
|
|
|
1. เมื่อสภาพแวดล้อมเสมือนถูกเปิดใช้งาน คำสั่ง `python` เริ่มต้นจะรันเวอร์ชันของ Python ที่ใช้สร้างสภาพแวดล้อมเสมือน รันคำสั่งต่อไปนี้เพื่อดูเวอร์ชัน:
|
|
|
|
```sh
|
|
python --version
|
|
```
|
|
|
|
ผลลัพธ์ควรมีดังนี้:
|
|
|
|
```output
|
|
(.venv) ➜ nightlight python --version
|
|
Python 3.9.1
|
|
```
|
|
|
|
> 💁 เวอร์ชัน Python ของคุณอาจแตกต่างออกไป - ตราบใดที่เป็นเวอร์ชัน 3.6 หรือสูงกว่าก็ถือว่าใช้ได้ หากไม่ใช่ ให้ลบโฟลเดอร์นี้ ติดตั้งเวอร์ชันใหม่ของ Python และลองอีกครั้ง
|
|
|
|
1. รันคำสั่งต่อไปนี้เพื่อติดตั้งแพ็กเกจ Pip สำหรับ CounterFit แพ็กเกจเหล่านี้รวมถึงแอป CounterFit หลักและ shims สำหรับฮาร์ดแวร์ Grove shims เหล่านี้ช่วยให้คุณเขียนโค้ดเหมือนกับว่าคุณกำลังเขียนโปรแกรมโดยใช้เซ็นเซอร์และแอคชูเอเตอร์จริงจากระบบ Grove แต่เชื่อมต่อกับอุปกรณ์ IoT เสมือน
|
|
|
|
```sh
|
|
pip install CounterFit
|
|
pip install counterfit-connection
|
|
pip install counterfit-shims-grove
|
|
```
|
|
|
|
แพ็กเกจ Pip เหล่านี้จะถูกติดตั้งเฉพาะในสภาพแวดล้อมเสมือน และจะไม่สามารถใช้งานได้ภายนอก
|
|
|
|
### เขียนโค้ด
|
|
|
|
เมื่อสภาพแวดล้อมเสมือน Python พร้อมแล้ว คุณสามารถเขียนโค้ดสำหรับแอป 'Hello World' ได้
|
|
|
|
#### งาน - เขียนโค้ด
|
|
|
|
สร้างแอปพลิเคชัน Python เพื่อพิมพ์ `"Hello World"` ลงในคอนโซล
|
|
|
|
1. จากเทอร์มินัลหรือคอมมานด์ไลน์ของคุณ รันคำสั่งต่อไปนี้ภายในสภาพแวดล้อมเสมือนเพื่อสร้างไฟล์ Python ชื่อ `app.py`:
|
|
|
|
* บน Windows รัน:
|
|
|
|
```cmd
|
|
type nul > app.py
|
|
```
|
|
|
|
* บน macOS หรือ Linux รัน:
|
|
|
|
```cmd
|
|
touch app.py
|
|
```
|
|
|
|
1. เปิดโฟลเดอร์ปัจจุบันใน VS Code:
|
|
|
|
```sh
|
|
code .
|
|
```
|
|
|
|
> 💁 หากเทอร์มินัลของคุณแสดง `command not found` บน macOS หมายความว่า VS Code ยังไม่ได้ถูกเพิ่มใน PATH ของคุณ คุณสามารถเพิ่ม VS Code ใน PATH ได้โดยทำตามคำแนะนำใน [ส่วนการเปิดใช้งานจากบรรทัดคำสั่งในเอกสาร VS Code](https://code.visualstudio.com/docs/setup/mac?WT.mc_id=academic-17441-jabenn#_launching-from-the-command-line) และรันคำสั่งหลังจากนั้น VS Code จะถูกเพิ่มใน PATH โดยค่าเริ่มต้นบน Windows และ Linux
|
|
|
|
1. เมื่อ VS Code เปิดขึ้น มันจะเปิดใช้งานสภาพแวดล้อมเสมือน Python สภาพแวดล้อมเสมือนที่เลือกจะปรากฏในแถบสถานะด้านล่าง:
|
|
|
|

|
|
|
|
1. หากเทอร์มินัลของ VS Code กำลังทำงานอยู่เมื่อ VS Code เริ่มต้นขึ้น มันจะไม่มีสภาพแวดล้อมเสมือนเปิดใช้งานในนั้น วิธีที่ง่ายที่สุดคือปิดเทอร์มินัลโดยใช้ปุ่ม **Kill the active terminal instance**:
|
|
|
|

|
|
|
|
คุณสามารถบอกได้ว่าเทอร์มินัลมีสภาพแวดล้อมเสมือนเปิดใช้งานหรือไม่จากชื่อของสภาพแวดล้อมเสมือนที่จะแสดงเป็นคำนำหน้าบนพรอมต์ของเทอร์มินัล ตัวอย่างเช่น อาจเป็น:
|
|
|
|
```sh
|
|
(.venv) ➜ nightlight
|
|
```
|
|
|
|
หากคุณไม่มี `.venv` เป็นคำนำหน้าบนพรอมต์ สภาพแวดล้อมเสมือนจะไม่เปิดใช้งานในเทอร์มินัล
|
|
|
|
1. เปิดเทอร์มินัลใหม่ใน VS Code โดยเลือก *Terminal -> New Terminal* หรือกด `` CTRL+` `` เทอร์มินัลใหม่จะโหลดสภาพแวดล้อมเสมือน และคำสั่งเปิดใช้งานนี้จะปรากฏในเทอร์มินัล พรอมต์จะมีชื่อของสภาพแวดล้อมเสมือน (`.venv`):
|
|
|
|
```output
|
|
➜ nightlight source .venv/bin/activate
|
|
(.venv) ➜ nightlight
|
|
```
|
|
|
|
1. เปิดไฟล์ `app.py` จากตัวสำรวจของ VS Code และเพิ่มโค้ดต่อไปนี้:
|
|
|
|
```python
|
|
print('Hello World!')
|
|
```
|
|
|
|
ฟังก์ชัน `print` จะพิมพ์สิ่งที่ถูกส่งผ่านไปยังมันลงในคอนโซล
|
|
|
|
1. จากเทอร์มินัลของ VS Code รันคำสั่งต่อไปนี้เพื่อรันแอป Python ของคุณ:
|
|
|
|
```sh
|
|
python app.py
|
|
```
|
|
|
|
ผลลัพธ์ต่อไปนี้จะปรากฏ:
|
|
|
|
```output
|
|
(.venv) ➜ nightlight python app.py
|
|
Hello World!
|
|
```
|
|
|
|
😀 โปรแกรม 'Hello World' ของคุณสำเร็จแล้ว!
|
|
|
|
### เชื่อมต่อ 'ฮาร์ดแวร์'
|
|
|
|
ในขั้นตอน 'Hello World' ที่สอง คุณจะรันแอป CounterFit และเชื่อมต่อโค้ดของคุณกับมัน นี่คือสิ่งที่เทียบเท่ากับการเชื่อมต่อฮาร์ดแวร์ IoT เข้ากับชุดพัฒนา
|
|
|
|
#### งาน - เชื่อมต่อ 'ฮาร์ดแวร์'
|
|
|
|
1. จากเทอร์มินัลของ VS Code เปิดแอป CounterFit ด้วยคำสั่งต่อไปนี้:
|
|
|
|
```sh
|
|
counterfit
|
|
```
|
|
|
|
แอปจะเริ่มทำงานและเปิดในเว็บเบราว์เซอร์ของคุณ:
|
|
|
|

|
|
|
|
มันจะแสดงสถานะเป็น *Disconnected* โดยมีไฟ LED ที่มุมขวาบนปิดอยู่
|
|
|
|
1. เพิ่มโค้ดต่อไปนี้ที่ด้านบนของ `app.py`:
|
|
|
|
```python
|
|
from counterfit_connection import CounterFitConnection
|
|
CounterFitConnection.init('127.0.0.1', 5000)
|
|
```
|
|
|
|
โค้ดนี้นำเข้า `CounterFitConnection` class จากโมดูล `counterfit_connection` ซึ่งมาจากแพ็กเกจ `counterfit-connection` ที่คุณติดตั้งก่อนหน้านี้ จากนั้นจะเริ่มต้นการเชื่อมต่อกับแอป CounterFit ที่รันอยู่บน `127.0.0.1` ซึ่งเป็นที่อยู่ IP ที่คุณสามารถใช้เข้าถึงคอมพิวเตอร์ของคุณเองได้เสมอ (มักเรียกว่า *localhost*) บนพอร์ต 5000
|
|
|
|
> 💁 หากคุณมีแอปอื่นที่รันอยู่บนพอร์ต 5000 คุณสามารถเปลี่ยนพอร์ตนี้ได้โดยอัปเดตพอร์ตในโค้ด และรัน CounterFit โดยใช้ `CounterFit --port <port_number>` โดยแทนที่ `<port_number>` ด้วยพอร์ตที่คุณต้องการใช้
|
|
|
|
1. คุณจะต้องเปิดเทอร์มินัลใหม่ใน VS Code โดยเลือกปุ่ม **Create a new integrated terminal** เนื่องจากแอป CounterFit กำลังรันอยู่ในเทอร์มินัลปัจจุบัน
|
|
|
|

|
|
|
|
1. ในเทอร์มินัลใหม่นี้ รันไฟล์ `app.py` เหมือนเดิม สถานะของ CounterFit จะเปลี่ยนเป็น **Connected** และไฟ LED จะสว่างขึ้น
|
|
|
|

|
|
|
|
> 💁 คุณสามารถหาโค้ดนี้ได้ในโฟลเดอร์ [code/virtual-device](../../../../../1-getting-started/lessons/1-introduction-to-iot/code/virtual-device)
|
|
|
|
😀 การเชื่อมต่อกับฮาร์ดแวร์ของคุณสำเร็จแล้ว!
|
|
|
|
---
|
|
|
|
**ข้อจำกัดความรับผิดชอบ**:
|
|
เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษา AI [Co-op Translator](https://github.com/Azure/co-op-translator) แม้ว่าเราจะพยายามให้การแปลมีความถูกต้องมากที่สุด แต่โปรดทราบว่าการแปลโดยอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาที่เป็นต้นฉบับควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลภาษามืออาชีพ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความผิดที่เกิดจากการใช้การแปลนี้ |