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