Hallo Leute,
ich bin relativ neu in der Welt des Raspberry Pi, bis jetzt habe ich mich viel mit den Arduino boards und anderen µC beschäftigt.
Nachdem ich mich mit dem Arduino ganz gut auskenne, hab ich mir bald einmal gedacht beides zu verbinden. Also hab ich schnell mal ein kleines Programm für Arduino geschrieben, mit diesem kann ich über eine Serielle Schnittstelle eine led ein und ausschalten. Die Schnittstelle, stellt ein Bluetooth Modul HC05 dar. Den RPi hab ich mit Wlan an das netzwerk gebunden und mit einem Bluetooth dongle will ich mit dem Arduino reden. Das hat auch soweit funktioniert. Ein nettes Python skript erledigt das problemlos.
Weiters wollte ich dann auf einer html seite einen radiobutton auswählen dann auf einen knopf drücken und dadurch die led steuern. Wenn ich auf den Button klicke sollte sich ein cgi Skript (geschrieben mit python) öffnen und anschließend die BT Verbindung aufbauen, entsprechenden String senden und wieder beenden und die html Seite wieder anzeigen.
Alllerrdings: Wenn ich auf den button klicke kommt eine Fehlermeldung die sich (so denke ich) auf folgende Zeilen reduzieren lässt:
<class 'serial.serialutil.SerialException'>: could not open port /dev/rfcomm1: [Errno 13] Permission denied: '/dev/rfcomm1'
args = ("could not open port /dev/rfcomm1: [Errno 13] Permission denied: '/dev/rfcomm1'",)
errno = None
filename = None[code]
message = "could not open port /dev/rfcomm1: [Errno 13] Permission denied: '/dev/rfcomm1'"
strerror = None
Mein cgi skript schaut folgendermaßen aus:
#!/usr/bin/env python
import cgi
import cgitb
import serial
from time import sleep
cgitb.enable()
bluetoothSerial = serial.Serial("/dev/rfcomm1", baudrate=9600)
print "Content-type: text/html\n\n"
form = cgi.FieldStorage()
if "subject" not in form:
print "<h1>Neither radio button was selected.</h1>"
else:
text = form["subject"].value
print "<h1>Radio button chosen:</h1>"
print cgi.escape(text)
bluetoothSerial.write(text)
Alles anzeigen
Ich schätze mal dass der apache user keine Rechte hat eine rfcomm aufzubauen. Aber ich weiß nicht so recht wie ich das ändern kann, weil ich durch diese rechte sache noch nicht so richtig durchblicke (vielleicht hat jemand ein gutes Tutorial für mich?).
Hat jemand eine Idee wie ich das Problem lösen kann? Wäre sehr dankbar!