Ich besitze zwei der SparkFun BlueSmirf Bluetooth-Module und möchte sie miteinander verbinden - eines als Master und eines als Slave. Es ist einfach, diese mit einem PC mit Putty als Master zu koppeln, aber einige der Befehle für das Modul erfordern einen Wagenrücklauf, um einen Befehl zu senden.
Wie kann ich diese Bluetooth-Module zwischen zwei Arduinos koppeln, ohne einen PC zu verwenden, um das Wagenbefehlssignal von Putty zu senden, während das Gerät konfiguriert wird?
Ich habe das Datenblatt und das Befehlsblatt für das Modul selbst gründlich durchgesehen, aber es enthält keine Informationen darüber, wie dieses Problem behoben werden kann.
Ich erkläre die Vorgehensweise in diesem Blog-Beitrag oder ausführlich in diesem Instructables . Hier ist vorerst der grundlegende Code, den Sie auf das Master-Gerät und das Slave-Gerät setzen können.
//Master code
void setup() {
Serial.begin(115200);
Serial.print("$$$");
delay(100);
Serial.println("SM,1"); delay(100);
Serial.println("C,000666123ABC");
delay(100);
Serial.println("---");
}
//Slave code
void setup() {
Serial.begin(115200);
Serial.print("$$$");
delay(100);
Serial.println("SM,0");
delay(100);
Serial.println("---");
}
Und einige Tipps, bevor Sie mit Bluesmirf weitermachen:
"$$$"
Befehl ist der einzige, dem kein Carriage Return folgt. Warum? Um die Sache natürlich zu verkomplizieren. Verwenden Sie print() für den "$$$"
Befehl und println()
für alle anderen Befehle.“---”
). Einige Befehle werden erst wirksam, nachdem Sie den Befehlsmodus verlassen haben (z. B. MS-Befehl).Sie können einen Wagenrücklauf über die Seriennummer senden, indem Sie Folgendes tun:
Serial.print("\r");
Sie können den Befehl (oder was auch immer Sie senden) und den Wagenrücklauf auch wie folgt in dieselbe Druckzeichenfolge einfügen:
Serial.print("Everybody Dance Now\r");
Bluetooth verwendet ein Host- und Gerätemodell. Ein Gerät benötigt einen Host, um zu kommunizieren.
Die von Ihnen verwendeten Module sind Geräte, während Ihr PC ein Host ist.
Es ist nicht möglich, zwei Bluetooth-Geräte mit dem Serial Port Profile (SPP) miteinander zu koppeln. Sie können nur mit einem Host gekoppelt werden.
Anindo Ghosh
\n
oder\n\r
über\r\n
eine zu sendenSerial.print()
? Je nach verwendetem Protokoll erfordern einige serielle Geräte einen Wagenrücklauf, einen Zeilenvorschub oder ein CR-LF-Paar als Zeilenende-Trennzeichen.SpongeBob
Kevin Markus