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/2-farm/lessons/3-automated-plant-watering/pi-relay.md

114 lines
9.1 KiB

# ควบคุมรีเลย์ - Raspberry Pi
ในส่วนนี้ของบทเรียน คุณจะเพิ่มรีเลย์เข้าไปใน Raspberry Pi ของคุณเพิ่มเติมจากเซ็นเซอร์วัดความชื้นในดิน และควบคุมมันตามระดับความชื้นในดิน
## ฮาร์ดแวร์
Raspberry Pi ต้องการรีเลย์
รีเลย์ที่คุณจะใช้คือ [Grove relay](https://www.seeedstudio.com/Grove-Relay.html) ซึ่งเป็นรีเลย์แบบเปิดปกติ (หมายความว่าวงจรเอาต์พุตจะเปิดหรือถูกตัดการเชื่อมต่อเมื่อไม่มีสัญญาณส่งไปยังรีเลย์) และสามารถรองรับวงจรเอาต์พุตได้สูงสุด 250V และ 10A
นี่คืออุปกรณ์แอคชูเอเตอร์แบบดิจิทัล ดังนั้นจึงเชื่อมต่อกับพินดิจิทัลบน Grove Base Hat
### เชื่อมต่อรีเลย์
รีเลย์ Grove สามารถเชื่อมต่อกับ Raspberry Pi ได้
#### งาน
เชื่อมต่อรีเลย์
![รีเลย์ Grove](../../../../../translated_images/th/grove-relay.d426958ca210fbd0.webp)
1. เสียบปลายด้านหนึ่งของสาย Grove เข้ากับช่องเสียบบนรีเลย์ สายจะเสียบได้เพียงด้านเดียวเท่านั้น
1. เมื่อ Raspberry Pi ปิดอยู่ ให้เชื่อมต่อปลายอีกด้านของสาย Grove เข้ากับช่องเสียบดิจิทัลที่มีเครื่องหมาย **D5** บน Grove Base Hat ที่ติดตั้งอยู่กับ Pi ช่องนี้เป็นช่องที่สองจากซ้ายในแถวของช่องเสียบที่อยู่ถัดจากพิน GPIO ปล่อยให้เซ็นเซอร์วัดความชื้นในดินเชื่อมต่ออยู่กับช่อง **A0**
![รีเลย์ Grove เชื่อมต่อกับช่อง D5 และเซ็นเซอร์วัดความชื้นในดินเชื่อมต่อกับช่อง A0](../../../../../translated_images/th/pi-relay-and-soil-moisture-sensor.02f3198975b8c53e.webp)
1. เสียบเซ็นเซอร์วัดความชื้นในดินลงในดิน หากยังไม่ได้เสียบจากบทเรียนก่อนหน้า
## เขียนโปรแกรมควบคุมรีเลย์
ตอนนี้ Raspberry Pi สามารถเขียนโปรแกรมเพื่อใช้งานรีเลย์ที่เชื่อมต่ออยู่ได้แล้ว
### งาน
เขียนโปรแกรมให้กับอุปกรณ์
1. เปิด Raspberry Pi และรอให้บูตเสร็จ
1. เปิดโปรเจกต์ `soil-moisture-sensor` จากบทเรียนก่อนหน้าใน VS Code หากยังไม่ได้เปิด คุณจะเพิ่มโค้ดในโปรเจกต์นี้
1. เพิ่มโค้ดต่อไปนี้ในไฟล์ `app.py` ใต้ส่วนของการนำเข้าโค้ดที่มีอยู่แล้ว:
```python
from grove.grove_relay import GroveRelay
```
คำสั่งนี้นำเข้า `GroveRelay` จากไลบรารี Python ของ Grove เพื่อใช้งานกับรีเลย์ Grove
1. เพิ่มโค้ดต่อไปนี้ใต้การประกาศคลาส `ADC` เพื่อสร้างอินสแตนซ์ของ `GroveRelay`:
```python
relay = GroveRelay(5)
```
โค้ดนี้สร้างรีเลย์โดยใช้พิน **D5** ซึ่งเป็นพินดิจิทัลที่คุณเชื่อมต่อรีเลย์ไว้
1. เพื่อทดสอบว่ารีเลย์ทำงานหรือไม่ ให้เพิ่มโค้ดต่อไปนี้ในลูป `while True:`:
```python
relay.on()
time.sleep(.5)
relay.off()
```
โค้ดนี้จะเปิดรีเลย์ รอ 0.5 วินาที แล้วปิดรีเลย์
1. รันแอป Python รีเลย์จะเปิดและปิดทุกๆ 10 วินาที โดยมีการหน่วงเวลา 0.5 วินาทีระหว่างการเปิดและปิด คุณจะได้ยินเสียงคลิกของรีเลย์เมื่อเปิดและปิด และไฟ LED บนบอร์ด Grove จะสว่างเมื่อรีเลย์เปิด และดับเมื่อรีเลย์ปิด
![รีเลย์เปิดและปิด](../../../../../images/relay-turn-on-off.gif)
## ควบคุมรีเลย์จากความชื้นในดิน
เมื่อรีเลย์ทำงานแล้ว คุณสามารถควบคุมมันตามค่าความชื้นในดินได้
### งาน
ควบคุมรีเลย์
1. ลบโค้ด 3 บรรทัดที่คุณเพิ่มเพื่อทดสอบรีเลย์ และแทนที่ด้วยโค้ดต่อไปนี้:
```python
if soil_moisture > 450:
print("Soil Moisture is too low, turning relay on.")
relay.on()
else:
print("Soil Moisture is ok, turning relay off.")
relay.off()
```
โค้ดนี้ตรวจสอบค่าความชื้นในดินจากเซ็นเซอร์วัดความชื้นในดิน หากค่ามากกว่า 450 จะเปิดรีเลย์ และปิดรีเลย์เมื่อค่าต่ำกว่า 450
> 💁 จำไว้ว่าค่าเซ็นเซอร์วัดความชื้นในดินแบบ capacitive จะอ่านค่าความชื้นในดินได้ต่ำเมื่อดินมีความชื้นมาก และในทางกลับกัน
1. รันแอป Python คุณจะเห็นรีเลย์เปิดหรือปิดขึ้นอยู่กับค่าความชื้นในดิน ลองในดินแห้ง แล้วเติมน้ำดู
```output
Soil Moisture: 638
Soil Moisture is too low, turning relay on.
Soil Moisture: 452
Soil Moisture is too low, turning relay on.
Soil Moisture: 347
Soil Moisture is ok, turning relay off.
```
> 💁 คุณสามารถหาโค้ดนี้ได้ในโฟลเดอร์ [code-relay/pi](../../../../../2-farm/lessons/3-automated-plant-watering/code-relay/pi)
😀 โปรแกรมควบคุมรีเลย์ด้วยเซ็นเซอร์วัดความชื้นในดินของคุณสำเร็จแล้ว!
---
**ข้อจำกัดความรับผิดชอบ**:
เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษา AI [Co-op Translator](https://github.com/Azure/co-op-translator) แม้ว่าเราจะพยายามให้การแปลมีความถูกต้องมากที่สุด แต่โปรดทราบว่าการแปลโดยอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาดั้งเดิมควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลภาษามืออาชีพ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความที่ผิดพลาดซึ่งเกิดจากการใช้การแปลนี้