土壤濕度感測器

土壤濕度感測器(Moisture-Sensor)是一個簡易的水份感測器,可用於檢測土壤的水份,當土壤缺水時,感測器輸出的模擬值將減小,反之將增大。使用這個感測器製作一款自動澆花裝置,當您長時間不在家或過了澆水的時間,它可以感測到您的植物是否已經渴了。防止植物枯萎了才知道是缺水造成的。

完整程式碼:

import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)

file = open("SensorData.txt", "w") #stores data file in same directory as this program file

#Define function to measure charge time
def RC_Analog(Pin):
    counter=0
    start_time = time.time()
    #Discharge capacitor
    GPIO.setup(14, GPIO.OUT)
    GPIO.output(14, GPIO.LOW)
    time.sleep(0.1) #in seconds, suspends execution.
    GPIO.setup(14, GPIO.IN)
#Count loops until voltage across capacitor reads high on GPIO
    while (GPIO.input(14)==GPIO.LOW):
        counter=counter+1
    end_time = time.time()
    return end_time - start_time


    #Main program loop
while True:
    time.sleep(1)
    ts = time.time()
    reading = RC_Analog(4) #store counts in a variable
    counter = 0
    time_start = 0
    time_end = 0

    print ts, reading  #print counts using GPIO4 and time
    file.write(str(ts) + " " + str(reading) + "\n") #write data to file

    while (reading < 10.00):
        time_start = time.time()
        counter = counter + 1
        if counter >= 50:
            break
    time_end = time.time()
    if (counter >= 25 and (time_end - time_start) <= 60): # if you get 25 measurements that indicate dry soil in less than one minute, need to water
        print('Not enough water for your plants to survive! Please water now.') #comment this out for testing
#    else:
 #     print('Your plants are safe and healthy, yay!')

GPIO.cleanup()
file.close()

results matching ""

    No results matching ""