Raspberry pi代码在运行几分钟后超时

问题描述 投票:0回答:1

我在连接到树莓派的面包板上有一个声纳传感器。我的目标是每当有什么东西进入传感器前,它就会向firebase发送一个文件。我的代码运行正常但运行几分钟后就超时了。有没有办法重新启动程序或如何更改代码来解决问题。

我试图让它始终发送数据到服务器。即使有什么东西不在它前面。我曾经尝试过,当它在它前面交叉时它仍然不起作用。

import pyrebase
import RPi.GPIO as GPIO

x = 0
y = 0
while y < 1:
config = {
    "apiKey": "x",
    "authDomain": "x",
    "databaseURL": "x",
     "storageBucket": "x",
     "serviceAccount": "x"
    }

firebase = pyrebase.initialize_app(config)

'''
initialize app with config
'''

'''
    authenticate a user
'''


auth = firebase.auth()

user = auth.sign_in_with_email_and_password("[email protected]", "no")

db = firebase.database()

'''
    Create using push
'''
data = { "name" : "Joe Tilsed" }
archer = {"name": "Sterling Archer", "agency": "Figgis Agency"}
db.child("agents").push(archer, user['idToken'])

pam = {"name": "Pam Poovey", "agency": "Figgis Agency"}

while x < 1:
    GPIO.setmode(GPIO.BCM)
    TRIG = 18
    ECHO = 24

    GPIO.setup(TRIG, GPIO.OUT)
    GPIO.setup(ECHO, GPIO.IN)

    GPIO.output(TRIG, True)
    time.sleep(0.0001)
    GPIO.output(TRIG, False)


    while GPIO.input(ECHO) == False:
            start = time.time()
    while GPIO.input(ECHO) == True:
            end = time.time()
    sig_time = end-start

    distance = sig_time / 0.000148

    #print('d:{} in'.format(distance))



    if distance < 9:
        if distance > 1:
            db.child("today").push (data, user['idToken']),
            db.child("month").push (pam, user['idToken']),
            db.child("year").push (pam, user['idToken']),
            db.child("week").push (pam, user['idToken'])
        #else:
            #db.child("month").push (pam, user['idToken']),
python firebase firebase-realtime-database raspberry-pi raspbian
1个回答
0
投票

我在一个similar project上工作,将温度传感器连接到覆盆子pi零并将数据发送到Firebase。根据我的经验,当温度传感器未正确连接到GPIO引脚时,脚本停止运行。我最终将我的导线焊接到临时传感器上的覆盆子pi,这似乎解决了它。

或者,您可以将while循环的内容放在try子句中,并捕获脚本抛出的异常,使其退出。

© www.soinside.com 2019 - 2024. All rights reserved.