第一篇文章,我在这个问题上处于死胡同。
(一些背景)我有一个树莓派 PiZero,我正在开发一个气象站,到目前为止它记录温度、湿度和压力,并将数据发送到 windy.com API。最近我添加了一个翻斗式雨量计。这有 2 根电线连接到 GPIO,当水桶倾斜时,它会瞬间与电路竞争,基本上是按下按钮!
这里的目标是每小时计算一次提示,然后重置。在重置之前,将此数据发送到日志文件 + Windy API。这是我正在努力的部分。
我对 python 很擅长,但我正处于真正的作家障碍时刻,这是一个我从片段中拼凑起来的小程序,它计算了测试的技巧
/usr/bin/python3
import requests
from gpiozero import Button
import time
rain_sensor = Button(27)
bucket_size = 0.2794
count = 0
def bucket_tipped():
global count
count = count + 1
print(count * bucket_size)
def reset_rainfall():
global count
count = 0
#display and log results
def timed_loop():
reset_rainfall
timeout = time.monotonic() + 3600 # 1 hour from now
while True:
if time.monotonic() > timeout: # break if timeout time is reached
rain_sensor.when_pressed = bucket_tipped
time.sleep(1) # Short sleep so loop can be interupted
continue
print count
# close the log file and exit nicely
GPIO.cleanup()