-
Notifications
You must be signed in to change notification settings - Fork 11
/
JenFoxBotSMSV1c.py
47 lines (40 loc) · 1.41 KB
/
JenFoxBotSMSV1c.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
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()