由按钮控制的raspberry pi 3 webbrowser(Python)

时间:2018-01-03 13:38:07

标签: python chromium raspberry-pi3 gpio

您好我想在一个以全屏模式运行的网络浏览器中显示2个网络摄像头输出。 到目前为止,只要我保持全屏/自助服务终端禁用,只要全屏显示,我的脚本会暂停。 当我关闭webbrowser时脚本继续,我可以使用我的按钮打开一个新的浏览器,然后脚本再次暂停(目的是脚本无休止地循环而没有暂停)

import RPi.GPIO as GPIO
from time import sleep
import os
url1 = 'http://10.0.0.31/mjpg/video.mjpg'
url2 = 'http://10.0.0.32/mjpg/video.mjpg'
GPIO.setmode(GPIO.BCM)
array = [4,17]
GPIO.setup(array, GPIO.IN, pull_up_down=GPIO.PUD_UP)
os.system('chromium-browser --app=http://10.0.0.31/mjpg/video.mjpg --kiosk')
while True:
if ( GPIO.input(17) == False ):
    print('Button 1 Pressed')
    os.system('date')
    os.system('pkill chromium-browser')
    print (GPIO.input(17))
    os.system('chromium-browser --app=http://10.0.0.32/mjpg/video.mjpg --kiosk')
    sleep(0.5)
if ( GPIO.input(4) == False ):
    print('Button 2 Pressed')
    os.system('date')
    os.system('pkill chromium-browser')
    print (GPIO.input(4))
    os.system('chromium-browser --app=http://10.0.0.31/mjpg/video.mjpg --kiosk')
    sleep(0.5)
else:
    os.system('clear')
    print ('Press a key')
    sleep(0.1)

有没有办法解决这个问题而没有大的改变(因为我注意到很多人都是硒的粉丝,这不是一个选项)并且使用subprocess而不是os.system给出相同的结果。

1 个答案:

答案 0 :(得分:1)

发生这种情况的原因是因为os.system()等待进程完成,并且在此情况发生之前不会继续执行代码。使用“&”在命令结束时,命令不必完成,您的按钮仍然可用。

#Import libraries
import RPi.GPIO as GPIO
from time import sleep
import os

#Set up the URLs
url1 = 'http://10.0.0.31/mjpg/video.mjpg'
url2 = 'http://10.0.0.32/mjpg/video.mjpg'

#Set up GPIO pins
GPIO.setmode(GPIO.BCM)
array = [4,17]
GPIO.setup(array, GPIO.IN, pull_up_down=GPIO.PUD_UP)

#Open the first webpage
os.system('chromium-browser --app=http://10.0.0.31/mjpg/video.mjpg --kiosk & ')

while True:
    if ( GPIO.input(17) == False ):
        print('Button 1 Pressed')
        os.system('date')
        os.system('pkill chromium-browser')
        print (GPIO.input(17))
        os.system('chromium-browser --app=http://10.0.0.32/mjpg/video.mjpg --kiosk &')
        sleep(0.5)
    if ( GPIO.input(4) == False ):
        print('Button 2 Pressed')
        os.system('date')
        os.system('pkill chromium-browser')
        print (GPIO.input(4))
        os.system('chromium-browser --app=http://10.0.0.31/mjpg/video.mjpg --kiosk &')
        sleep(0.5)
else:
    os.system('clear')
    print ('Press a key')
    sleep(0.1)