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.
123 lines
10 KiB
123 lines
10 KiB
<!--
|
|
CO_OP_TRANSLATOR_METADATA:
|
|
{
|
|
"original_hash": "2bf65f162bcebd35fbcba5fd245afac4",
|
|
"translation_date": "2025-08-27T21:45:38+00:00",
|
|
"source_file": "2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md",
|
|
"language_code": "th"
|
|
}
|
|
-->
|
|
# วัดความชื้นในดิน - ฮาร์ดแวร์ IoT เสมือน
|
|
|
|
ในส่วนนี้ของบทเรียน คุณจะเพิ่มเซ็นเซอร์วัดความชื้นในดินแบบ capacitive ลงในอุปกรณ์ IoT เสมือน และอ่านค่าจากเซ็นเซอร์นี้
|
|
|
|
## ฮาร์ดแวร์เสมือน
|
|
|
|
อุปกรณ์ IoT เสมือนจะใช้เซ็นเซอร์วัดความชื้นในดินแบบ capacitive ของ Grove ที่จำลองขึ้นมา ซึ่งทำให้การทดลองนี้เหมือนกับการใช้งาน Raspberry Pi กับเซ็นเซอร์วัดความชื้นในดินแบบ capacitive จริง
|
|
|
|
ในอุปกรณ์ IoT จริง เซ็นเซอร์วัดความชื้นในดินจะเป็นเซ็นเซอร์แบบ capacitive ที่วัดความชื้นในดินโดยการตรวจจับค่าความจุไฟฟ้าของดิน ซึ่งเป็นคุณสมบัติที่เปลี่ยนแปลงไปตามความชื้นในดิน เมื่อความชื้นในดินเพิ่มขึ้น แรงดันไฟฟ้าจะลดลง
|
|
|
|
นี่คือเซ็นเซอร์แบบอนาล็อก ซึ่งใช้ ADC แบบ 10 บิตจำลองเพื่อรายงานค่าตั้งแต่ 1-1,023
|
|
|
|
### เพิ่มเซ็นเซอร์วัดความชื้นในดินลงใน CounterFit
|
|
|
|
เพื่อใช้เซ็นเซอร์วัดความชื้นในดินเสมือน คุณต้องเพิ่มเซ็นเซอร์นี้ลงในแอป CounterFit
|
|
|
|
#### งาน - เพิ่มเซ็นเซอร์วัดความชื้นในดินลงใน CounterFit
|
|
|
|
เพิ่มเซ็นเซอร์วัดความชื้นในดินลงในแอป CounterFit
|
|
|
|
1. สร้างแอป Python ใหม่บนคอมพิวเตอร์ของคุณในโฟลเดอร์ชื่อ `soil-moisture-sensor` โดยมีไฟล์เดียวชื่อ `app.py` และสร้างสภาพแวดล้อมเสมือนของ Python พร้อมทั้งเพิ่มแพ็กเกจ pip ของ CounterFit
|
|
|
|
> ⚠️ คุณสามารถดู [คำแนะนำในการสร้างและตั้งค่าโปรเจกต์ Python ของ CounterFit ในบทเรียนที่ 1 ได้หากจำเป็น](../../../1-getting-started/lessons/1-introduction-to-iot/virtual-device.md)
|
|
|
|
1. ตรวจสอบให้แน่ใจว่าแอปเว็บ CounterFit กำลังทำงานอยู่
|
|
|
|
1. สร้างเซ็นเซอร์วัดความชื้นในดิน:
|
|
|
|
1. ในกล่อง *Create sensor* ในแถบ *Sensors* ให้เลือกประเภทเซ็นเซอร์จากเมนูแบบเลื่อนลง และเลือก *Soil Moisture*
|
|
|
|
1. ปล่อยให้ *Units* ตั้งค่าเป็น *NoUnits*
|
|
|
|
1. ตรวจสอบให้แน่ใจว่า *Pin* ตั้งค่าเป็น *0*
|
|
|
|
1. กดปุ่ม **Add** เพื่อสร้างเซ็นเซอร์ *Soil Moisture* บน Pin 0
|
|
|
|

|
|
|
|
เซ็นเซอร์วัดความชื้นในดินจะถูกสร้างขึ้นและปรากฏในรายการเซ็นเซอร์
|
|
|
|

