Hmmm....also bisher hab ich mit dem Ändern der Baudrate keinen Erfolg gehabt.
Die Ausgabe sieht immer noch wie folgt aus:
Code:
Send something in serial-monitor or in bluetooth-terminal
Here we go
69
82
82
79
82
61
50
48
49
13
10
69
82
82
79
82
61
49
48
49
13
10
-1
-1
-1
-1
Code:
#include <SoftwareSerial.h>
SoftwareSerial softSerial(2, 3); // RX, TX
void setup()
{
Serial.begin(9600);
softSerial.begin(115200);
delay(100);
softSerial.println("U,9600,N"); // Temporarily Change the baudrate to 9600, no parity
// 115200 can be too fast at times for NewSoftSerial to relay the data reliably
softSerial.begin(9600); // Start bluetooth serial at 9600
Serial.println("Send something in serial-monitor or in bluetooth-terminal");
delay(1000);
softSerial.println("AT");
delay(1000);
softSerial.println("AT+NAMEfunnylilbluetooththing");
Serial.println("Here we go");
delay(500);
// Reset all settings.
softSerial.write("AT+RENEW");
delay(300);
//AT+ROLE1 = slave
//AT+ROLE0 = is master
softSerial.write("AT+ROLE1");
delay(300);
//AT+PASSxxxxxx sets the password xxxxxx (6 characters)
softSerial.write("AT+PASS000001");
delay(300);
//The work mode only works for the Master HM-10.
//AT+MODE0 = Transmission Mode
//AT+MODE1 = Remote Control Mode
//AT+MODE2 = Modes 0 + 1
softSerial.write("AT+MODE0");
delay(300);
//AT+IMME0 = wait until "AT+START" to work
//AT+WORK1 = connect right now
softSerial.write("AT+IMME0");
delay(300);
softSerial.write("AT+BAUD9600");
delay(300);
//AT+START = AT+WORK
softSerial.write("AT+START");
delay(300);
}
void loop()
{
if (softSerial.available())
softSerial.print("AT");
delay(500);
Serial.println(softSerial.read());
if (Serial.available())
softSerial.println(Serial.read());
}
Ich wär momentan froh, wenn ich einfach auf ein AT ein OK bekommen würde...
//Edit: Der Chip auf meinem Modul ist übrigens ein CC2541.
- - - Aktualisiert - - -
Komisch....jetzt spuckt mir das HM-10 ein OK aus mit diesem Code:
Code:
#include <SoftwareSerial.h>
//SoftwareSerial softSerial(6, 5); // RX, TX HC-05
SoftwareSerial softSerial(2, 3); // RX, TX HM-10
void setup()
{
Serial.begin(9600);
softSerial.begin(9600); // Start bluetooth serial at 9600
Serial.println("Send something...");
delay(300);
softSerial.println("AT");
delay(300);
/* softSerial.write("AT+ROLE0");
delay(300);
softSerial.write("AT+PASS000001");
delay(300);
softSerial.write("AT+MODE2");
softSerial.write("AT+WORK1");
delay(300);
*/
}
void loop()
{
if (softSerial.available())
Serial.write(softSerial.read());
if (Serial.available())
softSerial.write(Serial.read());
}
Blöd nur, dass ich es bluetoothseitig vom Smartphone oder PC nicht finden kann.
- - - Aktualisiert - - -
Finally it works!
Code:
#include <SoftwareSerial.h>
//SoftwareSerial softSerial(6, 5); // RX, TX HC-05
SoftwareSerial softSerial(2, 3); // RX, TX HM-10
void setup()
{
Serial.begin(9600);
softSerial.begin(9600); // Start bluetooth serial at 9600
Serial.println("Send something...");
delay(300);
Serial.println("AT");
softSerial.println("AT");
delay(500);
Serial.println("AT+NAMEansgar");
softSerial.println("AT+NAMEansgar");
delay(500);
Serial.println("AT+PASS000001");
softSerial.println("AT+PASS000001");
delay(500);
Serial.println("AT+ROLE0");
softSerial.println("AT+ROLE0");
delay(500);
Serial.println("AT+MODE2");
softSerial.println("AT+MODE2");
delay(500);
Serial.println("AT+WORK1");
softSerial.println("AT+WORK1");
delay(500);
}
void loop()
{
if (softSerial.available())
Serial.write(softSerial.read());
if (Serial.available())
softSerial.write(Serial.read());
}
liefert im Serial-Monitor folgendes zurück:
Code:
Send something...
AT
AT+NAMEansgar
AT+PASS000001
AT+ROLE0
AT+MODE2
AT+WORK1
OK
+NAME=ansgar
OK
+PASS=000001
OK
+ROLE=0
OK
(die Ausgabe ist war was durcheinander....aber hauptsche es funktioniert erstmal! Jetzt weiß ich immerhin, dass ich den Chip nicht mit 5V gegrillt habe )
Probleme hat das softSerial.write() gemacht, wobei ich gestern getestet hatte, ob alles mit write() oder print() funktioniert. Scheinbar ist wirklich ein println() nötig!
- - - Aktualisiert - - -
Arrrrgh....doch nicht.
Er hat kurzzeitig reagiert auf die AT-Commands.
Aber nun nicht mehr. Jetzt bekomme ich keine Antwort mehr vom Modul.
Also habe ich mal mein Austauschmodul angeklemmt....und da bekomme ich mit exakt dem selben Code wieder so ne komische Zahlenabfolge.
Ich werd jetzt mal die Delays hochschrauben und sehen, obs daran liegt.
//Edit: Infos zum HM-10 gibts übrigens hier: http://www.jnhuamao.cn/showNews.asp?id=87
Lesezeichen