DIY-Blub / plant-watering-system1.0

plant watering system for balcony (Raspberry Pi)
GNU Affero General Public License v3.0
3 stars 1 forks source link

calculation of the percentage value taking into account the minimum value #6

Closed DIY-Blub closed 1 year ago

DIY-Blub commented 3 years ago

Wenn ich den kapazitiven Sensor in die Luft halte dann bekomme ich einen Wert von 392 - Was ca. 0% Feuchte entspricht. Im Wasser 917, wenn ich zu Testzwecken leicht feuchtes Klopapier umwickel bekomme ich den Wert 629. Die angezeigten Werte machen aus meiner Sicht sinn, dennoch Frage ich mich warum muss ich eigentlich nur den Max Wert 100% abgleichen aber nicht den Wert 0%. Ist das nicht etwas unüblich bei einer Kalibrierung/Justierung?

Stimmt, das Thema das mein minimaler Wert nicht 0 ist, hatte ich bei meinen Sensoren nicht. Da muss man die Formel (per = .....) ändern. Heute ist es schon etwas zu spät dafür, vielleicht morgen oder Du kannst gerne die Formel posten ;)

Originally posted by @DIY-Blub in https://github.com/DIY-Blub/faq/discussions/8#discussioncomment-742916

DIY-Blub commented 3 years ago

ADD LINE https://github.com/DIY-Blub/plant-watering-system1.0/blob/master/waterpi.py#L10 from decimal import Decimal

REPLACE LINE https://github.com/DIY-Blub/plant-watering-system1.0/blob/master/waterpi.py#L26 per = round((0+((100-0)/Decimal(maxValue-minValue))*Decimal(data-minValue))*2,-1) / 2

REPLACE LINE https://github.com/DIY-Blub/plant-watering-system1.0/blob/master/waterpi.py#L27 return int(per)

Variable with the name "minValue" = minimum value = AIR (e.g. 392) Variable with the name "maxValue" = maximum value = WATER (e.g. 917)

IMPORTANT: currently not tested yet