Process the raw values and handle percentages

master
Elis Hirwing 2019-05-14 13:15:21 +02:00
parent ae1a444600
commit cbfd064552
Signed by: etu
GPG Key ID: D57EFA625C9A925F
1 changed files with 30 additions and 18 deletions

View File

@ -16,26 +16,38 @@ class CSMS12:
self.Interval = (self.AirValue - self.WaterValue) / 3
# Just a wrapper to read the value
def getValue(self):
def getRawValue(self):
return self.Adc.read()
# Do the varying scale of the moisture for Capacinance readers
def getScaledValue(self):
scaledValue = 0
rawValue = self.getRawValue()
# Calculate percentage within the calibrated range
scaledValue = (
((self.WaterValue - rawValue) * 100) / (self.WaterValue - self.AirValue)
)
# Make sure that we don't go out of range
if scaledValue < 0:
scaledValue = 0
if scaledValue > 100:
scaledValue = 100
# Convert so 0% is completely dry and 100% is completely wet.
return 100 - scaledValue
# Get current interval of how wet the sensor is
def getInterval(self):
value = self.getValue()
value = self.getScaledValue()
if self.WaterValue <= value <= (self.WaterValue + self.Interval):
return("Very Wet (Value: %s, Water: %s, Air: %s)" % (
value, self.WaterValue, self.AirValue
))
elif (self.WaterValue + self.Interval) <= value <= (self.AirValue - self.Interval):
return("Wet (Value: %s, Water: %s, Air: %s)" % (
value, self.WaterValue, self.AirValue
))
elif (self.AirValue - self.Interval) <= value <= self.AirValue:
return("Dry (Value: %s, Water: %s, Air: %s)" % (
value, self.WaterValue, self.AirValue
))
else:
return("Out of range (Value: %s, Water: %s, Air: %s)" % (
value, self.WaterValue, self.AirValue
))
if 75 <= value <= 100:
return("Very Moist (Value: %s, Water: 100, Air: 0)" % value)
elif 50 <= value <= 75:
return("Quite Moist (Value: %s, Water: 100, Air: 0)" % value)
elif 25 <= value <= 50:
return("Kinda Dry (Value: %s, Water: 100, Air: 0)" % value)
elif 0 <= value <= 25:
return("Very Dry (Value: %s, Water: 100, Air: 0)" % value)