So I got that HM-11 stuffed with TI's CC2541 chip and it took me hours to at least discover other devices. Don't understand me wrong, the CC is really powerful but a good documentation would be awesome ;)
Here is my sample Arduino code that will list BLE devices in range. The output is the devices (cropped) name and its address. Afterwards you can still communicate via UART.
I wrote this for Arduino DUE. For other Arduinos change Serial1 to a SoftwareSerial. However I am not sure if the module is okay with 5V levels, I found different specs on this.
You can check the manual here.
#define baud 9600
void setup()
{
// Open serial communications and wait for port to open:
Serial.begin(baud);
Serial1.begin(baud);
at("AT"); // check if working, always returns OK
at("AT+ROLE1"); // select master = central
at("AT+RESET"); // actually more a restart than a reset .. needed after ROLE
at("AT+SHOW1"); // include Bluetooth name in response
at("AT+IMME1"); // "work immediately", not sure what this does
at("AT+FILT0"); // show all BLE devices, not only HM ones
delay(1000); // wait a bit, NECESSARY!!
Serial1.print("AT+DISC?"); // here comes the magic
}
void at(char* cmd) {
Serial1.write(cmd);
Serial.print(cmd);
while(!Serial1.find("OK")) Serial.print(".");
Serial.println(" .. OK");
}
void loop() // run over and over
{
if (Serial1.available())
Serial.write(Serial1.read());
if (Serial.available())
Serial1.write(Serial.read());
}

Kommentare
Kommentar veröffentlichen