Я пытаюсь переключить реле, подключенное через 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& Python & 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;
>?