Process the raw values and handle percentages
parent
ae1a444600
commit
cbfd064552
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue