我有一个Raspberry Pi,必须运行Python脚本才能手动打开/关闭LED。因为我不想在Pi上运行Web服务器,所以我在另一台机器上安装了Web2Py。目前我只能从MySQL数据库中检索数据(温度和湿度),但我无法使用网页上的按钮运行其他脚本。
示例:我按下笔记本电脑上安装的Web2Py服务器上的ON按钮=> Raspberry的Pi LED亮起。 (连接到GPIO)。
有可能这样做,还是我在浪费时间?
答案 0 :(得分:1)
在使用Web服务器的计算机上,使用paramiko(python库)与pi通信并在那里启动脚本,然后获取答案并显示它(如果有的话)。
在网络服务器上:
// server.py
def leds_set(state):
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('127.0.0.1', username='ahah', password='lol')
if state:
state = 'on'
else:
state = 'off'
stdin, stdout, stderr = ssh.exec_command('python /home/ahah/ledson.py ' + state)
print(stdin, stdout, stderr)
return dict()
// view.html
{{extend 'layout.html'}}
<form>
<input type="button" onclick="leds_set(True);" value="leds on"/>
<input type="button" onclick="leds_set(False);" value="leds off"/>
</form>
在你的pi:
// ledson.py
state = sys.argv[1]
if state =='on':
print('Leds ON')
else:
print('Leds OFF')