Я пытаюсь переключить реле, подключенное через USB к RPi, используя команду PHP. Я использую дополнительную плату реле USB-8, рядом со всеми доступными GPIO-контактами на RPi.
Я могу переключать оба (все 8) USB-реле на плате вместе с (всеми 28) GPIO-подключенными реле на GPIO-реле-платах, используя только 1 скрипт Python.
Соответствующие инструкции Python в test.py
-файлы являются:
os.system("gpio write 25 1")
os.system("usbrelay HW554_1=1")
Это работает все нормально, когда вызывается напрямую через python3 test.py
Тем не менее, когда я использую скрипт PHP (для адресации действия через веб-сайт), использую инструкцию PHP:
$command = escapeshellcmd('/usr/custom/test.py');
$output = shell_exec($command);
echo $ output;
Результатом является (… я думаю) полное выполнение PHP-скрипта, где на RPi, через Python, только инструкция os.system("gpio write 25 1")
эффективно выполняется (реле переключается), в то время как инструкция os.system("usbrelay HW554_1=1")
кажется выполненным (так как при использовании time.sleep()
Команды до и после os.system()-instruction)
, но на самом деле это не приводит к переключению USB-реле. Я также пытался использовать bash-shell-file test.sh
(с правами на исполнение), что не было решением.
Как обратиться к USB-реле через PHP & питон & RPi, пока он работает напрямую через Python & RPi?
#!/usr/bin/env python
import os
import time
os.system("gpio write 25 1")
time.sleep(1)
os.system("gpio write 25 0")
time.sleep(1)
os.system("usbrelay HW554_1=1")
time.sleep(1)
os.system("usbrelay HW554_1=0")
<?php
$command = escapeshellcmd('/usr/custom/test.py');
$output = shell_exec($command);
echo $output;
>?
Задача ещё не решена.
Других решений пока нет …