pyfirmata читает аналоговые значения, но оператор if-else доказывает это в противном случае - PullRequest
0 голосов
/ 17 июня 2020

Итак, у меня есть сценарий python, который считывает данные датчиков из Arduino и сохраняет их в базе данных Firebase. Программа работала хорошо, пока я не добавил какой-нибудь оператор if-else, и теперь похоже, что значения обрабатываются как Nonetype. Я застрял, любезно помогите.

Вот код:

from pyfirmata import Arduino, util
import time
board = Arduino('COM3')

from firebase import firebase

firebase=firebase.FirebaseApplication("https://xxxxx.firebaseio.com/",None)
it = util.Iterator(board)
it.start()
analog_input1 = board.get_pin('a:0:i')
analog_input2 = board.get_pin('a:1:i')
analog_input3 = board.get_pin('a:2:i')
analog_input4 = board.get_pin('a:3:i')
state="null"

while True:
    analog_value1 = analog_input1.read()
    analog_value2 = analog_input2.read()
    analog_value3 = analog_input3.read()
    analog_value4 = analog_input4.read()
    if analog_value1>=2000 or analog_value2>=23 or analog_value3>=23 or  analog_value4>=3000:
        state="Slightly Alarming"
    elif analog_value1>=4000 or analog_value2>=31 or analog_value3>=31 or  analog_value4>=4000:
        state="Alarming"
    elif analog_value1>=5000 or analog_value2>=50 or analog_value3>=50 or  analog_value4>=5000:
        state="Danger!"
    else:
        state="Normal"
    firebase.post('/xxxxx/',{'MQ4':analog_value1,'MQ7':analog_value2,'MQ9':analog_value3,'MQ135':analog_value4,'Status':state})
    time.sleep(0.1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...