Adminhs пишет:
.... только используя конструктор кода или интепретер.
...
Сделал через интерпретер.
gpio14=1 открыть ворота
gpio16=1 закрыть ворота
раз в 2 секунды надо сбросить их в 0, если равны 1.
дополнительно для отладки на GPIO4 подаю 1, чтобы имитировать статус ворот (он с отдельно будет приходить с контроллера ворот)
Скрипт отрабатывает как надо, но есть вопрос с отправкой по mqtt.
if(gpioget(14)==1)
gpioset(14,0)
gpioset(16,0)
gpioset(4,1)
printw(14==1)
endif
if(gpioget(16)==1)
gpioset(16,0)
gpioset(14,0)
gpioset(4,0)
printw(16==1)
endif
Подаю на gpio14 единицу, на mqtt приходит единица, срабатывает первое условие. 14,16 гасятся, 4 - поднимается. На mqtt приходят данные только о gpio4. О gpio14 и 16 не приходят.
Добавил вручную отправку статуса для 14 и 16 и стало как надо:
if(gpioget(14)==1)
gpioset(14,0)
gpioset(16,0)
gpioset(4,1)
printw(14==1)
mqttsend(output14,0)
mqttsend(output16,0)
endif
if(gpioget(16)==1)
gpioset(16,0)
gpioset(14,0)
gpioset(4,0)
printw(16==1)
mqttsend(output14,0)
mqttsend(output16,0)
endif
Только так mqtt получает состояние всех трех gpio.