如何使用PHP和Python将命令发送到连接到RPi的USB中继?

时间:2019-02-13 16:44:06

标签: php python raspberry-pi usb usbserial

我正在尝试使用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; 
>?

0 个答案:

没有答案