This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

Bluetooth
#1
Hallo,
Sehe ich das richtig, dass es für die aktuelle Phyphox Version (1.0.16) keine BLE Unterstützung gibt, sondern nur für die zukünftige Version? Das heißt, wenn ich mit der aktuellen Phyphox-Version arbeiten möchte (Schule) und nicht mit der Beta-Version, dann kann ich den ESP32 (mit BLE) nicht verwenden, sondern muss z.B. ein HC05-Bluetooth-Modul (klassisches Bluetooth) verwenden?

Wenn ich das HC-05 verwende bekomme ich allerdings immer den Fehler "Line 11: Could not open bluetooth connection: read failed, socket might closed or timeout, read ret: -1". Wo könnte denn hier der Fehler liegen?

Für Testzwecke habe ich folgenden Arduino-Sketch verwendet:

long int var = 0;

#include <SoftwareSerial.h> 
SoftwareSerial HC05(10, 11);

void setup() {
  HC05.begin(9600);
  Serial.begin(9600);
}

void loop ()
{
   var = millis();
   HC05.print(var);
   HC05.print(";");
   delay(1000);
}

Und der Phyphox-File schaut so aus:

<phyphox version="1.6" locale="en">
    <title>Bluetooth-test</title>
    <category>arduino</category>
    <description></description>
    <data-containers>
        <container size="1000" static="false">out</container>
    </data-containers>
    <input>
        <bluetooth address="AB:90:78:56:40:B9" devicename="JDY-31-SPP" protocol="simple" separator=";" out1="" out2="" out3="" out4="" out5="" rate="0" average="false">
            <output component="out">out</output>
        </bluetooth>
    </input>
    <output>
    </output>
    <analysis sleep="0"  onUserInput="false">
    </analysis>
    <views>
        <view label="test">
            <value label="var" size="1" precision="2" scientific="false" unit="" factor="1">
                <input>out</input>
            </value>
        </view>
    </views>
    <export>
    </export>
</phyphox>
Reply
#2
Erstmal eine kurze Warnung für alle anderen, die über diesen Beitrag stolpern könnten:
Klassisches Bluetooth war nur experimentell unter Android nutzbar und wird ab Version 1.1.0 nicht mehr unterstützt!

Version 1.1.0 wird zudem bald kommen, also wenn der Einsatz mit den Schülern nicht für die nächsten Wochen geplant ist, kann es sein, dass die Lösung hier dann schon nicht mehr funktioniert.

Nach diesen Warnungen zur Frage, die sich auf recht alten Code bezieht, der nie zu einem offiziellen Feature entwickelt wurde, so dass ich mir nicht mehr in allen Details ganz sicher bin. Wenn ich mich recht erinnere, benötigte diese alte Bluetooth-Unterstützung aber in jedem Fall Zeilenumbrüche um bereits gesendete Zeichen verarbeiten zu können und keinen Time Out zu bekommen. Außerdem berücksichtigt das Protokoll "simple" nicht das Attribut "separator", so dass in jedem Fall ein Zeilenumbruch nötig ist. Daher am besten mal ";" durch "\n" beim Arduino ersetzen. Ich bin mir nicht ganz sicher, ob das Problem wirklich daher stammt, da es mir etwas merkwürdig vorkommt, dass der Code scheinbar beim Einlesen der Datei schon Daten vom Gerät lesen möchte, aber andererseits war das experimenteller Code, so dass ich das nicht ausschließen würde und damit haben wir schonmal einen Anfang um den Fehler zu suchen.

Edit:
Erst aus Reflex auf Englisch geantwortet. Wahrscheinlich weil der Code "Englisch" aussieht. Hier die ursprüngliche Nachricht.

Ok, let me first place another warning for anyone else who might stumble upon this post:
Classic Bluetooth was only supported experimentally on Android and will no longer be available in version 1.1.0!

Version 1.1.0 is not that far away, so if you are not planing on using this feature with your students in the next few weeks, this might stop working by then.

That being said, this question refers to rather old code that has never been completed to be an official feature, so I have to guess a little bit. However, if I remember correctly, the old Bluetooth code required line breaks to process incoming data and to not run into a timeout. Also, the "simple" protocol does not respect the "separator" attribute and expects a line break in any case. So, instead of writing a ";", you should try "\n". I am not entirely sure if this is the problem here as it is a bit weird that the code tries to read from the device right away, but then again this was experimental code and this might be a starting point to search for the problem...
Reply
#3
Ich habe soeben die Vorschläge ausprobiert, allerdings ändert sich dadurch leider nichts am Problem.

Ist bereits ein konkretes Datum bekannt, ab dem es Version 1.1.0 geben wird? Also wird es im Mai schon möglich sein damit zu arbeiten? Es ist nämlich so, dass mit der Beta-Version alles perfekt funktioniert. Da sich dann aber alle SchülerInnen als Beta-Tester anmelden müssten (falls es bis dahin nicht ohnehin schon die Version 1.1.0 gibt), hätte ich für die Zwischenzeit eine Übergangslösung mit der aktuellen Phyphox-Version gesucht. Aber falls das nicht möglich ist, müssen sich die SchülerInnen eben als Beta-Tester registrieren...
Reply
#4
Nachdem wir das ursprüngliche Ziel, im Herbst 2018 fertig zu werden, so weit verfehlt haben, bin ich mit Prognosen sehr vorsichtig. Ich hoffe in wenigen Wochen die Beta-Version für iOS fertig zu bekommen und dann hängt es davon ab, wie viele Fehler dabei auftauchen und wie sich die anderen Baustellen für die Veröffentlichung (Editor und Dokumentation) entwickeln. Die Beta-Test-Variante dürfte wohl die zuverlässigste sein - mit den Implikationen, dass es bisher nur eine Testversion ist.

Zu dem Problem ist mir gerade noch aufgefallen, dass die Notation im Adress-Format Schwierigkeiten machen könnte. Seit Android 6 werden die Adressen wohl verschleiert (https://developer.android.com/about/vers...ardware-id), weswegen das nicht mehr funktionieren kann - zumindest nicht in der Weise wie wir das damals implementiert haben. Eventuell hilft es, die Adresse herauszunehmen und nur über den Namen zu gehen (stimmt "JDY-31-SPP" für den HC05?).
Reply
#5
Leider funktioniert auch das nicht („Line 11: Bluetooth device not found. (name filter: null, address filter: “). Naja um genau zu sein, ich verwende nicht den HC05 sondern das funktionsgleiche Modul JDY-31-SPP. Der Name müsste also passen.
Dann wird es am sinnvollsten sein, einfach mit der Beta-Version zu arbeiten.

Trotzdem vielen Dank für die Hilfe!  Smile
Reply


Forum Jump: