estructura BlueTooth
This commit is contained in:
parent
41d3d0faee
commit
76978ef25b
34
BlueTooth/Bluetooth3/Bluetooth3.ino
Executable file
34
BlueTooth/Bluetooth3/Bluetooth3.ino
Executable file
@ -0,0 +1,34 @@
|
|||||||
|
#include <SoftwareSerial.h>
|
||||||
|
SoftwareSerial BT1(4,2); // RX, TX recorder que se cruzan
|
||||||
|
|
||||||
|
void setup()
|
||||||
|
{
|
||||||
|
Serial.begin(9600);
|
||||||
|
Serial.println("Enter AT commands:");
|
||||||
|
BT1.begin(9600);
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop()
|
||||||
|
{
|
||||||
|
if (BT1.available())
|
||||||
|
Serial.write(BT1.read());
|
||||||
|
|
||||||
|
if (Serial.available())
|
||||||
|
{ String S = GetLine();
|
||||||
|
BT1.print(S);
|
||||||
|
Serial.println("---> " + S);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
String GetLine()
|
||||||
|
{ String S = "" ;
|
||||||
|
if (Serial.available())
|
||||||
|
{ char c = Serial.read(); ;
|
||||||
|
while ( c != '\n') //Hasta que el caracter sea intro
|
||||||
|
{ S = S + c ;
|
||||||
|
delay(25) ;
|
||||||
|
c = Serial.read();
|
||||||
|
}
|
||||||
|
return( S + '\n') ;
|
||||||
|
}
|
||||||
|
}
|
67
BlueTooth/Bluetooth4/Bluetooth4.ino
Executable file
67
BlueTooth/Bluetooth4/Bluetooth4.ino
Executable file
@ -0,0 +1,67 @@
|
|||||||
|
/*Cambio de configuracion del modulo bluetooth mediante comandos AT
|
||||||
|
para ello el modulo no debe estar vinculado con ningun dispositivo
|
||||||
|
bluetooth, en mi caso el led debe estar en modo intermitente, si esta
|
||||||
|
vinculado aparece encendido de forma permanente*/
|
||||||
|
int contador=1;
|
||||||
|
void setup()
|
||||||
|
{
|
||||||
|
//Led 13 para indicar final de operacion de configuracion AT
|
||||||
|
pinMode(13,OUTPUT);
|
||||||
|
//Velocidad del modulo bluetooth, 9600 por defecto
|
||||||
|
Serial.begin(9600);
|
||||||
|
//Apagamos el led 13
|
||||||
|
digitalWrite(13,LOW);
|
||||||
|
}
|
||||||
|
void loop()
|
||||||
|
{
|
||||||
|
//Es para realizar los cambios una sola vez
|
||||||
|
while (contador==1)
|
||||||
|
{
|
||||||
|
//Indicacion de tiempo de espera iniciado
|
||||||
|
digitalWrite(13,HIGH);
|
||||||
|
/*Tiempo de espera de 15 segundos (prudencial, se puede cambiar, depende de lo que tardes
|
||||||
|
en volver a conectarlos) para reconectar cables RX y TX del modulo bluetooth
|
||||||
|
a la placa Arduino ya que para programar esta deben estar desconectados*/
|
||||||
|
delay(5000);
|
||||||
|
//Indicacion de tiempo de espera finalizado
|
||||||
|
digitalWrite(13,LOW);
|
||||||
|
//Iniciamos comunicacion con modulo bluetooth mediante comandos AT
|
||||||
|
Serial.print("AT");
|
||||||
|
//Espera de 1 segundo según datasheet entre envio de comandos AT
|
||||||
|
delay(1000);
|
||||||
|
//Cambio de nombre donde se envia AT+NAME y seguido el nombre que deseemos
|
||||||
|
Serial.print("AT+NAMEFznBTSlv");
|
||||||
|
//Espera de 1 segundo según datasheet entre envio de comandos AT
|
||||||
|
delay(1000);
|
||||||
|
/*Cambio de la velocidad del modulo en baudios
|
||||||
|
Se envia AT+BAUD y seguido el numero correspondiente:
|
||||||
|
|
||||||
|
1 --> 1200 baudios
|
||||||
|
2 --> 2400 baudios
|
||||||
|
3 --> 4800 baudios
|
||||||
|
4 --> 9600 baudios (por defecto)
|
||||||
|
5 --> 19200 baudios
|
||||||
|
6 --> 38400 baudios
|
||||||
|
7 --> 57600 baudios
|
||||||
|
8 --> 115200 baudios
|
||||||
|
|
||||||
|
*/
|
||||||
|
//Serial.print("AT+BAUD4");
|
||||||
|
//Espera de 1 segundo según datasheet entre envio de comandos AT
|
||||||
|
//delay(1000);
|
||||||
|
//Configuracion Password, se envia AT+PIN y seguido password que queremos
|
||||||
|
Serial.print("AT+PIN4321");
|
||||||
|
//Espera de 1 segundo según datasheet entre envio de comandos AT
|
||||||
|
delay(1000);
|
||||||
|
//Mostramos tanto por puerto serial y por led la finalizacion de la
|
||||||
|
//configuracion AT del modulo bluetooth
|
||||||
|
Serial.print("OK Cambios Realizados correctamente");
|
||||||
|
digitalWrite(13,HIGH);
|
||||||
|
//Al tener contador=2 ya no se vuelve a repetir el while, a no ser que
|
||||||
|
//se produzca un reset, por tanto comenzaria un nuevo cambio de configuracion
|
||||||
|
|
||||||
|
contador=2;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
225
BlueTooth/README.md
Normal file
225
BlueTooth/README.md
Normal file
@ -0,0 +1,225 @@
|
|||||||
|
## Bluetooth
|
||||||
|
|
||||||
|
```c
|
||||||
|
const byte LED = 13;
|
||||||
|
const byte BTPWR = 12;
|
||||||
|
String nombreBT= "FznBTS";
|
||||||
|
char velocidad ='4';//9600
|
||||||
|
String pass="11111";
|
||||||
|
|
||||||
|
void setup() {
|
||||||
|
pinMode(LED,OUTPUT);
|
||||||
|
pinMode(BTPWR, OUTPUT);
|
||||||
|
digitalWrite(LED, LOW);
|
||||||
|
digitalWrite(BTPWR, HIGH);
|
||||||
|
Serial.begin(9600);
|
||||||
|
Serial.print("AT");
|
||||||
|
delay(1000);
|
||||||
|
Serial.print("AT+NAME");
|
||||||
|
Serial.print(nombreBT);
|
||||||
|
delay(1000);
|
||||||
|
Serial.print("AT+BAUD");
|
||||||
|
Serial.print(velocidad);
|
||||||
|
delay(1000);
|
||||||
|
Serial.print("AT+PIN");
|
||||||
|
Serial.print(pass);
|
||||||
|
delay(1000);
|
||||||
|
digitalWrite(LED,HIGH);
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop() {
|
||||||
|
|
||||||
|
}
|
||||||
|
```
|
||||||
|
----
|
||||||
|
|
||||||
|
```
|
||||||
|
#include <SoftwareSerial.h>
|
||||||
|
|
||||||
|
/* Programa el modulo bluetooth HC-06 con un nuevo:
|
||||||
|
NOMBRE (Nombre de 20 caracteres)
|
||||||
|
PIN (Clave de cuatro numeros)
|
||||||
|
BPS (Velocidad de conexion en baudios)
|
||||||
|
|
||||||
|
Tienda donde se compro el modulo: http://dinastiatecnologica.com/producto/modulo-bluetooth-hc-05/
|
||||||
|
By: http://elprofegarcia.com
|
||||||
|
|
||||||
|
CONEXIONES:
|
||||||
|
ARDUINO BLUETOOTH
|
||||||
|
5V VCC
|
||||||
|
GND GND
|
||||||
|
PIN 2 TX
|
||||||
|
PIN 3 RX
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
SoftwareSerial blue(2, 3); //Crea conexion al bluetooth - PIN 2 a TX y PIN 3 a RX
|
||||||
|
|
||||||
|
char NOMBRE[21] = "FznBTSlave"; // Nombre de 20 caracteres maximo
|
||||||
|
char BPS = '4'; // 1=1200 , 2=2400, 3=4800, 4=9600, 5=19200, 6=38400, 7=57600, 8=115200
|
||||||
|
char PASS[5] = "4321"; // PIN O CLAVE de 4 caracteres numericos
|
||||||
|
|
||||||
|
void setup()
|
||||||
|
{
|
||||||
|
blue.begin(9600); // inicialmente la comunicacion serial a 9600 Baudios (velocidad de fabrica)
|
||||||
|
pinMode(13,OUTPUT);
|
||||||
|
digitalWrite(13,HIGH); // Enciende el LED 13 durante 4s antes de configurar el Bluetooth
|
||||||
|
delay(2000);
|
||||||
|
|
||||||
|
digitalWrite(13,LOW); // Apaga el LED 13 para iniciar la programacion
|
||||||
|
|
||||||
|
blue.print("AT"); // Inicializa comando AT
|
||||||
|
delay(1000);
|
||||||
|
|
||||||
|
blue.print("AT+NAME"); // Configura el nuevo nombre
|
||||||
|
blue.print(NOMBRE);
|
||||||
|
delay(1000); // espera 1 segundo
|
||||||
|
|
||||||
|
blue.print("AT+BAUD"); // Configura la nueva velocidad
|
||||||
|
blue.print(BPS);
|
||||||
|
delay(1000);
|
||||||
|
|
||||||
|
blue.print("AT+PIN"); // Configura el nuevo PIN
|
||||||
|
blue.print(PASS);
|
||||||
|
delay(1000);
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop()
|
||||||
|
{
|
||||||
|
digitalWrite(13, !digitalRead(13)); // cuando termina de configurar el Bluetooth queda el LED 13 parpadeando
|
||||||
|
delay(100);
|
||||||
|
}
|
||||||
|
```
|
||||||
|
----
|
||||||
|
|
||||||
|
```
|
||||||
|
#include <SoftwareSerial.h>
|
||||||
|
SoftwareSerial BT1(4,2); // RX, TX recorder que se cruzan
|
||||||
|
|
||||||
|
void setup()
|
||||||
|
{
|
||||||
|
Serial.begin(9600);
|
||||||
|
Serial.println("Enter AT commands:");
|
||||||
|
BT1.begin(9600);
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop()
|
||||||
|
{
|
||||||
|
if (BT1.available())
|
||||||
|
Serial.write(BT1.read());
|
||||||
|
|
||||||
|
if (Serial.available())
|
||||||
|
{ String S = GetLine();
|
||||||
|
BT1.print(S);
|
||||||
|
Serial.println("---> " + S);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
String GetLine()
|
||||||
|
{ String S = "" ;
|
||||||
|
if (Serial.available())
|
||||||
|
{ char c = Serial.read(); ;
|
||||||
|
while ( c != '\n') //Hasta que el caracter sea intro
|
||||||
|
{ S = S + c ;
|
||||||
|
delay(25) ;
|
||||||
|
c = Serial.read();
|
||||||
|
}
|
||||||
|
return( S + '\n') ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
```
|
||||||
|
----
|
||||||
|
|
||||||
|
Cambio de configuración del módulo bluetooth mediante **comandos AT**.
|
||||||
|
|
||||||
|
Para ello el módulo no debe estar vinculado con ningún dispositivo bluetooth,
|
||||||
|
en este caso el led debe estar en modo intermitente, si esta vinculado, el led
|
||||||
|
queda encendido de forma permanente.
|
||||||
|
```c
|
||||||
|
int contador=1;
|
||||||
|
|
||||||
|
void setup(){
|
||||||
|
//Led 13 para indicar final de operacion de configuracion AT
|
||||||
|
pinMode(13,OUTPUT);
|
||||||
|
//Velocidad del modulo bluetooth, 9600 por defecto
|
||||||
|
Serial.begin(9600);
|
||||||
|
//Apagamos el led 13
|
||||||
|
digitalWrite(13,LOW);
|
||||||
|
}
|
||||||
|
void loop(){
|
||||||
|
while (contador==1) { // Es para realizar los cambios una sola vez
|
||||||
|
digitalWrite(13,HIGH);// Indicacion de tiempo de espera iniciado
|
||||||
|
/*Tiempo de espera de 5 segundos
|
||||||
|
(prudencial, se puede cambiar, depende de lo que tardes en volver a conectarlos)
|
||||||
|
para reconectar cables RX y TX del modulo bluetooth al Arduino,
|
||||||
|
ya que para programar esta deben estar desconectados*/
|
||||||
|
delay(5000);
|
||||||
|
digitalWrite(13,LOW); // Indicacion de tiempo de espera finalizado
|
||||||
|
Serial.print("AT"); // Inicio comunicacion con modulo bluetooth mediante comandos AT
|
||||||
|
delay(1000); // Espera de 1 segundo según datasheet entre envio de comandos AT
|
||||||
|
Serial.print("AT+NAMEFznBTSlv"); // Cambio de nombre donde se envia AT+NAME y seguido el nombre que deseemos
|
||||||
|
delay(1000); // Espera de 1 segundo según datasheet entre envio de comandos AT
|
||||||
|
|
||||||
|
/*Cambio de la velocidad del modulo en baudios
|
||||||
|
Se envia AT+BAUD y seguido el numero correspondiente:
|
||||||
|
1 --> 1200 baudios
|
||||||
|
2 --> 2400 baudios
|
||||||
|
3 --> 4800 baudios
|
||||||
|
4 --> 9600 baudios (por defecto)
|
||||||
|
5 --> 19200 baudios
|
||||||
|
6 --> 38400 baudios
|
||||||
|
7 --> 57600 baudios
|
||||||
|
8 --> 115200 baudios*/
|
||||||
|
|
||||||
|
//Serial.print("AT+BAUD4");
|
||||||
|
//delay(1000); // Espera de 1 segundo según datasheet entre envio de comandos AT
|
||||||
|
Serial.print("AT+PIN4321"); // Config Password, se envia AT+PIN seguido del password
|
||||||
|
delay(1000); // Espera de 1 segundo según datasheet entre envio de comandos AT
|
||||||
|
|
||||||
|
//Informe por puerto serial y por led la finalizacion de la configuracion AT
|
||||||
|
//del modulo bluetooth
|
||||||
|
Serial.print("OK Cambios Realizados correctamente");
|
||||||
|
digitalWrite(13,HIGH);
|
||||||
|
|
||||||
|
// Si contador=2, ya no se vuelve a repetir el while, a no ser que
|
||||||
|
// se produzca un reset, por tanto comenzaria un nuevo cambio de configuración
|
||||||
|
contador=2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|
### Conexiones
|
||||||
|
|HC - 06 | ARDUINO|
|
||||||
|
|-|-|
|
||||||
|
|**`VCC`**|**5V** |
|
||||||
|
|**`GND`**|**GND** |
|
||||||
|
|**`TXD`**|**10** |
|
||||||
|
|**`RXD`**|**11** |
|
||||||
|
|
||||||
|
```c
|
||||||
|
#include <SoftwareSerial.h>
|
||||||
|
|
||||||
|
SoftwareSerial miBT(10,11);
|
||||||
|
byte pepe;
|
||||||
|
|
||||||
|
void setup() {
|
||||||
|
Serial.begin(9600);
|
||||||
|
Serial.print("Listo");
|
||||||
|
miBT.begin(9600);
|
||||||
|
pepe = map(analogRead(A0), 0 , 1023, 0, 99);
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop() {
|
||||||
|
if(miBT.available()) {
|
||||||
|
Serial.write(miBT.read()); //lee BT y envia a Arduino
|
||||||
|
}
|
||||||
|
if(Serial.available()) {
|
||||||
|
miBT.write(map(analogRead(A0), 0 , 1023, 0, 99)); // lee Arduino y envia a BT
|
||||||
|
miBT.write(pepe);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
Loading…
Reference in New Issue
Block a user