9.4 KiB
ควบคุมรีเลย์ - Raspberry Pi
ในส่วนนี้ของบทเรียน คุณจะเพิ่มรีเลย์เข้าไปใน Raspberry Pi ของคุณเพิ่มเติมจากเซ็นเซอร์วัดความชื้นในดิน และควบคุมมันตามระดับความชื้นในดิน
ฮาร์ดแวร์
Raspberry Pi ต้องการรีเลย์
รีเลย์ที่คุณจะใช้คือ Grove relay ซึ่งเป็นรีเลย์แบบเปิดปกติ (หมายความว่าวงจรเอาต์พุตจะเปิดหรือถูกตัดการเชื่อมต่อเมื่อไม่มีสัญญาณส่งไปยังรีเลย์) และสามารถรองรับวงจรเอาต์พุตได้สูงสุด 250V และ 10A
นี่คืออุปกรณ์แอคชูเอเตอร์แบบดิจิทัล ดังนั้นจึงเชื่อมต่อกับพินดิจิทัลบน Grove Base Hat
เชื่อมต่อรีเลย์
รีเลย์ Grove สามารถเชื่อมต่อกับ Raspberry Pi ได้
งาน
เชื่อมต่อรีเลย์
-
เสียบปลายด้านหนึ่งของสาย Grove เข้ากับช่องเสียบบนรีเลย์ สายจะเสียบได้เพียงด้านเดียวเท่านั้น
-
เมื่อ Raspberry Pi ปิดอยู่ ให้เชื่อมต่อปลายอีกด้านของสาย Grove เข้ากับช่องเสียบดิจิทัลที่มีเครื่องหมาย D5 บน Grove Base Hat ที่ติดตั้งอยู่กับ Pi ช่องนี้เป็นช่องที่สองจากซ้ายในแถวของช่องเสียบที่อยู่ถัดจากพิน GPIO ปล่อยให้เซ็นเซอร์วัดความชื้นในดินเชื่อมต่ออยู่กับช่อง A0
- เสียบเซ็นเซอร์วัดความชื้นในดินลงในดิน หากยังไม่ได้เสียบจากบทเรียนก่อนหน้า
เขียนโปรแกรมควบคุมรีเลย์
ตอนนี้ Raspberry Pi สามารถเขียนโปรแกรมเพื่อใช้งานรีเลย์ที่เชื่อมต่ออยู่ได้แล้ว
งาน
เขียนโปรแกรมให้กับอุปกรณ์
-
เปิด Raspberry Pi และรอให้บูตเสร็จ
-
เปิดโปรเจกต์
soil-moisture-sensor
จากบทเรียนก่อนหน้าใน VS Code หากยังไม่ได้เปิด คุณจะเพิ่มโค้ดในโปรเจกต์นี้ -
เพิ่มโค้ดต่อไปนี้ในไฟล์
app.py
ใต้ส่วนของการนำเข้าโค้ดที่มีอยู่แล้ว:from grove.grove_relay import GroveRelay
คำสั่งนี้นำเข้า
GroveRelay
จากไลบรารี Python ของ Grove เพื่อใช้งานกับรีเลย์ Grove -
เพิ่มโค้ดต่อไปนี้ใต้การประกาศคลาส
ADC
เพื่อสร้างอินสแตนซ์ของGroveRelay
:relay = GroveRelay(5)
โค้ดนี้สร้างรีเลย์โดยใช้พิน D5 ซึ่งเป็นพินดิจิทัลที่คุณเชื่อมต่อรีเลย์ไว้
-
เพื่อทดสอบว่ารีเลย์ทำงานหรือไม่ ให้เพิ่มโค้ดต่อไปนี้ในลูป
while True:
:relay.on() time.sleep(.5) relay.off()
โค้ดนี้จะเปิดรีเลย์ รอ 0.5 วินาที แล้วปิดรีเลย์
-
รันแอป Python รีเลย์จะเปิดและปิดทุกๆ 10 วินาที โดยมีการหน่วงเวลา 0.5 วินาทีระหว่างการเปิดและปิด คุณจะได้ยินเสียงคลิกของรีเลย์เมื่อเปิดและปิด และไฟ LED บนบอร์ด Grove จะสว่างเมื่อรีเลย์เปิด และดับเมื่อรีเลย์ปิด
ควบคุมรีเลย์จากความชื้นในดิน
เมื่อรีเลย์ทำงานแล้ว คุณสามารถควบคุมมันตามค่าความชื้นในดินได้
งาน
ควบคุมรีเลย์
-
ลบโค้ด 3 บรรทัดที่คุณเพิ่มเพื่อทดสอบรีเลย์ และแทนที่ด้วยโค้ดต่อไปนี้:
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 จะอ่านค่าความชื้นในดินได้ต่ำเมื่อดินมีความชื้นมาก และในทางกลับกัน
-
รันแอป Python คุณจะเห็นรีเลย์เปิดหรือปิดขึ้นอยู่กับค่าความชื้นในดิน ลองในดินแห้ง แล้วเติมน้ำดู
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
😀 โปรแกรมควบคุมรีเลย์ด้วยเซ็นเซอร์วัดความชื้นในดินของคุณสำเร็จแล้ว!
ข้อจำกัดความรับผิดชอบ:
เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษา AI Co-op Translator แม้ว่าเราจะพยายามให้การแปลมีความถูกต้องมากที่สุด แต่โปรดทราบว่าการแปลโดยอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาดั้งเดิมควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลภาษามืออาชีพ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความที่ผิดพลาดซึ่งเกิดจากการใช้การแปลนี้