Неполадка Получение скрипта PHP на Raspberry Pi для выполнения скрипта Python, который вращает двигатель - PullRequest
0 голосов
/ 17 марта 2020

Я пытаюсь сделать автоматический выключатель света. Для этого я использую шаговый двигатель. Цель состоит в том, чтобы я мог получить доступ к своему Raspberry Pi из браузера и с помощью 2 простых кнопок «Включить» и «Выключить» управлять двигателем, который будет включать выключатель света. Я написал этот простой python скрипт для вращения двигателя, который был протестирован на Pi и отлично работает. Он называется stepper.py и находится в /var/www/html:

    import RPi.GPIO as GPIO
    import time
    GPIO.setmode(GPIO.BOARD)
    control_pins = [7,11,13,15]
    for pin in control_pins:
     GPIO.setup(pin, GPIO.OUT)
     GPIO.output(pin, 0)
    halfstep_seq = [
    [1,0,0,0],
    [1,1,0,0],
    [0,1,0,0],
    [0,1,1,0],
    [0,0,1,0],
    [0,0,1,1],
    [0,0,0,1],
    [1,0,0,1]
    ]

    for i in range(256):
     for halfstep in range(8):
      for pin in range(4):
      GPIO.output(control_pins[pin], halfstep_seq[halfstep][pin])
     time.sleep(0.001)

    GPIO.cleanup()
    print "Motor Rotation Completed"

Также в /var/www/html у меня есть индекс. html и индекс. php страницы:

index.html:


<!DOCTYPE html>
 <html lang="en" dir="ltr">
 <head>
  <meta charset="utf-8">
  <title>Smart Light Switch</title>
 </head>
 <body>

  <h1>Smart Light Switch</h1>

  <form action="index.php" method="post">
    <input type="submit" name="on" value="Turn Lights On">
    <input type="submit" name="off" value="Turn Lights Off">
  </form>

 </body>
</html>




index.php:


<?php
 if ($_SERVER['REQUEST_METHOD'] == "POST" and isset($_POST['on']))
 {
  lightOn();
 } elseif ($_SERVER['REQUEST_METHOD'] == "POST" and isset($_POST['off']))
 {
  lightOff();
 }

 function lightOn()
 {
  $command = escapeshellcmd('python stepper.py');
  $output = shell_exec($command);
  echo "Light Turned On";

 }

 function lightOff()
 {
  echo "Light Turned Off";
 }

?>

По сути, HTML просто отображает 2 кнопки и при щелчке переходит к файлу php, где функции успешно выполняются. Однако сценарий поворота шагового двигателя не выполняется. Я посмотрел в Интернете, и мне кажется, что у меня есть правильный способ выполнить скрипт python из php, но он не работает.

...