|
|
|
|
## เขียนโปรแกรมสำหรับแอปเซ็นเซอร์วัดความชื้นในดิน
|
|
|
|
ตอนนี้คุณสามารถเขียนโปรแกรมสำหรับแอปเซ็นเซอร์วัดความชื้นในดินโดยใช้เซ็นเซอร์ของ CounterFit ได้แล้ว
|
|
|
|
### งาน - เขียนโปรแกรมสำหรับแอปเซ็นเซอร์วัดความชื้นในดิน
|
|
|
|
เขียนโปรแกรมสำหรับแอปเซ็นเซอร์วัดความชื้นในดิน
|
|
|
|
1. ตรวจสอบให้แน่ใจว่าแอป `soil-moisture-sensor` เปิดอยู่ใน VS Code
|
|
|
|
1. เปิดไฟล์ `app.py`
|
|
|
|
1. เพิ่มโค้ดต่อไปนี้ที่ด้านบนของ `app.py` เพื่อเชื่อมต่อแอปกับ CounterFit:
|
|
|
|
```python
|
|
from counterfit_connection import CounterFitConnection
|
|
CounterFitConnection.init('127.0.0.1', 5000)
|
|
```
|
|
|
|
1. เพิ่มโค้ดต่อไปนี้ในไฟล์ `app.py` เพื่อเรียกใช้ไลบรารีที่จำเป็น:
|
|
|
|
```python
|
|
import time
|
|
from counterfit_shims_grove.adc import ADC
|
|
```
|
|
|
|
คำสั่ง `import time` ใช้ในการนำเข้าโมดูล `time` ซึ่งจะถูกใช้งานในภายหลังในงานนี้
|
|
|
|
คำสั่ง `from counterfit_shims_grove.adc import ADC` ใช้ในการนำเข้า `ADC` class เพื่อโต้ตอบกับตัวแปลงอนาล็อกเป็นดิจิทัลเสมือนที่สามารถเชื่อมต่อกับเซ็นเซอร์ของ CounterFit
|
|
|
|
1. เพิ่มโค้ดต่อไปนี้ด้านล่างเพื่อสร้างอินสแตนซ์ของ `ADC` class:
|
|
|
|
```python
|
|
adc = ADC()
|
|
```
|
|
|
|
1. เพิ่มลูปแบบไม่มีที่สิ้นสุดที่อ่านค่าจาก ADC บน pin 0 และเขียนผลลัพธ์ลงในคอนโซล ลูปนี้จะหยุดพัก 10 วินาทีระหว่างการอ่านแต่ละครั้ง
|
|
|
|
```python
|
|
while True:
|
|
soil_moisture = adc.read(0)
|
|
print("Soil moisture:", soil_moisture)
|
|
|
|
time.sleep(10)
|
|
```
|
|
|
|
1. จากแอป CounterFit เปลี่ยนค่าของเซ็นเซอร์วัดความชื้นในดินที่แอปจะอ่านค่า คุณสามารถทำได้สองวิธี:
|
|
|
|
* ใส่ตัวเลขในกล่อง *Value* สำหรับเซ็นเซอร์วัดความชื้นในดิน จากนั้นกดปุ่ม **Set** ตัวเลขที่คุณใส่จะเป็นค่าที่เซ็นเซอร์ส่งกลับมา
|
|
|
|
* เลือกช่อง *Random* และใส่ค่า *Min* และ *Max* จากนั้นกดปุ่ม **Set** ทุกครั้งที่เซ็นเซอร์อ่านค่า จะอ่านตัวเลขสุ่มระหว่าง *Min* และ *Max*
|
|
|
|
1. รันแอป Python คุณจะเห็นค่าการวัดความชื้นในดินแสดงในคอนโซล เปลี่ยนค่า *Value* หรือการตั้งค่า *Random* เพื่อดูค่าที่เปลี่ยนแปลง
|
|
|
|
```output
|
|
(.venv) ➜ soil-moisture-sensor $ python app.py
|
|
Soil moisture: 615
|
|
Soil moisture: 612
|
|
Soil moisture: 498
|
|
Soil moisture: 493
|
|
Soil moisture: 490
|
|
Soil Moisture: 388
|
|
```
|
|
|
|
> 💁 คุณสามารถดูโค้ดนี้ได้ในโฟลเดอร์ [code/virtual-device](../../../../../2-farm/lessons/2-detect-soil-moisture/code/virtual-device)
|
|
|
|
😀 โปรแกรมเซ็นเซอร์วัดความชื้นในดินของคุณสำเร็จแล้ว!
|
|
|
|
---
|
|
|
|
**ข้อจำกัดความรับผิดชอบ**:
|
|
เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษา AI [Co-op Translator](https://github.com/Azure/co-op-translator) แม้ว่าเราจะพยายามให้การแปลมีความถูกต้องมากที่สุด แต่โปรดทราบว่าการแปลโดยอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาดั้งเดิมควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลภาษามืออาชีพ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความที่ผิดพลาดซึ่งเกิดจากการใช้การแปลนี้ |