Я очень новичок в python, так что терпите меня. Я пытаюсь изменить состояние вывода GPIO для управления реле на основе состояния переменной dweet.io. Переменная является командой, она либо включена, либо выключена, либо выполнена. Программа проверяет dweet до тех пор, пока он не станет равным готовому, то есть включено или выключено, и соответствующим образом изменит состояние реле. Затем он возвращает dweet обратно, чтобы команда была выполнена, и выполняет все заново. Тем не менее, он работает только один раз. После этого он просто непрерывно меняет dweet обратно на готово.
import RPi.GPIO as GPIO
import time
import dweepy
import os
GPIO.setmode(GPIO.BOARD)
GPIO.setup(7,GPIO.OUT)
dweepy.dweet_for('my_thing', {'command': 'done'})
url = dweepy.get_latest_dweet_for("my_thing")
dict = url[0]
command = dict["content"][str("command")]
while True:
1 == 1
while command == "done":
time.sleep(2)
url = dweepy.get_latest_dweet_for("my_thing")
dict = url[0]
command = dict["content"][str("command")]
else:
if command == "on":
GPIO.output(7,GPIO.LOW)
time.sleep(2)
dweepy.dweet_for('my_thing', {'command': 'done'})
else:
GPIO.output(7,GPIO.HIGH)
time.sleep(2)
dweepy.dweet_for('my_thing', {'command': 'done'})
Я подумал, что, поскольку он работает один раз, я должен иметь возможность просто запустить программа снова после того, как она изменяет dweet назад на done и избавляется от бесконечного l oop. Это работает, однако я не могу запустить его при загрузке Pi.
import RPi.GPIO as GPIO
import time
import dweepy
import os
GPIO.setmode(GPIO.BOARD)
GPIO.setup(7,GPIO.OUT)
dweepy.dweet_for('my_thing', {'command': 'done'})
url = dweepy.get_latest_dweet_for("my_thing")
dict = url[0]
command = dict["content"][str("command")]
while command == "done":
time.sleep(2)
url = dweepy.get_latest_dweet_for("my_thing")
dict = url[0]
command = dict["content"][str("command")]
else:
if command == "on":
GPIO.output(7,GPIO.LOW)
time.sleep(2)
dweepy.dweet_for('my_thing', {'command': 'done'})
execfile('dweetrelay.py')
else:
GPIO.output(7,GPIO.HIGH)
time.sleep(2)
dweepy.dweet_for('my_thing', {'command': 'done'})
execfile('dweetrelay.py')
Так что мне нужно либо выяснить, почему зависает l oop, либо выяснить, почему не запускается вторая версия на заднем плане.
Заранее спасибо, и я благодарен за любые подсказки.