ใช้เซ็นเซอร์ความชื้นในดินกับ Raspberry Pi

Using a Soil Moisture Sensor with the Raspberry Pi

อัน เซ็นเซอร์ความชื้นในดิน ช่วยให้ราสเบอร์รี่ Pi ตรวจสอบความชื้นในดินทำให้เหมาะอย่างยิ่งสำหรับ การทำสวนอัจฉริยะระบบชลประทานและการตรวจสอบด้านสิ่งแวดล้อม- คู่มือนี้จะนำคุณผ่านการตั้งค่าและใช้เซ็นเซอร์ความชื้นในดินกับ Raspberry Pi


สิ่งที่คุณต้องการ

  1. Raspberry Pi (รุ่นใด ๆ ที่มีการสนับสนุน GPIO เช่น PI 3, PI 4)
  2. เซ็นเซอร์ความชื้นในดิน (เอาต์พุตแบบอะนาล็อกหรือดิจิตอล)
  3. โมดูล ADC (เช่น ADS1115) สำหรับเซ็นเซอร์อะนาล็อก (ถ้าจำเป็น)
  4. เครื่องหั่นขนมปังและสายจัมเปอร์
  5. ติดตั้ง Python บนราสเบอร์รี่ pi

ขั้นตอนที่ 1: ทำความเข้าใจกับเซ็นเซอร์ความชื้นในดิน

เซ็นเซอร์ความชื้นในดินมีสองประเภท:

  • เซ็นเซอร์เอาต์พุตดิจิตอล (เช่นเซ็นเซอร์ความชื้นในดินแบบ capacitive) - จัดเตรียมก สูง/ต่ำ สัญญาณเมื่อความชื้นข้ามเกณฑ์
  • เซ็นเซอร์เอาต์พุตแบบอะนาล็อก - จัดหาแรงดันไฟฟ้าผันแปรตามความชื้นของดินซึ่งต้องการ ADC (ตัวแปลงแบบอะนาล็อกเป็นดิจิตอล) เช่น ADS1115

ขั้นตอนที่ 2: เดินสายเซ็นเซอร์ไปยัง Raspberry Pi

สำหรับเซ็นเซอร์ความชื้นในดินดิจิตอล

พินเซ็นเซอร์ Raspberry Pi Pin
VCC 3.3V หรือ 5V (พิน 1 หรือ 2)
gnd พื้นดิน (พิน 6)
D0 (ดิจิตอล) GPIO ใด ๆ (เช่น GPIO17, PIN 11)

สำหรับเซ็นเซอร์เอาต์พุตแบบอะนาล็อก (พร้อม ADS1115)

พินเซ็นเซอร์ ADS1115 พิน Raspberry Pi Pin
VCC VCC 3.3V หรือ 5V (พิน 1 หรือ 2)
gnd gnd พื้นดิน (พิน 6)
A0 (อะนาล็อก) A0 I2C (ผ่าน ADS1115)

ขั้นตอนที่ 3: เปิดใช้งาน I2C บน Raspberry Pi

เนื่องจากเซ็นเซอร์บางตัวใช้ I2C (โมดูล ADS1115)เปิดใช้งาน:

  1. เปิดเครื่องมือกำหนดค่า Raspberry Pi:
    sudo raspi-config
    
  2. นำทางไปยัง ตัวเลือกอินเตอร์เฟส> i2c และเปิดใช้งาน
  3. รีบูตราสเบอร์รี่ pi:
    sudo reboot
    

ขั้นตอนที่ 4: ติดตั้งไลบรารีที่ต้องการ

  1. อัปเดต Raspberry Pi ของคุณ:
    sudo apt update && sudo apt upgrade -y
    
  2. ติดตั้งไลบรารี GPIO และ I2C:
    sudo apt install -y python3-rpi.gpio python3-smbus python3-pip
    pip3 install adafruit-circuitpython-ads1x15
    

ขั้นตอนที่ 5: รหัส Python เพื่ออ่านระดับความชื้น

สำหรับเซ็นเซอร์ดิจิตอล

import RPi.GPIO as GPIO
import time

SENSOR_PIN = 17  # GPIO Pin connected to D0
GPIO.setmode(GPIO.BCM)
GPIO.setup(SENSOR_PIN, GPIO.IN)

try:
    while True:
        if GPIO.input(SENSOR_PIN):
            print("Soil is Dry!")
        else:
            print("Soil is Moist!")
        time.sleep(2)
except KeyboardInterrupt:
    print("Exiting...")
finally:
    GPIO.cleanup()

สำหรับเซ็นเซอร์อะนาล็อก (โดยใช้ ADS1115)

import time
import board
import busio
import adafruit_ads1x15.ads1115 as ADS
from adafruit_ads1x15.analog_in import AnalogIn

# Initialize I2C and ADS1115 ADC
i2c = busio.I2C(board.SCL, board.SDA)
ads = ADS.ADS1115(i2c)
moisture_sensor = AnalogIn(ads, ADS.P0)  # A0 on ADS1115

try:
    while True:
        moisture_level = moisture_sensor.value
        print(f"Soil Moisture Level: {moisture_level}")
        time.sleep(2)
except KeyboardInterrupt:
    print("Exiting...")

ขั้นตอนที่ 6: การประยุกต์ใช้เซ็นเซอร์ความชื้นในดิน

  1. การชลประทานอย่างชาญฉลาด - พืชน้ำโดยอัตโนมัติเมื่อดินแห้ง
  2. สถานีอากาศ - ตรวจสอบสภาพดินจากระยะไกล
  3. ระบบเรือนกระจกอัตโนมัติ - เพิ่มประสิทธิภาพการเจริญเติบโตของพืชตามระดับความชื้น
  4. โครงการ IoT - ส่งข้อมูลไปยังแพลตฟอร์มคลาวด์สำหรับการตรวจสอบระยะไกล

การแก้ไขปัญหา

  1. เซ็นเซอร์ไม่ตรวจจับความชื้น

    • ตรวจสอบสายไฟและตรวจสอบให้แน่ใจว่าแรงดันไฟฟ้าที่ถูกต้อง
    • สำหรับเซ็นเซอร์อะนาล็อกให้แน่ใจว่าไฟล์ ตรวจพบโมดูล ADS1115 อย่างถูกต้อง โดยใช้:
      sudo i2cdetect -y 1
      
  2. การอ่านที่ไม่แน่นอน

    • หลีกเลี่ยงการวางเซ็นเซอร์ในมากเกินไป สภาพแวดล้อมที่เปียกชื้น เพื่อป้องกันการกัดกร่อน
    • สำหรับเซ็นเซอร์ capacitive ให้แน่ใจ ทำความสะอาดพื้นผิวโพรบ สำหรับการอ่านที่ถูกต้อง

บทสรุป

เซ็นเซอร์ความชื้นในดินช่วยให้โครงการ Raspberry Pi ได้ ตรวจสอบและทำให้เกิดการรดน้ำพืชโดยอัตโนมัติทำให้พวกเขาเหมาะสำหรับ แอปพลิเคชั่นสวนอัจฉริยะและ IoT- โดยทำตามคำแนะนำนี้คุณสามารถ อ่านระดับความชื้นในดินและกระตุ้นการกระทำโดยอัตโนมัติ ขึ้นอยู่กับข้อมูลเรียลไทม์! 🌱🚀

แสดงความคิดเห็น

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.