Aug-28-2020, 10:00 AM
(This post was last modified: Aug-28-2020, 10:00 AM by duckredbeard.)
I am getting the following error when running my code. I have a functioning version of this script, but this one is edited to include more LEDs and different values for triggering the LEDs. On this version, I am erroring on line 57 (which is hx.set_reading_format("MSB", "MSB"))with this:
attributeerror 'hx711' object has no attribute 'set_reading_format'
Behold the...
attributeerror 'hx711' object has no attribute 'set_reading_format'
Behold the...
import time
import sys
import requests
from gpiozero import LED
from gpiozero import Button
#Define LED indicators - these are GPIO numbers
LED1 = LED(21) #Blue
LED2 = LED(26) #Red
LED3 = LED(20) #Amber
LED4 = LED(19) #Green
LED5 = LED(16) #Green
LED6 = LED(13) #Green
LED7 = LED(6) #Green
LED8 = LED(12) #Green
LED9 = LED(5) #Pink
EMULATE_HX711=False
reset = Button(18)
#def reset():
# average = keg1
# print("Average has been reset to current weight")
#reset.when_released = reset
referenceUnit = 1
if not EMULATE_HX711:
import RPi.GPIO as GPIO
from hx711 import HX711
else:
from emulated_hx711 import HX711
def moving_average(prev_average, new_value, num_steps = 5.0):
return (prev_average * (num_steps - 1) + new_value) / num_steps
average = weight = 99000
w_threshold = 2000
def cleanandexit():
print("Cleaning...")
if not EMULATE_HX711:
GPIO.cleanup()
print("Bye!")
sys.exit()
hx = HX711(27, 22)
hx.set_reading_format("MSB", "MSB")
hx.set_reference_unit(1)
hx.reset()
hx.tare()
print("The scale is ready")
print("put the keg on...")
LED9.blink(.2,3)
start = time.time()
while True:
try:
keg1 = hx.get_weight(5)
weight = keg1
print(keg1, average)
if time.time() - start > 5:
weight = keg1
lost_weight = average - keg1
if lost_weight > w_threshold:
r = requests.post("http://bit.ly/removed link triggers a message to my phone")
print("You got served")
average = keg1
print(lost_weight)
average = moving_average(average, weight)
start = time.time()
if (keg1 < 3000): #Keg is missing or below empty weight
LED1.blink(.2,.2)
else:
LED1.off()
if (keg1 > 100000): #Keg is above maximum weight
LED1.blink(.2,.2)
else:
LED1.off()
if (keg1 < 8800): #Red - Keg is less than 3 servings
LED2.blink(.5,.5)
else:
LED2.off()
if (keg1 > 16000): #Amber
LED3.on()
else:
LED3.off()
if (keg1 > 32800): #Green1
LED4.on()
else:
LED4.off()
if (keg1 > 49200): #Green2
LED5.on()
else:
LED5.off()
if (keg1 > 65600): #Green3
LED6.on()
else:
LED6.off()
if (keg1 > 82000): #Green4
LED7.on()
else:
LED7.off()
if (keg1 > 99000): #Green5 - Keg is at full level
LED8.on()
else:
LED8.off()
hx.power_down()
hx.power_up()
time.sleep(1)
except (KeyboardInterrupt, SystemExit):
cleanandexit()Please help! I have no idea how much beer I have and the apocalypse is near!
