Text empfangen über BLE?

Servus liebe Arduino Gemeinde

Ich versuche über das Bluetooth des Arduino 101 einen Text/String zu empfangen!!
Hat jemand eine Idee oder einen Codeschnipsel mit dem ich längere Buchstabenreihen empfangen kann.
Also ich z.B "Baum" empfangen und etwas damit auswerten.

Danke schon jetzt für eure Hilfe!!!!

Mfg ben

Hast Du denn Deine Verbindung schon so weit, dass Du einzelne Zeichen empfangen und auf Serial ausgeben kannst?
Du weist das dieses Board eingestellt wurde und sich wahrscheinlich nur noch wenige damit beschäftigen werden?

Gruß Tommy

Einzelne Zeichen und Zahlen sind gar kein Problem.

Gruß Ben

Gut. Dann ist das Hauptproblem zu erkennen, wann Deine Zeichenkette zu Ende ist.
Entweder du sendest ein (Linefeed \n) am Ende oder Du sendest eine Zeichenkette fester Länge.
Am Ende musst Du die Zeichenkette mit '\0' terminieren.

Für Serial (und was anderes ist Dein BT ja auch nicht - Du musst nur Serial mit Deiner Variablen ersetzen) könnte es mit so aussehen (Es gibt noch mehr Varianten):

const byte IN_LEN = 20; // Puffergroesse Eingabe

boolean fertig = false; // Eingabe beendet
char inStr[IN_LEN];  // Lesepuffer

...

void loop() {
  if (Serial.available() > 0) {
    if (fertig = einlesen()) {
       // mache etwas mit der Zeichenkette in inStr
    }
  }
}

// true = fertig (LF oder zu lang), false = noch nicht fertig
boolean einlesen() {
static byte i = 0; // Positionsindex in inStr
  // wenn es schon eine vollstaendige Eingabe gab -> zuruecksetzen
  if (fertig) {
    fertig = false;  // neuer Anfang
    inStr[0] = '\0'; // Puffer initialisieren
    i = 0; // Positiojnsindex auf Anfang
  }
  char inputChar = Serial.read();
  // Wenn nicht Zeilenende und nicht Puffer voll
  if (inputChar != '\n' && i < IN_LEN -1) {
    // Zeichen in inStr schreiben
    inStr[i] = inputChar;
    inStr[++i] = '\0'; // Abschluss dahinter schreiben, um evtl. Debugausgaben richtig anzuzeigen
    return false;
  }  
  // Wenn noch Zeichen in Serial, diese vernichten
  // z.B. Wenn Eingabe zu lang war
  while (Serial.available() > 0) {
    inputChar = Serial.read();
  }
  return true;
}

Gruß Tommy

Dankeschön Tommy :slight_smile: