2015-04-09 2 views
1

Что бы я хотел сделать, так это в браузере, пытающемся получить доступ к моему URL-адресу малины Pi (http://192.168.10.191:5000/console). Светодиод включается, без необходимости вводить какой-либо питон на передней панели, однако на момент, мне все равно нужно набирать python на веб-консоли, чтобы он функционировал по назначению.Включение светодиода при обращении к URL-адресу

код выглядит следующим образом:

from flask import Flask 

app = Flask(__name__) 

@app.route('/') 
def hello_world(): 
    return 'Hello World!' 

@app.route('/user') 
def here(): 
    return '<h1>user here</h>' 

@app.route('/console') 
def console(): 
    import pexpect 
    child = pexpect.spawn('python') 
    child.expect('\n>>>') 
    child.sendline('import os') 
    child.sendline('os.system("cd /sys/class/leds/led0 && sudo sh -c \'echo 1 > brightness\' ")') 
    child.expect('\n>>>') 

if __name__ == '__main__': 
    app.run(host='0.0.0.0', debug=True) 
+0

ли вы имеете в виду: При доступе к URL, как включить светодиод без ввода команд на веб? – Raptor

+0

Да, когда я получаю доступ к «http://192.168.10.191:5000/console» <--- мой адрес малины pi 2 ip, он выполнит # cd/sys/class/leds/led0 && sudo sh -c \ 'echo 1> яркость \' "<--- bash, чтобы включить pi's led на –

+0

, однако, прямо сейчас, мне все еще нужно набирать скрипт python на веб-консоли, чтобы включить led на –

ответ

1

Есть ли причина, вы хотите использовать /console URL? Если вы используете другой, у вас не будет этой проблемы.

Используется Werkzeug по умолчанию для отладки.

Вам необходимо отключить его, установив use_evalex=False. См. this question для более подробной информации.

Также вам не нужно использовать pexpect. Сделайте вызов непосредственно os.system:

@app.route('/console') 
def console(): 
    import os 
    os.system("cd /sys/class/leds/led0 && sudo sh -c \'echo 1 > brightness\' ") 

    return '<h1>changed brightness</h>' 

if __name__ == '__main__': 
    app.run(host='0.0.0.0', debug=True, use_evalex=False) 
+0

thaks для вашего ответа, но я все еще нужно набирать скрипт python на веб-консоли –

+0

http://www.douban.com/group/topic/74030243/ <--- вот вопрос image –

+0

@ user2481885 Я получил ваш код и обновил свой ответ. –