Как отправить команды на USB-реле, подключенное к RPi, используя PHP и Python? - PullRequest
0 голосов
/ 13 февраля 2019

Я пытаюсь переключить реле, подключенное через 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; 
>?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...