Я использую Raspberry Pi и хочу проверить, является ли вход высоким или низким, используя GPIO. Исходя из этого, я хочу отправить запрос на публикацию на веб-сервер. Однако теперь он зацикливается, что приводит к нескольким вызовам на мой веб-сервер одновременно. Как я могу предотвратить это, чтобы почтовый запрос вызывался только один раз? Это то, что я пробовал до сих пор, но это не решает проблему.
import requests
import time
import RPi.GPIO as GPIO
from time import sleep
from datetime import datetime
file = open("/home/pi/Documents/datalogger/data/datalog.csv", "a")
i=0
lastValue = ""
userId = 1
def update_value(status):
print( status )
file.write(str(datetime.now())+"\n")
file.flush()
url = 'https://mywebserver.nl/project/log/api'
dload = {'userId': userId, 'status': status, 'datetime': datetime.now()}
x = requests.post(url, params = dload)
print(x.content)
return status;
GPIO.setmode(GPIO.BOARD)
GPIO.setup(16, GPIO.IN, pull_up_down=GPIO.PUD_UP)
while True:
buttonState = GPIO.input(16)
if buttonState == 0:
if lastValue != "started":
lastValue = update_value("started")
else:
if lastValue != "stopped":
lastValue = update_value("stopped")
time.sleep(1)