9.0 KiB
ควบคุมรีเลย์ - ฮาร์ดแวร์ IoT เสมือน
ในส่วนนี้ของบทเรียน คุณจะเพิ่มรีเลย์เข้าไปในอุปกรณ์ IoT เสมือนของคุณ นอกเหนือจากเซ็นเซอร์วัดความชื้นในดิน และควบคุมมันตามระดับความชื้นในดิน
ฮาร์ดแวร์เสมือน
อุปกรณ์ IoT เสมือนจะใช้รีเลย์ Grove จำลอง ซึ่งทำให้การทดลองนี้เหมือนกับการใช้ Raspberry Pi กับรีเลย์ Grove จริง
ในอุปกรณ์ IoT จริง รีเลย์จะเป็นรีเลย์แบบเปิดปกติ (หมายความว่าวงจรเอาต์พุตจะเปิดหรือถูกตัดการเชื่อมต่อเมื่อไม่มีสัญญาณส่งไปยังรีเลย์) รีเลย์แบบนี้สามารถจัดการวงจรเอาต์พุตได้สูงสุด 250V และ 10A
เพิ่มรีเลย์ใน CounterFit
เพื่อใช้รีเลย์เสมือน คุณต้องเพิ่มมันในแอป CounterFit
งาน
เพิ่มรีเลย์ในแอป CounterFit
-
เปิดโปรเจกต์
soil-moisture-sensor
จากบทเรียนที่แล้วใน VS Code หากยังไม่ได้เปิด คุณจะเพิ่มลงในโปรเจกต์นี้ -
ตรวจสอบให้แน่ใจว่าแอปเว็บ CounterFit กำลังทำงานอยู่
-
สร้างรีเลย์:
-
ในกล่อง Create actuator ในแถบ Actuators คลิกที่กล่อง Actuator type และเลือก Relay
-
ตั้งค่า Pin เป็น 5
-
คลิกปุ่ม Add เพื่อสร้างรีเลย์บน Pin 5
รีเลย์จะถูกสร้างและปรากฏในรายการ actuators
-
เขียนโปรแกรมควบคุมรีเลย์
แอปเซ็นเซอร์วัดความชื้นในดินสามารถเขียนโปรแกรมเพื่อใช้รีเลย์เสมือนได้แล้ว
งาน
เขียนโปรแกรมอุปกรณ์เสมือน
-
เปิดโปรเจกต์
soil-moisture-sensor
จากบทเรียนที่แล้วใน VS Code หากยังไม่ได้เปิด คุณจะเพิ่มลงในโปรเจกต์นี้ -
เพิ่มโค้ดต่อไปนี้ในไฟล์
app.py
ใต้ส่วน imports ที่มีอยู่:from counterfit_shims_grove.grove_relay import GroveRelay
คำสั่งนี้นำเข้า
GroveRelay
จากไลบรารี Grove Python shim เพื่อโต้ตอบกับรีเลย์ Grove เสมือน -
เพิ่มโค้ดต่อไปนี้ใต้การประกาศคลาส
ADC
เพื่อสร้างอินสแตนซ์GroveRelay
:relay = GroveRelay(5)
โค้ดนี้สร้างรีเลย์โดยใช้ Pin 5 ซึ่งเป็นพินที่คุณเชื่อมต่อรีเลย์
-
เพื่อทดสอบว่ารีเลย์ทำงานหรือไม่ ให้เพิ่มโค้ดต่อไปนี้ในลูป
while True:
:relay.on() time.sleep(.5) relay.off()
โค้ดนี้เปิดรีเลย์ รอ 0.5 วินาที จากนั้นปิดรีเลย์
-
รันแอป Python รีเลย์จะเปิดและปิดทุกๆ 10 วินาที โดยมีการหน่วงเวลา 0.5 วินาทีระหว่างการเปิดและปิด คุณจะเห็นรีเลย์เสมือนในแอป CounterFit ปิดและเปิดตามการทำงานของรีเลย์
ควบคุมรีเลย์จากความชื้นในดิน
ตอนนี้รีเลย์ทำงานแล้ว มันสามารถควบคุมได้ตามการอ่านค่าความชื้นในดิน
งาน
ควบคุมรีเลย์
-
ลบโค้ด 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 คุณจะเห็นรีเลย์เปิดหรือปิดตามระดับความชื้นในดิน เปลี่ยน Value หรือการตั้งค่า Random สำหรับเซ็นเซอร์วัดความชื้นในดินเพื่อดูค่าที่เปลี่ยนแปลง
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/virtual-device
😀 โปรแกรมเซ็นเซอร์วัดความชื้นในดินเสมือนที่ควบคุมรีเลย์ของคุณสำเร็จแล้ว!
ข้อจำกัดความรับผิดชอบ:
เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษา AI Co-op Translator แม้ว่าเราจะพยายามให้การแปลมีความถูกต้อง แต่โปรดทราบว่าการแปลโดยอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาดั้งเดิมควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลภาษามืออาชีพ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความผิดที่เกิดจากการใช้การแปลนี้