我正在尝试使用PHP命令切换通过USB连接到RPi的继电器。我在RPi上所有可用的GPIO引脚旁边使用了一个额外的USB-8中继板。
我仅需1个Python脚本即可切换板上的所有(全部8个)USB继电器以及GPIO继电器板上的(全部28个)GPIO连接继电器。
test.py
文件中的相关Python指令为:
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
(具有执行权限)来代替,这不是解决方案。
在直接通过Python和RPi工作的同时,如何通过PHP,Python和RPi寻址USB中继?
#!/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;
>?