Forum: PC-Programmierung serielle Schnittstelle, daten mit Python weiterverarbeiten


von Miriam (Gast)


Lesenswert?

Hallo zusammen,

ich habe eine Microcontroller der mir die Daten über eine Bluetooth 
Schnittstelle sendet.
danach habe ich mein Ubuntu system folgendermaßen konfiguriert:
www.westernwillow.com/cms/blog/franco/creating-bluetooth-serial-port-ubu 
ntu
danach war es mir möglich mithilfe von putty eine Verbindung zu dem 
Microcontroller aufzubauen.
Nun wollte ich die Daten mithilfe von Python in eine Datenbank 
schreiben.
Als erstes wollte ich die Daten in der eclipse konsole ausgeben, was 
allerdings nicht funktioniert hat.
Eine Verbindung zu meinem microcontroller besteht aber, da die Signal 
LED nicht mehr blinkt.
der Controller sendet fortlaufend daten im format:
Temperatur 25.5
Temperatur 25.4
Temperatur 25.7
Temperatur 25.3
Temperatur 25.5
mein Programm code sieht bisher wie folgt aus:

def daten()
    f = file("/dev/rfcomm0")
    try:
        while True:
            print f.readLines()
    finally:
        f.close()
daten()

kann mir jemand sagen warum ich keine daten ausgeben kann

danke im voraus

von sebastian (Gast)


Lesenswert?

Hi,

warum nicht mit pySerial?

BSP:
1
ser = serial.Serial('/dev/ttyS1', 19200, timeout=1)
2
x = ser.read()          # read one byte
3
s = ser.read(10)        # read up to ten bytes (timeout)
4
line = ser.readline()   # read a '\n' terminated line
5
ser.close()

von Monty (Gast)


Lesenswert?

Miriam schrieb:
> def daten()
>     f = file("/dev/rfcomm0")
>     try:

Gehlt da nicht ein doppelpunkt hinter "def daten()"

von Miriam (Gast)


Lesenswert?

sorry, ja der doppelpunkt hab ich vergessen

@sebastian: wie kommst du auf "line" im dem code, das wird ja nirgends 
initalisiert:

ser = serial.Serial('/dev/ttyS1', 19200, timeout=1)
x = ser.read()          # read one byte
s = ser.read(10)        # read up to ten bytes (timeout)
line = ser.readline()   # read a '\n' terminated line
ser.close()

von sebastian (Gast)


Lesenswert?

Miriam schrieb:
> @sebastian: wie kommst du auf "line" im dem code, das wird ja nirgends
> initalisiert:

Hi,

wie meinst du das?
"line" wird genau an der stelle der Zuweisung initalisier?

readline() liest genau solage Zeichen von dem Port bis ein <CR> kommt 
und gibt diese als string zurück. Siehe: 
http://pyserial.sourceforge.net/shortintro.html#readline

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.