ich bin nicht ganz so fit in Python, generell aber tiefere Kenntnisse in Software Entwicklung.
Ich möchte mit meinem kleinen Projekt, auf einem Raspberry mit einem Touch Display eine Website aufrufen, scannt eine Person seinen RFID Token, öffnet das Python Skript eine weitere URL und übergibt die ID des RFID Token.
Das ganze habe ich mal mit Selenium und dem Chromium Browser realisiert.
Ich würde gern meinen Code mal hier Teilen, mit der Bitte um Hinweis, ob der Code so ok ist und was ich definitiv noch anpassen muss. Ich denke da grade an Error Handling.
Ich würde auch gern das Skript abbrechen, falls der Browser geschlossen wird.
Code: Alles auswählen
#!/usr/bin/env python
import RPi.GPIO as GPIO
from mfrc522 import SimpleMFRC522
import time
import mouse
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
reader = SimpleMFRC522()
signalPIN = 12
GPIO.setup(signalPIN, GPIO.OUT)
def initBrowser():
chrome_options = Options()
chrome_options.add_argument("kiosk")
chrome_options.add_experimental_option("useAutomationExtension", False)
chrome_options.add_experimental_option("excludeSwitches", ["enable-automation"])
browser = webdriver.Chrome(options=chrome_options)
global_browser = browser
browser.get('http://localhost/')
return browser
# small funktion to change current page in browser
def navigate(browser, url):
if browser is None:
print('navigation not available')
else:
browser.get(url)
def beep():
GPIO.output(signalPIN, 1)
time.sleep(0.1)
GPIO.output(signalPIN, 0)
try:
print('Browser wird geöffnet')
browser = initBrowser()
while (True):
id, text = reader.read()
beep()
mouse.move(1,0,False,1)
uid_string = str(id)
url = 'http://localhost/scantoken/' + uid_string
print('Rufe Seite: "' + url + '" auf')
navigate(browser, url)
except KeyboardInterrupt:
GPIO.cleanup()
raise
Vielen Dank