24 KiB
คอมพิวเตอร์บอร์ดเดี่ยวเสมือน
แทนที่จะซื้ออุปกรณ์ IoT พร้อมกับเซ็นเซอร์และแอคชูเอเตอร์ คุณสามารถใช้คอมพิวเตอร์ของคุณเพื่อจำลองฮาร์ดแวร์ IoT ได้ โครงการ CounterFit ช่วยให้คุณสามารถรันแอปในเครื่องที่จำลองฮาร์ดแวร์ IoT เช่น เซ็นเซอร์และแอคชูเอเตอร์ และเข้าถึงเซ็นเซอร์และแอคชูเอเตอร์จากโค้ด Python ในเครื่องที่เขียนในลักษณะเดียวกับโค้ดที่คุณจะเขียนบน Raspberry Pi โดยใช้ฮาร์ดแวร์จริง
การตั้งค่า
ในการใช้ CounterFit คุณจะต้องติดตั้งซอฟต์แวร์ฟรีบางตัวบนคอมพิวเตอร์ของคุณ
งาน
ติดตั้งซอฟต์แวร์ที่จำเป็น
-
ติดตั้ง Python ดูคำแนะนำในการติดตั้งเวอร์ชันล่าสุดของ Python ได้ที่ หน้า Python downloads
-
ติดตั้ง Visual Studio Code (VS Code) ซึ่งเป็นโปรแกรมแก้ไขที่คุณจะใช้เขียนโค้ดอุปกรณ์เสมือนใน Python ดูคำแนะนำในการติดตั้ง VS Code ได้ที่ เอกสาร VS Code
💁 คุณสามารถใช้ Python IDE หรือโปรแกรมแก้ไขใด ๆ ที่คุณชอบสำหรับบทเรียนนี้ได้ แต่บทเรียนจะให้คำแนะนำโดยอิงจากการใช้ VS Code
-
ติดตั้งส่วนขยาย VS Code Pylance ซึ่งเป็นส่วนขยายสำหรับ VS Code ที่ให้การสนับสนุนภาษา Python ดูคำแนะนำในการติดตั้งส่วนขยายนี้ใน VS Code ได้ที่ เอกสารส่วนขยาย Pylance
คำแนะนำในการติดตั้งและกำหนดค่าแอป CounterFit จะมีให้ในเวลาที่เหมาะสมในคำแนะนำของงาน เนื่องจากจะติดตั้งในแต่ละโปรเจกต์
Hello world
ตามธรรมเนียมเมื่อเริ่มต้นกับภาษาโปรแกรมหรือเทคโนโลยีใหม่ ๆ เราจะสร้างแอป 'Hello World' ซึ่งเป็นแอปเล็ก ๆ ที่แสดงข้อความ เช่น "Hello World"
เพื่อแสดงว่าเครื่องมือทั้งหมดได้รับการกำหนดค่าอย่างถูกต้อง
แอป Hello World สำหรับฮาร์ดแวร์ IoT เสมือนจะช่วยให้คุณมั่นใจได้ว่า Python และ Visual Studio Code ได้รับการติดตั้งอย่างถูกต้อง นอกจากนี้ยังจะเชื่อมต่อกับ CounterFit สำหรับเซ็นเซอร์และแอคชูเอเตอร์ IoT เสมือน โดยไม่ใช้ฮาร์ดแวร์ใด ๆ เพียงแค่เชื่อมต่อเพื่อพิสูจน์ว่าทุกอย่างทำงานได้
แอปนี้จะอยู่ในโฟลเดอร์ชื่อ nightlight
และจะถูกนำมาใช้ซ้ำพร้อมโค้ดที่แตกต่างกันในส่วนถัดไปของงานนี้เพื่อสร้างแอปพลิเคชัน nightlight
กำหนดค่าสภาพแวดล้อมเสมือน Python
หนึ่งในคุณสมบัติที่ทรงพลังของ Python คือความสามารถในการติดตั้ง Pip packages ซึ่งเป็นแพ็กเกจโค้ดที่เขียนโดยผู้อื่นและเผยแพร่บนอินเทอร์เน็ต คุณสามารถติดตั้งแพ็กเกจ Pip ลงในคอมพิวเตอร์ของคุณด้วยคำสั่งเดียว จากนั้นใช้แพ็กเกจนั้นในโค้ดของคุณ คุณจะใช้ Pip เพื่อติดตั้งแพ็กเกจสำหรับการเชื่อมต่อกับ CounterFit
โดยปกติเมื่อคุณติดตั้งแพ็กเกจ มันจะพร้อมใช้งานทุกที่ในคอมพิวเตอร์ของคุณ ซึ่งอาจนำไปสู่ปัญหาเกี่ยวกับเวอร์ชันของแพ็กเกจ เช่น แอปพลิเคชันหนึ่งต้องการเวอร์ชันหนึ่งของแพ็กเกจที่อาจใช้งานไม่ได้เมื่อคุณติดตั้งเวอร์ชันใหม่สำหรับแอปพลิเคชันอื่น เพื่อหลีกเลี่ยงปัญหานี้ คุณสามารถใช้ สภาพแวดล้อมเสมือน Python ซึ่งเป็นสำเนาของ Python ในโฟลเดอร์เฉพาะ และเมื่อคุณติดตั้งแพ็กเกจ Pip แพ็กเกจเหล่านั้นจะถูกติดตั้งเฉพาะในโฟลเดอร์นั้น
💁 หากคุณใช้ Raspberry Pi คุณไม่ได้ตั้งค่าสภาพแวดล้อมเสมือนบนอุปกรณ์นั้นเพื่อจัดการแพ็กเกจ Pip แต่คุณใช้แพ็กเกจแบบ global เนื่องจากแพ็กเกจ Grove ถูกติดตั้งแบบ global โดยสคริปต์ติดตั้ง
งาน - กำหนดค่าสภาพแวดล้อมเสมือน Python
กำหนดค่าสภาพแวดล้อมเสมือน Python และติดตั้งแพ็กเกจ Pip สำหรับ CounterFit
-
จากเทอร์มินัลหรือคอมมานด์ไลน์ของคุณ รันคำสั่งต่อไปนี้ในตำแหน่งที่คุณเลือกเพื่อสร้างและนำทางไปยังไดเรกทอรีใหม่:
mkdir nightlight cd nightlight
-
รันคำสั่งต่อไปนี้เพื่อสร้างสภาพแวดล้อมเสมือนในโฟลเดอร์
.venv
:python3 -m venv .venv
💁 คุณต้องเรียก
python3
อย่างชัดเจนเพื่อสร้างสภาพแวดล้อมเสมือนในกรณีที่คุณติดตั้ง Python 2 ไว้ด้วย หากคุณติดตั้ง Python 2 การเรียกpython
จะใช้ Python 2 แทน Python 3 -
เปิดใช้งานสภาพแวดล้อมเสมือน:
-
บน Windows:
-
หากคุณใช้ Command Prompt หรือ Command Prompt ผ่าน Windows Terminal ให้รัน:
.venv\Scripts\activate.bat
-
หากคุณใช้ PowerShell ให้รัน:
.\.venv\Scripts\Activate.ps1
หากคุณได้รับข้อผิดพลาดเกี่ยวกับการรันสคริปต์ที่ถูกปิดใช้งานในระบบนี้ คุณจะต้องเปิดใช้งานการรันสคริปต์โดยตั้งค่านโยบายการดำเนินการที่เหมาะสม คุณสามารถทำได้โดยเปิด PowerShell ในฐานะผู้ดูแลระบบ จากนั้นรันคำสั่งต่อไปนี้:
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
กด
Y
เมื่อถูกถามเพื่อยืนยัน จากนั้นเปิด PowerShell ใหม่และลองอีกครั้งคุณสามารถรีเซ็ตนโยบายการดำเนินการนี้ในภายหลังหากจำเป็น คุณสามารถอ่านเพิ่มเติมเกี่ยวกับเรื่องนี้ได้ใน หน้าการตั้งค่านโยบายการดำเนินการใน Microsoft Docs
-
-
บน macOS หรือ Linux ให้รัน:
source ./.venv/bin/activate
💁 คำสั่งเหล่านี้ควรรันจากตำแหน่งเดียวกับที่คุณรันคำสั่งเพื่อสร้างสภาพแวดล้อมเสมือน คุณไม่จำเป็นต้องนำทางเข้าไปในโฟลเดอร์
.venv
คุณควรรันคำสั่งเปิดใช้งานและคำสั่งใด ๆ เพื่อการติดตั้งแพ็กเกจหรือรันโค้ดจากโฟลเดอร์ที่คุณอยู่เมื่อคุณสร้างสภาพแวดล้อมเสมือน -
-
เมื่อสภาพแวดล้อมเสมือนถูกเปิดใช้งาน คำสั่ง
python
เริ่มต้นจะรันเวอร์ชันของ Python ที่ใช้สร้างสภาพแวดล้อมเสมือน รันคำสั่งต่อไปนี้เพื่อดูเวอร์ชัน:python --version
ผลลัพธ์ควรมีดังนี้:
(.venv) ➜ nightlight python --version Python 3.9.1
💁 เวอร์ชัน Python ของคุณอาจแตกต่างออกไป - ตราบใดที่เป็นเวอร์ชัน 3.6 หรือสูงกว่าก็ถือว่าใช้ได้ หากไม่ใช่ ให้ลบโฟลเดอร์นี้ ติดตั้งเวอร์ชันใหม่ของ Python และลองอีกครั้ง
-
รันคำสั่งต่อไปนี้เพื่อติดตั้งแพ็กเกจ Pip สำหรับ CounterFit แพ็กเกจเหล่านี้รวมถึงแอป CounterFit หลักและ shims สำหรับฮาร์ดแวร์ Grove shims เหล่านี้ช่วยให้คุณเขียนโค้ดเหมือนกับว่าคุณกำลังเขียนโปรแกรมโดยใช้เซ็นเซอร์และแอคชูเอเตอร์จริงจากระบบ Grove แต่เชื่อมต่อกับอุปกรณ์ IoT เสมือน
pip install CounterFit pip install counterfit-connection pip install counterfit-shims-grove
แพ็กเกจ Pip เหล่านี้จะถูกติดตั้งเฉพาะในสภาพแวดล้อมเสมือน และจะไม่สามารถใช้งานได้ภายนอก
เขียนโค้ด
เมื่อสภาพแวดล้อมเสมือน Python พร้อมแล้ว คุณสามารถเขียนโค้ดสำหรับแอป 'Hello World' ได้
งาน - เขียนโค้ด
สร้างแอปพลิเคชัน Python เพื่อพิมพ์ "Hello World"
ลงในคอนโซล
-
จากเทอร์มินัลหรือคอมมานด์ไลน์ของคุณ รันคำสั่งต่อไปนี้ภายในสภาพแวดล้อมเสมือนเพื่อสร้างไฟล์ Python ชื่อ
app.py
:-
บน Windows รัน:
type nul > app.py
-
บน macOS หรือ Linux รัน:
touch app.py
-
-
เปิดโฟลเดอร์ปัจจุบันใน VS Code:
code .
💁 หากเทอร์มินัลของคุณแสดง
command not found
บน macOS หมายความว่า VS Code ยังไม่ได้ถูกเพิ่มใน PATH ของคุณ คุณสามารถเพิ่ม VS Code ใน PATH ได้โดยทำตามคำแนะนำใน ส่วนการเปิดใช้งานจากบรรทัดคำสั่งในเอกสาร VS Code และรันคำสั่งหลังจากนั้น VS Code จะถูกเพิ่มใน PATH โดยค่าเริ่มต้นบน Windows และ Linux -
เมื่อ VS Code เปิดขึ้น มันจะเปิดใช้งานสภาพแวดล้อมเสมือน Python สภาพแวดล้อมเสมือนที่เลือกจะปรากฏในแถบสถานะด้านล่าง:
-
หากเทอร์มินัลของ VS Code กำลังทำงานอยู่เมื่อ VS Code เริ่มต้นขึ้น มันจะไม่มีสภาพแวดล้อมเสมือนเปิดใช้งานในนั้น วิธีที่ง่ายที่สุดคือปิดเทอร์มินัลโดยใช้ปุ่ม Kill the active terminal instance:
คุณสามารถบอกได้ว่าเทอร์มินัลมีสภาพแวดล้อมเสมือนเปิดใช้งานหรือไม่จากชื่อของสภาพแวดล้อมเสมือนที่จะแสดงเป็นคำนำหน้าบนพรอมต์ของเทอร์มินัล ตัวอย่างเช่น อาจเป็น:
(.venv) ➜ nightlight
หากคุณไม่มี
.venv
เป็นคำนำหน้าบนพรอมต์ สภาพแวดล้อมเสมือนจะไม่เปิดใช้งานในเทอร์มินัล -
เปิดเทอร์มินัลใหม่ใน VS Code โดยเลือก Terminal -> New Terminal หรือกด
CTRL+`
เทอร์มินัลใหม่จะโหลดสภาพแวดล้อมเสมือน และคำสั่งเปิดใช้งานนี้จะปรากฏในเทอร์มินัล พรอมต์จะมีชื่อของสภาพแวดล้อมเสมือน (.venv
):➜ nightlight source .venv/bin/activate (.venv) ➜ nightlight
-
เปิดไฟล์
app.py
จากตัวสำรวจของ VS Code และเพิ่มโค้ดต่อไปนี้:print('Hello World!')
ฟังก์ชัน
print
จะพิมพ์สิ่งที่ถูกส่งผ่านไปยังมันลงในคอนโซล -
จากเทอร์มินัลของ VS Code รันคำสั่งต่อไปนี้เพื่อรันแอป Python ของคุณ:
python app.py
ผลลัพธ์ต่อไปนี้จะปรากฏ:
(.venv) ➜ nightlight python app.py Hello World!
😀 โปรแกรม 'Hello World' ของคุณสำเร็จแล้ว!
เชื่อมต่อ 'ฮาร์ดแวร์'
ในขั้นตอน 'Hello World' ที่สอง คุณจะรันแอป CounterFit และเชื่อมต่อโค้ดของคุณกับมัน นี่คือสิ่งที่เทียบเท่ากับการเชื่อมต่อฮาร์ดแวร์ IoT เข้ากับชุดพัฒนา
งาน - เชื่อมต่อ 'ฮาร์ดแวร์'
-
จากเทอร์มินัลของ VS Code เปิดแอป CounterFit ด้วยคำสั่งต่อไปนี้:
counterfit
แอปจะเริ่มทำงานและเปิดในเว็บเบราว์เซอร์ของคุณ:
มันจะแสดงสถานะเป็น Disconnected โดยมีไฟ LED ที่มุมขวาบนปิดอยู่
-
เพิ่มโค้ดต่อไปนี้ที่ด้านบนของ
app.py
: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>
ด้วยพอร์ตที่คุณต้องการใช้ -
คุณจะต้องเปิดเทอร์มินัลใหม่ใน VS Code โดยเลือกปุ่ม Create a new integrated terminal เนื่องจากแอป CounterFit กำลังรันอยู่ในเทอร์มินัลปัจจุบัน
-
ในเทอร์มินัลใหม่นี้ รันไฟล์
app.py
เหมือนเดิม สถานะของ CounterFit จะเปลี่ยนเป็น Connected และไฟ LED จะสว่างขึ้น
💁 คุณสามารถหาโค้ดนี้ได้ในโฟลเดอร์ code/virtual-device
😀 การเชื่อมต่อกับฮาร์ดแวร์ของคุณสำเร็จแล้ว!
ข้อจำกัดความรับผิดชอบ:
เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษา AI Co-op Translator แม้ว่าเราจะพยายามให้การแปลมีความถูกต้องมากที่สุด แต่โปรดทราบว่าการแปลโดยอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาที่เป็นต้นฉบับควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลภาษามืออาชีพ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความผิดที่เกิดจากการใช้การแปลนี้