Python over SSH - обнаружение событий не работает - PullRequest
0 голосов
/ 06 октября 2018

Я запускаю сценарий Python на Pi удаленно для управления двигателем.Это сценарий -

import RPi.GPIO as GPIO
from time import sleep

GPIO.setmode(GPIO.BOARD)
GPIO.setwarnings(False) 

GPIO.setup(10, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) 

GPIO.setup(11,GPIO.OUT)
GPIO.setup(13,GPIO.OUT)
GPIO.setup(15,GPIO.OUT)

def button_callback(channel):
    print("Button was pushed!")
    GPIO.output(15,GPIO.LOW)  # assuming this is the connection to the enable pin on your motor controller board
    exit()

# Start motor
GPIO.output(11,GPIO.HIGH)
GPIO.output(13,GPIO.LOW)
GPIO.output(15,GPIO.HIGH)

GPIO.add_event_detect(10,GPIO.RISING,callback=button_callback) 

message = input("Press enter to quit\n\n") 

GPIO.cleanup()

Когда я запускаю сценарий из командной строки Pi, он работает нормально, т.е. остановка двигателя при нажатии переключателя.

Однако при запуске через команду SSHНа Linux-машине двигатель не останавливается при нажатии переключателя.

Это команда SSH, содержащаяся в сценарии оболочки -

#!/bin/bash
ssh pi@192.168.1.12 "sudo python /home/pi/motor.py"

Может кто-нибудь подсказать, почемускрипт работает не так, как хотелось бы через SSH, и, если возможно, предложит решение.

Спасибо!

1 Ответ

0 голосов
/ 06 октября 2018

Я решил эту проблему, используя другой код

import RPi.GPIO as GPIO
import time
from time import sleep

GPIO.setmode(GPIO.BOARD)
GPIO.setwarnings(False) 


GPIO.setup(10, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) 

GPIO.setup(11,GPIO.OUT)
GPIO.setup(13,GPIO.OUT)
GPIO.setup(15,GPIO.OUT)


# Start motor
GPIO.output(11,GPIO.HIGH)
GPIO.output(13,GPIO.LOW)
GPIO.output(15,GPIO.HIGH)


while True:
    input_state = GPIO.input(10)
    if input_state == True:
        GPIO.output(15,GPIO.LOW)
        time.sleep(30)

message = input("Press enter to quit\n\n") 

GPIO.cleanup()

GPIO.cleanup() 

Мне по-прежнему любопытно узнать, почему предыдущий код не сработал.В любом случае проблема решена на данный момент!

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...