У меня есть датчик сонара на макетной плате, подключенный к Raspberry Pi. Моя цель - каждый раз, когда что-то идет перед датчиком, оно отправляет файл в базу данных. Мой код работает нормально, но он истекает после нескольких минут работы. Есть ли способ перезапустить программу или как я могу изменить код для решения проблемы.
Я пытался заставить его всегда отправлять данные на сервер. Даже когда что-то не пересекается перед этим. Я пытался только тогда, когда он пересекается перед ним, и он все еще не работает.
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@gmail.com", "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']),