Coverage for src/main/python/scale.py : 100%
Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1from hx711 import HX711
2from sensor import Sensor
5class Scale(Sensor):
7 """Scale, measures a weight """
9 offset = 0
11 def __init__(self, pin_sck, pin_out_dt, range_min=0, range_max=1000000, average_converging_speed=1 / 2,
12 val_to_g_conversion=1220):
14 """ constructor.
15 :param pin_sck: number pin Serial Clock Input. it has to be output, es pin32 on ESP32
16 :param pin_out_dt: number pin that will read data value, is has to be GPIO
17 :param range_min: min value of sensor (empty), used for percentage
18 :param range_max: max value of sensor (full), used for percentage
19 :param average_converging_speed: speed the average goes towards the last measure (range 0-1)
20 :param val_to_g_conversion: to convert signal to grams (signal/val = g)"""
21 super().__init__(range_min, range_max, average_converging_speed)
22 # machine.freq(160000000) is this really necessary? it cause some problem
23 self.driver = HX711(d_out=pin_out_dt, pd_sck=pin_sck)
24 # channel can be set with: self.driver.channel = HX711.CHANNEL_A_64
25 self.val_to_g_conversion = val_to_g_conversion
27 def __str__(self):
28 """prints the object."""
29 return "Scale: average: {}, last measure {}, percentage: {}, weight: {}".format(self.get_average(),
30 self.get_last_measure(),
31 self.get_percentage(),
32 self.weight())
34 def raw_value(self):
35 """Measures sensor, returns raw value, not tared."""
36 return self.driver.read()
38 def tare(self):
39 """tares sensor at empty scale."""
40 self.offset = self.driver.read()
42 def raw_measure(self):
43 """returns sensor raw measure with tare (raw value - offset)."""
44 return self.driver.read() - self.offset
46 def weight(self):
47 """actual weight in grams."""
48 self.measure()
49 return self.get_last_measure() / self.val_to_g_conversion
51 def weight_kg(self):
52 """actual weight in kilograms."""
53 return self.weight() / 1000