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.
IoT-For-Beginners/translations/th/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md

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 สภาพแวดล้อมเสมือนที่เลือกจะปรากฏในแถบสถานะด้านล่าง:
![VS Code showing the selected virtual environment](../../../../../translated_images/vscode-virtual-env.8ba42e04c3d533cf677e16cbe5ed9a3b80f62c6964472dc84b6f940800f0909f.th.png)
1. หากเทอร์มินัลของ VS Code กำลังทำงานอยู่เมื่อ VS Code เริ่มต้นขึ้น มันจะไม่มีสภาพแวดล้อมเสมือนเปิดใช้งานในนั้น วิธีที่ง่ายที่สุดคือปิดเทอร์มินัลโดยใช้ปุ่ม **Kill the active terminal instance**:
![VS Code Kill the active terminal instance button](../../../../../translated_images/vscode-kill-terminal.1cc4de7c6f25ee08f423f0ead714e61d069fac1eb2089e97b8a7bbcb3d45fe5e.th.png)
คุณสามารถบอกได้ว่าเทอร์มินัลมีสภาพแวดล้อมเสมือนเปิดใช้งานหรือไม่จากชื่อของสภาพแวดล้อมเสมือนที่จะแสดงเป็นคำนำหน้าบนพรอมต์ของเทอร์มินัล ตัวอย่างเช่น อาจเป็น:
```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
```
แอปจะเริ่มทำงานและเปิดในเว็บเบราว์เซอร์ของคุณ:
![The Counter Fit app running in a browser](../../../../../translated_images/counterfit-first-run.433326358b669b31d0e99c3513cb01bfbb13724d162c99cdcc8f51ecf5f9c779.th.png)
มันจะแสดงสถานะเป็น *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 กำลังรันอยู่ในเทอร์มินัลปัจจุบัน
![VS Code Create a new integrated terminal button](../../../../../translated_images/vscode-new-terminal.77db8fc0f9cd31824b0e49a201beafe4ae4616d6c7339992cb2819e789b3eff9.th.png)
1. ในเทอร์มินัลใหม่นี้ รันไฟล์ `app.py` เหมือนเดิม สถานะของ CounterFit จะเปลี่ยนเป็น **Connected** และไฟ LED จะสว่างขึ้น
![Counter Fit showing as connected](../../../../../translated_images/counterfit-connected.ed30b46d8f79b0921f3fc70be10366e596a89dca3f80c2224a9d9fc98fccf884.th.png)
> 💁 คุณสามารถหาโค้ดนี้ได้ในโฟลเดอร์ [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) แม้ว่าเราจะพยายามให้การแปลมีความถูกต้องมากที่สุด แต่โปรดทราบว่าการแปลโดยอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาที่เป็นต้นฉบับควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลภาษามืออาชีพ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความผิดที่เกิดจากการใช้การแปลนี้