Compañeros tengo un problema con un modulo bluetooth, el cual lo quiero configurar para que se conecte a una dirrecion especifica de otro modulo bluetooth, pero el comando AT+CMODE( que lo tengo que poner a cero para poder conectarme a otro dispositivo)no funciona igualmente el comando AT+BIND( que es donde tengo que escribir la direccion del otro dispositivo)
El resto de comandos funciona correctamente.
AT+PIN
AT+ROLE
AT+NAME
AT+BAUD, etc
Es un HC-05 modelo ZS-040..Estube averiguando y ya descubri cuales son todos sus comandos presionando AT+HELP, ahora solo esta en ver cual es el reemplazo de los comandos CMODE Y BIND, cualquier ayuda es bienvenida.
* Command Description *
* ---------------------------------------------------------------- *
* AT Check if the command terminal work normally *
* AT+RESET Software reboot *
* AT+VERSION Get firmware, bluetooth, HCI and LMP version *
* AT+HELP List all the commands *
* AT+NAME Get/Set local device name *
* AT+PIN Get/Set pin code for pairing *
* AT+BAUD Get/Set baud rate *
* AT+LADDR Get local bluetooth address *
* AT+ADDR Get local bluetooth address *
* AT+DEFAULT Restore factory default *
* AT+RENEW Restore factory default *
* AT+STATE Get current state *
* AT+PWRM Get/Set power on mode(low power) *
* AT+POWE Get/Set RF transmit power *
* AT+SLEEP Sleep mode *
* AT+ROLE Get/Set current role. *
* AT+PARI Get/Set UART parity bit. *
* AT+STOP Get/Set UART stop bit. *
* AT+INQ Search slave model *
* AT+SHOW Show the searched slave model. *
* AT+CONN Connect the index slave model. *
* AT+IMME System wait for command when power on. *
* AT+START System start working. *
* AT+UUID Get/Set system SERVER_UUID . *
* AT+CHAR Get/Set system CHAR_UUID . *
* -----------------------------------------------------------------*
* Note: (M) = The command support master mode only. *
Compañeros encontre la solucionla queria postear hace dias pero no e tenido mucho tiempo y ahora estoy un poco libre.
Ya que siempre e usado los modulos bluetooh normales esta es la primera vez que uso los modulos bluetooth 4.0, en fin si que funcionan diferente a los modulo bluetooth normales.
Para poder tener un enlace maestro esclavo, necesariamente use un arduino en el modulo maestro( EN MI CASO USE ARDUINO MEGA) para poder darle las ordenes y que haga el enlace con el otro modulo( en mi caso un arduino nano). Con el comando AT+INQ, busco todos los modulos esclavos que estan disponibles asignandole un numero orden a cada modulo y mostrando la direccion en hexadecimal, como yo solo tengo un modulo esclavo solo me mostraba un solo dato.
Para poder conectarse con el modulo esclavo simplemente enviamos el siguiente comando AT+CONNxx, donde xx es el numero de orden del numero de esclavo a conectar, asi que en mi caso es AT+CONN1, y al hacer esto automaticamente pasa a modo coneccion, donde ya podemos enviar datos.
Para el modulo esclavo es lo mismo como los otros modulos solo lo ponemos como esclavo con AT+ROLE0.
Tuve otro problema que es la distancia de coneccion, y solo me tiro hasta 5 metros, no se porque pues en la hoja tecnica dice hasta 100 metros, lo probe al aire libre e igual seguia el problema, investigando encontre el comando AT+POWE que se encarga de la potencia del modulo en decibeles, poniendolo en POWE3 ( a 6 decibeles, el maestro y el esclavo igual no alcanse una coneccion mayor a 5 metros, como no requeria de mucha distancia no fue mcho problema, pero no resolvi ese problema, igual mi sistema ya esta funcionando.
Adjunto el codigo del maestro:
//#include <SoftwareSerial.h>
//SoftwareSerial BT1(10, 11); // RX | TX
void setup()
{
Serial2.begin(9600);
pinMode(22, OUTPUT); // Al poner en HIGH forzaremos el modo AT
pinMode(23, OUTPUT); // cuando se alimente de aqui
digitalWrite(23, HIGH);
delay (500) ; // Espera antes de encender el modulo
Serial.begin(9600);
Serial.println("Levantando el modulo HM-100");
digitalWrite (22, HIGH); //Enciende el modulo
Serial.println("DIGITAR COMANDOS AT:");
/* Serial2.println("AT");
delay(1000);
Serial2.println("AT+RENEW");
delay(2000);
Serial2.println("AT+ROLE1");
delay(2000);
Serial2.println("AT+POWE3");
delay(2000);
Serial2.println("AT+INQ");
delay(5000);
Serial2.println("AT+CONN1");
delay(100);*/
}
void loop(){
if(Serial2.available()) // Si llega un dato por el puerto BT se envía al monitor serial
{
Serial.write(Serial2.read());
}
if(Serial.available()) // Si llega un dato por el monitor serial se envía al puerto BT
{
Serial2.write(Serial.read());
}
}
se me paso que pusiste que era BLE 4.0 arriba ,pero tambien pusiste HC-05 ,y creo que ese modelo no es BLE 4.0....de hecho los dispositivos apple no funcionan con los HC-05 por ese motivo,los BLE 4.0 son los HC-08 y HC-10