9.5 KiB
วัดความชื้นในดิน - Raspberry Pi
ในส่วนนี้ของบทเรียน คุณจะเพิ่มเซ็นเซอร์วัดความชื้นในดินแบบ capacitive เข้ากับ Raspberry Pi และอ่านค่าจากเซ็นเซอร์นี้
ฮาร์ดแวร์
Raspberry Pi ต้องการเซ็นเซอร์วัดความชื้นในดินแบบ capacitive
เซ็นเซอร์ที่คุณจะใช้คือ Capacitive Soil Moisture Sensor ซึ่งวัดความชื้นในดินโดยการตรวจจับค่าความจุไฟฟ้าของดิน ซึ่งเป็นคุณสมบัติที่เปลี่ยนแปลงไปตามความชื้นในดิน เมื่อความชื้นในดินเพิ่มขึ้น แรงดันไฟฟ้าจะลดลง
นี่คือเซ็นเซอร์แบบอนาล็อก ดังนั้นจึงใช้ขาอนาล็อกและตัวแปลง ADC แบบ 10 บิตใน Grove Base Hat บน Raspberry Pi เพื่อแปลงแรงดันไฟฟ้าเป็นสัญญาณดิจิทัลที่มีค่าอยู่ในช่วง 1-1,023 จากนั้นส่งผ่าน GPIO pins บน Pi
เชื่อมต่อเซ็นเซอร์วัดความชื้นในดิน
เซ็นเซอร์วัดความชื้นในดินแบบ Grove สามารถเชื่อมต่อกับ Raspberry Pi ได้
งาน - เชื่อมต่อเซ็นเซอร์วัดความชื้นในดิน
เชื่อมต่อเซ็นเซอร์วัดความชื้นในดิน
-
เสียบปลายด้านหนึ่งของสาย Grove เข้ากับช่องเสียบบนเซ็นเซอร์วัดความชื้นในดิน สายจะเสียบได้เพียงด้านเดียวเท่านั้น
-
ปิดการจ่ายไฟให้ Raspberry Pi แล้วเชื่อมต่อปลายอีกด้านของสาย Grove เข้ากับช่องอนาล็อกที่มีเครื่องหมาย A0 บน Grove Base Hat ที่ติดตั้งอยู่บน Pi ช่องนี้เป็นช่องที่สองจากขวาในแถวของช่องเสียบที่อยู่ติดกับ GPIO pins
- เสียบเซ็นเซอร์วัดความชื้นในดินลงในดิน โดยมีเส้นสีขาวที่เรียกว่า 'highest position line' เป็นตัวกำหนดระดับสูงสุด เสียบเซ็นเซอร์จนถึงเส้นนี้แต่ไม่เกินเส้นนี้
เขียนโปรแกรมสำหรับเซ็นเซอร์วัดความชื้นในดิน
ตอนนี้ Raspberry Pi สามารถเขียนโปรแกรมเพื่อใช้งานเซ็นเซอร์วัดความชื้นในดินที่เชื่อมต่ออยู่ได้แล้ว
งาน - เขียนโปรแกรมสำหรับเซ็นเซอร์วัดความชื้นในดิน
เขียนโปรแกรมสำหรับอุปกรณ์
-
เปิด Raspberry Pi และรอจนกว่าจะบูตเสร็จ
-
เปิด VS Code โดยตรงบน Pi หรือเชื่อมต่อผ่าน Remote SSH extension
⚠️ คุณสามารถดู คำแนะนำในการตั้งค่าและเปิด VS Code ใน nightlight - บทเรียนที่ 1 หากจำเป็น
-
จาก terminal สร้างโฟลเดอร์ใหม่ในไดเรกทอรี home ของผู้ใช้
pi
ชื่อsoil-moisture-sensor
และสร้างไฟล์ในโฟลเดอร์นี้ชื่อapp.py
-
เปิดโฟลเดอร์นี้ใน VS Code
-
เพิ่มโค้ดต่อไปนี้ในไฟล์
app.py
เพื่อ import ไลบรารีที่จำเป็น:import time from grove.adc import ADC
คำสั่ง
import time
ใช้สำหรับ import โมดูลtime
ซึ่งจะถูกใช้งานในภายหลังในงานนี้คำสั่ง
from grove.adc import ADC
ใช้สำหรับ importADC
จากไลบรารี Python ของ Grove ไลบรารีนี้มีโค้ดสำหรับโต้ตอบกับตัวแปลงอนาล็อกเป็นดิจิทัล (ADC) บน Pi Base Hat และอ่านแรงดันไฟฟ้าจากเซ็นเซอร์อนาล็อก -
เพิ่มโค้ดต่อไปนี้ด้านล่างเพื่อสร้างอินสแตนซ์ของคลาส
ADC
:adc = ADC()
-
เพิ่มลูปแบบไม่สิ้นสุดที่อ่านค่าจาก ADC บนขา A0 และเขียนผลลัพธ์ไปยังคอนโซล ลูปนี้จะหยุดพัก 10 วินาทีระหว่างการอ่านแต่ละครั้ง
while True: soil_moisture = adc.read(0) print("Soil moisture:", soil_moisture) time.sleep(10)
-
รันแอปพลิเคชัน Python คุณจะเห็นค่าความชื้นในดินแสดงบนคอนโซล เติมน้ำลงในดินหรือดึงเซ็นเซอร์ออกจากดิน แล้วสังเกตค่าที่เปลี่ยนแปลง
pi@raspberrypi:~/soil-moisture-sensor $ python3 app.py Soil moisture: 615 Soil moisture: 612 Soil moisture: 498 Soil moisture: 493 Soil moisture: 490 Soil Moisture: 388
ในตัวอย่างผลลัพธ์ด้านบน คุณจะเห็นแรงดันไฟฟ้าลดลงเมื่อเติมน้ำ
💁 คุณสามารถค้นหาโค้ดนี้ได้ในโฟลเดอร์ code/pi
😀 โปรแกรมเซ็นเซอร์วัดความชื้นในดินของคุณสำเร็จแล้ว!
ข้อจำกัดความรับผิดชอบ:
เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษา AI Co-op Translator แม้ว่าเราจะพยายามให้การแปลมีความถูกต้อง แต่โปรดทราบว่าการแปลอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาดั้งเดิมควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลภาษามืออาชีพ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความผิดที่เกิดจากการใช้การแปลนี้