示例#1
0
def foodSense():
    print('Starting Food Sense')

    # Begin initializing necessary components)
    fb = Firebase()
    detect = Detect(fb)
    monitor = Monitoring(fb)
    scale = Scale()

    # Set scale calibration
    scale.setReferenceUnit(-25.725)
    scale.reset()
    scale.tare()

    ### START DEBUG ###
    ### END DEBUG ###

    ### MAIN LOOP ###
    while True:
        while monitor.powerOn:
            print('Power is on')
            time.sleep(1)
            
            while monitor.doorClosed():
                print('Door is closed')
                monitor.checkTemp()
                time.sleep(1)

                if monitor.doorOpen():
                    print('Door was opened')
                    monitor.startDoorTimer()
                    
                    while monitor.doorOpen():
                        print('Waiting for door to close')
                        monitor.checkDoorTimer()
                        monitor.checkTemp()
                        time.sleep(1)
                    else:
                        print('Door was closed')

                        scale.getWeight()
                        detect.getImage()
                        detect.detectItem()
                        detect.parseResponse(scale.weight)
                else:
                    pass
            else:
                print('Door must be closed on program startup')
        else:
            monitor.powerSave()
    else:
        pass
示例#2
0
    def run(self):
        # Set up LED pin
        LED = 27
        GPIO.setwarnings(False)
        GPIO.setmode(GPIO.BCM)
        GPIO.setup(LED, GPIO.OUT)

        # Initialize objects
        f = Firebase(self.q)
        d = Detect(f, self.q)
        m = Monitoring(f, self.q)
        s = Scale(self.q)

        # Set scale calibration
        s.setReferenceUnit(-25.725)
        s.reset()
        s.tare()

        self.q.put('Ready')

        # Loop until stop event is set
        while not self.event.is_set():

            # Loop while RPi is on AC power
            while m.powerOn:

                # Check if stop has been set
                if self.event.is_set():
                    break

                # Loop while fridge door is closed
                while m.doorClosed():
                    if not m.powerOn():
                        break
                    m.checkTemp()

                    # Check if stop hsa been set
                    if self.event.is_set():
                        break
                else:
                    print('Door was opened')
                    self.q.put('Door opened')
                    GPIO.output(LED, True)
                    m.startDoorTimer()

                    while m.doorOpen():
                        print('Waiting for door to close')

                        m.checkDoorTimer()
                        m.checkTemp()
                    else:
                        print('Door closed')
                        self.q.put('Door closed')

                        s.getWeight()
                        d.getImage()
                        d.detectItem()
                        d.parseResponse(s.weight)
                        s.tare()
                        GPIO.output(LED, False)

                        print('Done')
                        self.q.put('Done')
            else:
                m.powerSave()

        f.close(
        )  # Firebase app must be closed before we can create another instance