检查车辆停放了多长时间
Checking how long vehicles have been parked
我正在用 micropython 编写一个程序,它应该能够判断车辆是否停在停车场 space 以及车辆停放了多长时间。我设法为一个传感器编写代码,但我希望代码能够一次检查多个传感器。我目前有两个正在测试的传感器,但我不知道如何让程序分别计算时间。我试过玩字典,但似乎无法正常工作。
基本上我希望每个传感器都连接到它们自己的 time.time()。因此,假设一辆车停在 sensor_1,我希望它开始为该传感器计数,直到传感器值回到 1(没有车停)我不确定这样做的正确方法是什么。任何帮助将不胜感激。
到目前为止,这是我的代码:
import time
from machine import Pin
def board_1():
sensor_1 = Pin("P14", mode=Pin.IN)
sensor_2 = Pin("P15", mode=Pin.IN)
sensor_3 = Pin("P16", mode=Pin.IN)
sensor_4 = Pin("P17", mode=Pin.IN)
sensor_5 = Pin("P18", mode=Pin.IN)
sensor_6 = Pin("P19", mode=Pin.IN)
sensor_7 = Pin("P20", mode=Pin.IN)
sensor_8 = Pin("P21", mode=Pin.IN)
sensors = [sensor_1, sensor_2]
time_parked = {"sensor_1" : 0, "sensor_2" : 0}
while True:
for i in sensors:
if i.value() == 0:
time_parked.update({str(i) : time.time()})
if time.time() % 2 == 0:
print(keys, "parked")
time.sleep(5)
board_1()
我不太明白你在做什么。
反正
后面少了一个冒号
for i in sensors**:**
第 24 行中的键尚未定义。您是说 i.keys() 吗?
初稿,等待有关您要完成的工作的更多信息。
import time
from machine import Pin
def board_1():
sensor_1 = Pin("P14", mode=Pin.IN)
sensor_2 = Pin("P15", mode=Pin.IN)
sensor_3 = Pin("P16", mode=Pin.IN)
sensor_4 = Pin("P17", mode=Pin.IN)
sensor_5 = Pin("P18", mode=Pin.IN)
sensor_6 = Pin("P19", mode=Pin.IN)
sensor_7 = Pin("P20", mode=Pin.IN)
sensor_8 = Pin("P21", mode=Pin.IN)
# Set up mapping(dict) of sensor identification strings to sensor classes.
sensors = {"sensor_1": sensor_1, "sensor_2": sensor_2}
time_parked = {"sensor_1" : 0, "sensor_2" : 0}
while True:
# Iterate over sensor mapping. Use the sensor id string to
# fetch value from class. Then use the id string to update the
# time_parked dict.
for sensor in sensors:
if sensors[sensor].value() == 0:
time_parked.update({sensor : time.time()})
# Not sure what the below is supposed to do?
if time.time() % 2 == 0:
print(list(time_parked.keys()), "parked")
time.sleep(5)
# Update to reset timer.
elif sensors[sensor].value() == 1:
time_parked.update({sensor : 0})
board_1()
需要回答的问题:
当sensor.value() == 1时如何处理?
目前您正在记录一个时间点。出于停车目的,您不想知道车辆实际停放的时间间隔吗?
我正在用 micropython 编写一个程序,它应该能够判断车辆是否停在停车场 space 以及车辆停放了多长时间。我设法为一个传感器编写代码,但我希望代码能够一次检查多个传感器。我目前有两个正在测试的传感器,但我不知道如何让程序分别计算时间。我试过玩字典,但似乎无法正常工作。 基本上我希望每个传感器都连接到它们自己的 time.time()。因此,假设一辆车停在 sensor_1,我希望它开始为该传感器计数,直到传感器值回到 1(没有车停)我不确定这样做的正确方法是什么。任何帮助将不胜感激。
到目前为止,这是我的代码:
import time
from machine import Pin
def board_1():
sensor_1 = Pin("P14", mode=Pin.IN)
sensor_2 = Pin("P15", mode=Pin.IN)
sensor_3 = Pin("P16", mode=Pin.IN)
sensor_4 = Pin("P17", mode=Pin.IN)
sensor_5 = Pin("P18", mode=Pin.IN)
sensor_6 = Pin("P19", mode=Pin.IN)
sensor_7 = Pin("P20", mode=Pin.IN)
sensor_8 = Pin("P21", mode=Pin.IN)
sensors = [sensor_1, sensor_2]
time_parked = {"sensor_1" : 0, "sensor_2" : 0}
while True:
for i in sensors:
if i.value() == 0:
time_parked.update({str(i) : time.time()})
if time.time() % 2 == 0:
print(keys, "parked")
time.sleep(5)
board_1()
我不太明白你在做什么。 反正
后面少了一个冒号 for i in sensors**:**
第 24 行中的键尚未定义。您是说 i.keys() 吗?
初稿,等待有关您要完成的工作的更多信息。
import time
from machine import Pin
def board_1():
sensor_1 = Pin("P14", mode=Pin.IN)
sensor_2 = Pin("P15", mode=Pin.IN)
sensor_3 = Pin("P16", mode=Pin.IN)
sensor_4 = Pin("P17", mode=Pin.IN)
sensor_5 = Pin("P18", mode=Pin.IN)
sensor_6 = Pin("P19", mode=Pin.IN)
sensor_7 = Pin("P20", mode=Pin.IN)
sensor_8 = Pin("P21", mode=Pin.IN)
# Set up mapping(dict) of sensor identification strings to sensor classes.
sensors = {"sensor_1": sensor_1, "sensor_2": sensor_2}
time_parked = {"sensor_1" : 0, "sensor_2" : 0}
while True:
# Iterate over sensor mapping. Use the sensor id string to
# fetch value from class. Then use the id string to update the
# time_parked dict.
for sensor in sensors:
if sensors[sensor].value() == 0:
time_parked.update({sensor : time.time()})
# Not sure what the below is supposed to do?
if time.time() % 2 == 0:
print(list(time_parked.keys()), "parked")
time.sleep(5)
# Update to reset timer.
elif sensors[sensor].value() == 1:
time_parked.update({sensor : 0})
board_1()
需要回答的问题:
当sensor.value() == 1时如何处理?
目前您正在记录一个时间点。出于停车目的,您不想知道车辆实际停放的时间间隔吗?