Forum: PC-Programmierung Bluetooth-Verbindung zwischen Raspberry Pi und Modulen


von M. S. (buha)


Angehängte Dateien:

Lesenswert?

Hi,

ich habe ein kleineres Projekt. Und zwar agiert mein Raspi als 
Homeatomation-Server. Ich habe ein PHP-Skript das mir eine schöne 
Weboberfäche zaubert. Diese kann dann vom Handy oder Tablet aufgerufen 
werden.
Durch das drücken von Buttons werden Einträge in eine MySQL-Datenbank 
geschrieben.
Die Hauptaufgabe übernimmt mein Python-Skript das aus mehreren Modulen 
besteht.


-Es gibt ein Modul mit dem ich die MySQL-Datenbank auf Änderungen 
abfrage und über 433Mhz Lichter und Steckdosen (RSL) steuere.
-Ein weiters Modul verbindet sich mit meinem Bluetooth-Modul das in der 
Sprechanlage der Haustüre sitzt
-Ein weiters Modul verbindet sich mit meinem LED-CUBE 8x8x8 auf dem ich 
später meine akutellen Google-Kalendereintrag als Laufschrift übertragen 
will

Das Projekt steht soweit das alle Funktionen bis auf die mit dem Würfel 
perfekt funktionieren.

Jetzt zu meinem Problem:
Wenn ich eine Verbindung zu meinen Bluetooth-Modulen aufbaue wird diese 
nach 1-2 Tagen unterbrochen.
Ich muss dann mein Python-Script neu starten. Damit die Module wieder 
verbunden sind.

Lösungsanzätze:
1. Ich könnte versuchen den Status des Verbindung ständig abzufragen und 
bei einer Trennung eine neue Verbindung starten. Ich kenne aber keine 
Möglichkeit diesen Status mit Python abzufragen

2. Lieber wäre mir das ich keine Unterbrechung mehr bekomem. Aber ich 
kann einfach nicht nachvollziehen wer diese Verbindungstrennug 
verursacht.

Ich bin gespannt auf euere Tipps und Tricks

von M. S. (buha)


Lesenswert?

Hier wird sich doch bestimmt jemand mit Python bzw. Bluetooth auskennen? 
Die Module die ich verwende sind folgende:
1
-HC-05 (ebay.de)
2
-FB755 (datasphere.eu)


In meinem Raspbarry Pi sitzt folgender Dongle:
1
BIGtec Nano micro Bluetooth Mini USB Adapter Stick Dongle Class2 EDR
(http://www.amazon.de/gp/product/B003WJBZK0/ref=oh_details_o00_s00_i00?ie=UTF8&psc=1)

Könnte der Dongle für den Abbruch verantwortlich sein? Oder kann es am 
Raspberry Pi liegen? Oder gibt es irgend ein vom Stack vorgeschriebenes 
Timeout? Das normale Timeout das ich mit bluetooth.timeout() setzen kann 
ist auf 0 und somit deaktiviert.

von Bassti (Gast)


Lesenswert?

Also dein Quellcodebild ist kaum zu erkennen. Warum sollte man sich die 
Arbeit machen, dass zu erkennen?

Wieso gehst du davon aus, dass du ewig eine Bluetooth Verbindung haben 
kannst? Klar musst du was dafür tun, dass es in der Verbindung bleibt.
Wenn du dein Script einfach nur immer wieder starten musst, kannst du es 
doch im einfachsten Fall selbst aller 10 min starten... Dann ist 
schlimmstenfalls 10 min die Verbindung weg... alternativ nachschauen ob 
noch eine Verbindung besteht... Könnte man eigene Timeouts für 
Antwortzeiten festlegen...

Grüße

Basti

von M. S. (buha)


Lesenswert?

Der Quellcode ist nur zur groben Visualisierung um was es mir eigentlich 
geht.

Was spricht gegen eine dauerhafte Verbindung? Solange keine 
Unterbrechung duch Stomstörung,Funkstörung oder ein Timeout verursacht 
wird sollte die Verbindung unendlich bestehen?

Der Grund der langen Verbindung ist die Tatsache das ein 
Verbindungsaufbau 1-4Sek dauert. Falls ich die Haustür geöffnet werden 
soll muss das sofort geschehen.

Mit was für einer Funktion kann ich in Python überprüfen ob eine 
Verbindung noch besteht? Und wie kann ich nach einem abbruch die 
Verbindung wieder aufbauen? Nach einem sock.close() bekomme ich sofort 
einen Fehler beim Verbindungsaufbau.

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.