Ingeniería en Mantenimiento Industrial.
  • HOME
  • Arduino
  • Solidworks
  • TIENDA
  • Foro
  • RETO UNX
  • Shop

BLUETOOTH HC-06 | CONFIGURACIÓN CON ARDUINO

10/29/2013

64 Comments

 
Imagen
Hola que tal amigos, como lo prometido es deuda, en esta ocasión les traigo información sobre como configurar nuestro modulo Bluetooth HC-06, que también es conocido con el nombre clave LINVOR.

En este post te enseño a configurar las siguientes tres aspectos esenciales de este modulo mediante comandos AT que enviaremos a través de un ARDUINO UNO:

1.- BPS.
1.- NOMBRE.
2.- CONTRASEÑA.


Sin lugar a dudas la comunicación vía bluetooth ha logrado posicionarse como una de las favoritas para los usuarios de dispositivos móviles, sustituyendo a la anterior comunicación Infrarroja (IR), y es que permite enlazar a los dispositivos de una forma inalámbrica y sin necesidad de estar relativamente cerca el uno del otro. Por esta razón es que distintas compañías se han empeñado en facilitar cada vez mas el acercar este tipo de tecnología para incluirla en nuestra vida diaria, tanto que ahora es posible encontrar módulos bluetooth de bajo coste mismos que son totalmente configurables y de fácil implantación en nuestros proyectos de electrónica.

En esta ocasión y como se menciono en el titulo de este post, estaremos configurando el modulo HC-06 o también conocido como LINVOR, que es de los mas económicos y de fácil adquisición, para después ver en un post posterior como integrarlo en una aplicación ANDROID (Que diseñaremos nosotros mismos) para controlar el comportamiento de una placa ARDUINO UNO.

  • Aunque tenemos mucha información sobre este dispositivo en toda la Internet, la misma suele ser muy confusa tanto que puede llegar a frustrarte, por lo que se pretende hacer un proyecto integral ARDUINO-BLUETOOTH-ANDROID, donde al mismo tiempo se te proporcione con claridad y sin lugar a ambigüedades toda la información.   

DISPONIBLE EN NUESTRA ARDU-TIENDA

Imagen
Puedes adquirir este y muchos otros productos en nuestra tienda online, visinos dando clic en el siguiente enlace.


ArduTIENDA:
http://ardutienda.ecarty.com/store/product/7950/BLUETOOTH-HC-06-LINVOR


hoja de datos [data sheet]


Imagen
Es casi imposible comenzar a utilizar un dispositivo electronico sin su correspondiente hoja de datos (Data Sheet), por lo que puedes acceder a ella dando clic en la imagen de la izquierda. En ella encontraras aspectos mucho mas técnicos de los que veremos en el desarrollo de este articulo y que aunque no son de mucha importancia por el momento, nos sirven para conocer mejor a nuestro dispositivo. 


CONEXIÓN HC-06 Y ARDUINO


La conexión que tendrás que hace entre el bluetooth y el Arduino, sera como la que se muestra a continuación y aunque el modulo que aparece en la imagen no es el mismo que el HC-06 solo sirve como referencia, ya que nuestro modulo también cuenta con los mismos 4 pines para su conexión. Para resolver cualquier duda con la forma de conectar, te invito a que primero veas el vídeo que se encuentra al final.
Imagen

CÓDIGO PARA ARDUINO


Imagen
El código que presento en el video te lo facilito dando clic en la imagen de la izquierda, digo por aquello de que no lo quieras escribir todo desde cero. xD


ALGUNAS INDICACIONES ANTES DE EMPEZAR


  1. Para poder configurar el bluetooth a tu gusto, necesitamos que este no se encuentre unido a ningún otro dispositivo (Celular, Tablet, PC, etc), al momento que se intenta reprogramar ya que de lo contrario no podremos cambiar absolutamente ninguno de sus parámetros.
  2. En el momento que intentes cargar el sketch a tu placa ARDUINO, no puedes tener conectado el bluetooth, ya que de lo contrario te aparecerá un error en la pantalla, impidiéndote que grabes el Arduino hasta que retires el modulo en cuestión. 

64 Comments
Abraham Ramblas
11/1/2013 12:54:21 am

Y como programas para que funcione con tu celular android sin necesidad de internet???...asi como lo probaste en el laboratorio..

Reply
IngeROMA link
11/1/2013 05:27:48 am

Que honda Ramblas, mira si ya tienes hecha la aplicación y quieres que se quede instalada en tu dispositivo móvil, da clic en el botón "PACKAGE FOR PHONE" que se encuentra en el costado derecho del botón que te permite realizar la programación por bloques. En cuanto des clic al botón te aparecerá un submenú en donde tendrás que dar clic en "DOWNLOAD TO THIS COMPUTER", de ahí en delante solo la pasas a la memoria de tu dispositivo para instalarla.

Nota: Es posible que tu dispositivo diga que no puede instalar Aplicaciones no firmadas ya que no se trata de una aplicación oficial, por lo que tendrás que modificar ese permiso en la configuración de tu teléfono.

Esta es una imagen representativa por cualquier duda.
https://www.dropbox.com/s/8uq4epcbzcuj3yd/aplicacion.png

Saludos.

Reply
Ignacio link
2/14/2014 07:02:01 am

como hago para saber la mac ip para poner en el app inventor

Reply
yodavito
11/26/2013 01:51:41 pm

hola:
estoy trabajando con el modulo hc-06 y estoy estancado ya que los datos transmitidos desde un terminal hacia el arduino llegan de forma distinta, por ejemplo, la enviar el dato "1" en ASCII que es como lo envia un terminal me llega al puerto serie de arduino los datos "6-8" luego al enviar el dato "2" llega "24-8" no entiendo por que , si pudieras ayudarme seria de mucha ayuda ,
de antemano gracias

Reply
IngeROMA link
11/27/2013 01:24:21 am

Hola que tal Yodavito, claro que puedo ayudarte, sólo dos cosas:

1.- ¿El terminal lo diseñaste tú o cual estas usando?, porque podrías intentar usar el terminal que incluye el IDE de Arduino.

2.- Me gustaría poder ver tu código para ver si encuentro el problema.

Reply
yodavito
11/27/2013 02:53:03 am

Gracias por la atencion, he buscado ayuda en muchos blogs y foros y nada.

bueno me explico mejor, mi proyecto lo quiero controlar desde una app en android para ello ocupe app inventor pero como los datos recibidos a arduino no son los enviados desde la app pense que podia tener problemas en la app por ello ahora estoy enviando datos desde la app dentro del play store " Bluetooth SPP" recibo los datos con el modulo HC-06 e imprimiendolo en el terminal serie del IDE de arduino, ahi es donde me llegan los datos que antes mencione. pero aun tengo el mismo problema, por lo que descarte que fuera la app. tampoco creo que sea el arduino ya que conectando el RX con el TX y enviando datos llegan bien. lo unico que me queda es que fuese el modulo (lo que yo creo ) pero no se que pudiese ser.

adjunto el codigo de arduino , aunque es bastante simple .
--------------------------------------------------------------------------------------------------

void setup(){
Serial.begin(9600); //inicia el Hardware Serial, pin 0 y 1
}
void loop(){


if(Serial.available()>0){ //si hay dato disponible en el Hardware Serial

char c = Serial.read(); //leemos el dato del Hardware Serial
Serial.print(c);

}
}
-------------------------------------------------------------------------------------------------

cualquier acotacion,idea u otra cosa seria de gran ayuda ya que no veo por donde seguir descartando posibles problemas. espero con ansias tu respuesta y desde ya muchas gracias

IngeROMA link
11/27/2013 03:42:43 am

Hola nuevamente Yodavito, de verdad que tu código debería estar funcionando ya que a simple vista no tiene errores, lo he cambiado un poco y lo he simulado, como lo hago para hacer mis proyectos con bluetooth y esta funcional.

Lo único que se me ocurre, es que tengas mal las conexiones o el parámetro de velocidad entre el Bluetooth y tu Arduino aunque en teoría si fuese así no podrían ni comunicarse.

Recuerda el Tx del Bluetooth va con el Rx del Arduino
y el Rx del Bluetooth va con el Tx del Arduino

Configura tu Bluetooth con otra velocidad por ejemplo 115200.
Cámbiale el Nombre y la Contraseña como enseño en el vídeo de este articulo.

La captura de la simulación:
https://www.dropbox.com/s/z1bs647e8i4ecfn/Yodavito.JPG


De igual manera te invito a probar con este proyecto Integral donde muestro como hacer una comunicación entre Android Bluetooth y Arduino.

http://ingeerick.weebly.com/2/post/2013/11/proyecto-bsico-integral-i-aba-arduino-bluetooth-android.html

Saludos :)

IngeROMA link
11/27/2013 03:44:30 am

Este es el código que simule
_______________________________________________________

void setup(){
Serial.begin(9600); //inicia el Hardware Serial, pin 0 y 1
// Verifica que esta velocidad "9600" sea
// la misma que la de tu Bluetooth
}

void loop(){
if(Serial.available()>0){ //si hay dato disponible en el Hardware Serial
int c = Serial.read(); //leemos el dato del Hardware Serial
c = c-48; // Convierte los números del 0-9 de ASCII a DECIMAL
Serial.println(c);
}
}
________________________________________________________

Mauricio Dávalos
5/20/2014 04:42:58 am

#define LED 11
char dato;
String readString;

void setup(){
Serial.begin(9600);
pinMode(LED, OUTPUT);
}

void loop(){
leer_Dato();

if (readString.lenght() >0) {
if (readString == "B"){
Serial.println("APAGAR");
digitalWrite(LED, LOW);
}
else if( readString == "A"){
Serial.println("ENCENDER");
digitalWrite(LED, HIGH);
}
readString = "";
}
}

void leer_Dato(){
while(Serial.available()){
delay(10);
if (Serial.available() >0){
dato=Serial.read();
readString += dato;
}
}
}




este es mi còdigo amigo, me sale error con respecto al .length


ME PUEDES AYUDAR.. gracias

IngeROMA link
11/27/2013 05:40:51 am

Aún asi Yodavito, podemos hacer que funcione tu blueto tooth siempre y cuando los datos recibidos sean los mismos para cada cosa que mandes.

Reply
yodavito
11/27/2013 10:33:15 am

hola:

corri el codigo que mandaste, y sigo con lo mismo, llegan 2 numeros separados por un guion y cuando el numero se compone de mas de un digito llegan mas de 2 datos
, realmente no entiendo el porque, todos los codigos que he buscado en internet son muy parecidos,la conexion esta bien.
he probado conectando el rx y tx del modulo entre si y los datos que llegan a la app de android son los mismo que se envia, por lo que creo que el problema es como arduino interpreta los datos que recibe.
ademas tengo otro problema ( si lo se , soy un problematico) intente reconfigurar el modulo pero no puedo, no cambia nombre, clave o baudios, pense que podria estar configurado anteriormente con otra tasa(no a 9600 baudios) por lo que ajuste el codigo, pero al hacerlo me arroja signos raros, solo a 9600 aparece la respuesta en el monitor serie de arduino pero no hay cambio, cuando veo la señal desde un dispositivo movil sigue igual a como estaba.

muchas gracias por tu ayuda me aunque no he podido solucionar el problema me ha servido como guia.

saludos

Reply
IngeROMA link
11/27/2013 12:50:58 pm

Yodavito, como te comentaba aún podemos hacer que funcione tu proyecto y es con lo siguiente, si por ejemplo cada vez que mandas el número 1 desde la APP de Android aparece el mismo código "6-8" o cuando mandas el 2 aparece siempre "24-8" este código estoy seguro que va a funcionar, descargalo:

Lo programe para encender y apagar el LED del pin 13

https://www.dropbox.com/s/hp0artleyyc3u7q/Yodavito.ino

Sólo te tocaría investigar cual es el valor de cada carácter que quieras leer.

En cuanto al que no puedas cambiar los datos de tu dispositivo, se puede deber a que tienes algún dispositivo conectado a él, ya sea algún celular, tablet o computadora, desconectalos y veras que funciona.

Por cierto, con que placa de arduino estas trabajando? es la ARDUINO UNO?

Saludos :)



Reply
yodavito
11/27/2013 09:27:35 pm

hola:

si es un arduino uno.
había pensado lo del "mapeo" de los datos que llegan y al usarlos para controlar desde la app creo que no tendría problema, el inconveniente es que quiero tener en pantalla(de al app) el estado de sensores por lo que debo recibir los datos mediante el bluetooth, esos datos son analógicos por lo que me seria imposible usar la misma idea, por ello estoy buscando una solución para poder leer y recibir los datos como deberían.
el código que me envías es muy parecido a uno que tenia, al principio no me preocupe de la comunicacion asi que quede conforme con ello, pero luego me di cuenta de lo que te acabo de explicar, lo de recibir datos en la app :S
seguiré probando haber si consigo la forma.
de todas formas muchas gracias por el codigo

Aggeos
12/8/2013 08:35:04 am

Buen dia: Que app de android aplicas para utilizar esta conexion bluetooth?

Reply
IngeROMA link
12/8/2013 12:40:56 pm

Hola Aggeos, la aplicación que utilizo es propia y personalizada dependiendo de lo que necesite controlar, en base a eso así la programo.

En el siguiente link que manda a otro articulo de este blog, muestro como crear una aplicación y como enlazarla con Arduino, espero que te sirva

http://ingeerick.weebly.com/2/post/2013/11/proyecto-bsico-integral-i-aba-arduino-bluetooth-android.html

Saludos amigo :)

Reply
German
1/1/2014 12:11:26 pm

me sale el siguiente error cuando compilo el codigo de tu video y no ce a que se deba

error: array must be initialized with a brace-enclosed initializer

Reply
Miguel Martín
1/24/2014 03:24:03 am

Disculpa, estoy utilizando Xp, un Arduino Uno y el modulo HC-06, y estoy teniendo muchos problemas para entrar a modo AT. El procedimiento que realizó es conectar mi Dongle Bluetooth y agregar mi móludo HC-06. El puerto que me crea es el COM12. Entonces lo que hago es cargar el programa en el Arduino, esto a través del cable USB, y el Arduino me aparece como COM3. Ahora una vez que tengo cargado mi programa y he realizado las conexiones del HC-06 ¿cuál de los dos puertos debo utilizar? He intentado cargando el programa al arduino a través de COM3, y posteriormente cambiar seleccionar en el software de Arduino el COM12 (Que a veces ni siquiera me aparece), y cuando aparece me sale error al seleccionarlo. Así que no se bien como realizar la conexión, espero que me puedas brindar información más especifica del procedimiento.

Saludos!!

Reply
515161
4/11/2015 09:56:12 am

11515151654615605601

Reply
Maria2
2/10/2014 02:45:13 am

Buenas!
Como siempre nada sale a la primero, ni tercera...así que por favor ayudadme!
Tengo un Arduino UNO y el BT HC06. El caso es que sigo todos los pasos que describes, ejecuto para configurar el BT le cambio nombre vel y psw. Se hace maravilla con tus indicaciones!
Ok, ahora intento enlazar el BT desde arduino con mi galaxy S4, este lo ve me(con su nuevo nombre y con el viejo también) y me pide la contraseña....todo supuestamente ok. Pero el led del HC06 nunca deja de parpadear. La conexión está bien, tal y como inidcas con el cruce de cables.

¿Alguna idea???

Muchas gracias!!!

Reply
Itubal
11/29/2014 06:19:26 pm

Hola Maria2:
Yo tengo el mismo problema, el led del hc-06 no deja de parpadear y en el telefono (lo he probado con otros) no cambia el icono a conectado.
¿Resolviste el problema?

Reply
Omar
7/27/2015 03:04:21 am

Tengo exactamente el mismo problema, la luz roja no deja de parpadear. Alguien logró solucionar esto??

Saludos

Reply
Pablo
2/24/2016 06:58:26 pm

El enlace o vinculo en la lista de dispositivos bluetooth disponibles del celular, es simplemente una memorización de la clave y vinculo. Pero recién cuando una aplicación accede al uso del dispositivo vinculado realmente conecta con el HC-06, y recién ahí dejará de parpadear el led.

Jesús M.
3/3/2014 11:36:29 am

Hola, estoy tratando de conectar el modulo hc-06 a una placa arduino mega pero no he tenido ningún éxito para lograr la comunicacion y enviarle datos, podrìa aconsejarme algo por favor? :)

Reply
Alvaro Macias
3/23/2014 08:30:45 am

Muchas gracias por este tutorial, me fue muy útil.

Reply
milena
4/19/2014 09:44:03 am

holaa quisiera que alguien me colaborara respecto a como puedo enviar dos datos de manera serial a arduino, es que tan solo lee de a un dato.Muchas gracias

Reply
emmauel
4/30/2014 04:26:39 pm

hola que tal, ultimamente he estado leyendo y haciendo pruebas con el hc-06, ahorita solo he intentado hacer una conexion exitosa entre el modulo y un android, he hecho la aplicacion en app inventor, pero, aun cuando ya he vinculado el hc.06 con el telefono, este me marca error 507 a la hora de poner en la aplicacion conectar con BT, cabe destacar que solo tengo alimentado el ht-06 y no esta conectado de tx o rx, ya hice varias apps y no obtengo un resultado favorable quisiera saber si me pueden ayudar que ya estoy desesperado

Reply
Rodrigo
5/1/2014 03:48:31 am

Que tal soy nuevo en esto, neecito ayuda e ideas de como puedo hacer que el modulo hc-06 tome la temperatura de un lm35 y la envie a mi ordenador y/o computadora.
Si cuentan con ejemplos mucho mejor.
Saludos

Reply
Jhonatan link
5/9/2014 12:27:01 am

hola buen dia yo usare este modulo para controlar un tanque de juguete y un brazo robotico por medio de android ya tengo las app pero quisiera q me ayudaras con el codigo ya tengo los comandos AT para enviar soy nuevo en esto, Gracias por tu ayuda

Reply
ARMAHAN
5/14/2014 07:36:20 am

buenas men, tengo un problema lo que pasa es que el arduino no me detecta el puerto COM del bluetooth y no se por que, te paso el programa para que le heches un vistaso y me digas tu opinion:
#include <Servo.h>
#define PINMOTOR1 7 //in conectado al ESC, corresponde al pin 8
#define PINMOTOR2 8
#define PINMOTOR3 9
#define PINMOTOR4 10
#define MAXIMOPWM 150 //Son grados Podia llegar hasta 180
#define MINIMOPWM 60 //por si acaso empezar con un valor inferior, mi motor no arranca hasta 62
#define PASO 1 // Incrementos del teclado
#define BAUD 9600 //velocidad puerto serial funciona hasta 38400

Servo mysecondservo;
Servo mythirdservo;
Servo myfourthservo;
int pulsoMotor;
int ordenTeclado=0;
Servo myservo; // creamos el motor como elemento en la libreria
byte recibiendoByte ;
boolean iniciado = false;
void setup()
{
Serial.begin(BAUD);
Serial1.begin(9600); //bluetooth
myservo.attach(PINMOTOR1); // inicializo el ESC en el pin determinado
mysecondservo.attach(PINMOTOR2);
mythirdservo.attach(PINMOTOR3);
myfourthservo.attach(PINMOTOR4);
Serial.println(" Comienzo del test"); //
Serial.println (" Pulsar 'A' para arrancar \n Cuando escuche el pitido de confirmación");
while ( iniciado==false ){
myservo.write(0); // Aramado
mysecondservo.write(0);
mythirdservo.write(0);
myfourthservo.write(0);
recibiendoByte = Serial.read(); // Leemos el Byte recibido
if (recibiendoByte == 65 || recibiendoByte ==97) { // A o a Mayusculas o minusculas
iniciado=true;
}
}
Serial.println("inicio del loop principal \n Para subir controlar velocidad pulse \n 'A' para subir \n 'Z' para bajar \n 'S' para terminar Stop \n");
}

void loop(){

ordenTeclado =OrdenSubirBajar ();

if (ordenTeclado != 0) { // Distinto de Cero
pulsoMotor = pulsoMotor + ordenTeclado;

pulsoMotor= constrain( pulsoMotor , MINIMOPWM, MAXIMOPWM); //
myservo.write(pulsoMotor); //Mientras no hay cambios, automaticamente se siguen enviando los mismos pulsos
mysecondservo.write(pulsoMotor);
mythirdservo.write(pulsoMotor);
myfourthservo.write(pulsoMotor);
Serial.print("Velocidad del pulso--> ");
Serial.println (pulsoMotor);
}

delay (150); //delay para no colapsar
}

int OrdenSubirBajar (){
int orden=0;
// Serial.flush();// Limpiamos el Bufer de entrada (evitar efecto ametralladora)
//delay (150);

if (Serial.available() > 0) {
recibiendoByte = Serial.read(); // Leemos el Byte recibido
if (recibiendoByte == 65 || recibiendoByte ==97) { // A o A Mayusculas o minusculas
Serial.println( " SUBIR");
orden = PASO;
}
if (recibiendoByte == 90 || recibiendoByte ==122) { // Z o z Mayusculas o minisculas
Serial.println( " BAJAR");
orden = -PASO;
}
if (recibiendoByte == 83 || recibiendoByte == 115){ // t o T Mayusculas o minisculas
Serial.println( " Stop!!");
orden = -(pulsoMotor- MINIMOPWM); // Deja el pulso en MINIMOPWM
}
}
return (orden);
}

Reply
willy
5/24/2014 01:33:10 pm

intentar anexando la libreria #include <SoftwareSerial.h>

Reply
Ricardo Gonzalez
5/24/2014 01:39:01 pm

Hola que tal, tengo un problema, compile este programa y ahora ya no puedo conectarme al bluetooth, me dice que es imposible hacer la conexión, el bluetooth sigue parpadeando su led, el rojo que esta en la esquina inferior, que crees que haya pasado???

Reply
Charly
7/22/2014 06:30:03 pm

Hola IngeROMA espero que me pudieras ayudar.

Estoy tratatando de hacer una app para controlar mi arduino desde android a traves de bluetooth pero cuando envio los datos desde el android no logro que el arduino los reciba y no se si el problema es que no los estoy leyendo correctamente o si no los estoy enviando correctamente.
Aca te dejo los codigos.

Muchas gracias

Android

package com.example.bluetooth;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.UUID;

import android.R.string;
import android.os.Build;
import android.os.Bundle;
import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.app.Activity;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothServerSocket;
import android.bluetooth.BluetoothSocket;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

//@SuppressLint("NewApi")
@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1)
public class MainActivity extends Activity {

protected static final int DISCOVERY_REQUEST = 1;
private BluetoothAdapter Bluetooth; // BluetoothAdapter gives information about bluetooth status
public TextView StatusUpdate;
public Button Search;
public Button Disconnect;
public Button Activate;
public Button Connect;
public Button Send;
public String Address;
protected String toastText;
public static UUID MY_UUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
public static UUID UUID2;
public BluetoothServerSocket Master;
public BluetoothSocket Slave;
public BluetoothDevice Arduino;
private OutputStream outStream = null;
private InputStream inStream = null;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SetupUI();

}



private void SetupUI() {
// TODO Auto-generated method stub
final TextView StatusUpdate = (TextView)findViewById(R.id.Result);

Button Activate = (Button)findViewById(R.id.Activate);
Button Search = (Button)findViewById(R.id.Search);
Button Connect = (Button)findViewById(R.id.Connect);
Button Send = (Button)findViewById(R.id.Send);
Button Disconnect = (Button)findViewById(R.id.Disconnect);

Bluetooth = BluetoothAdapter.getDefaultAdapter(); //Here we are knowing if the bluetooth is turned on or turned off
if(Bluetooth.disable())
{
StatusUpdate.setText("Bluetooth is off");
}

Activate.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {

String Discoverable = BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE;
startActivityForResult(new Intent(Discoverable),DISCOVERY_REQUEST);
String Name = Bluetooth.getName();
String Address = Bluetooth.getAddress();
StatusUpdate.setText( Name + "\n" + Address);
}

});

Search.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
if (Bluetooth.startDiscovery())
{
toastText = "Scannig for devices";
Toast.makeText(MainActivity.this, toastText, Toast.LENGTH_SHORT).show();
registerReceiver(discoveryResult, new IntentFilter(BluetoothDevice.ACTION_FOUND));
}
}

});

Connect.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
try {
EstablishConection();
} catch (IOException e) {
// TODO Auto-generated catch block
toastText = "It was not possible to establish the connection";
Toast.makeText(MainActivity.this, toastText, Toast.LENGTH_SHORT).show();
}
}

private void EstablishConection() throws IOException {
// TODO Auto-generated method stub

if(BluetoothAdapter.checkBluetoothAddress(Address))
{
Arduino = Bluetooth.getRemoteDevice(Address);

// Get a BluetoothSocket to connect with the given BluetoothDevice
try {
UUID2 = Arduino.getUuids()[0].getUuid();
Slave = Arduino.createRfcommSocketToServiceRecord(UUID2);
//Master = Bluetooth.listenUsingInsecureRfcommWithServiceRecord(null, UUID2);
Bluetooth.cancelDiscovery();

Slave.connect();
//Slave = Master.accept();
toastText = "Connection done ";
outStream = Slave.getOutputStream();
inStream = Slave.getInputStream();
Toast.makeText(MainActivit

Reply
Hamilton link
6/4/2015 08:47:00 am

Hola, queria saber si pudiste hacer lo que intentaste. Y si lo pudiste hacer como lo lograste. Muchas Gracias.

Nota: Se encuentra tu proyecto en gitHub?

Reply
Ivan Martinez
8/13/2014 04:02:50 pm

hola Erik , me gustaria saber si me puedes desarrollar un proyecto de arduino , con un modulo bluetooth para controlar la iluminacion de mi acuario , veo que tienes experiencia en el tema y vi un proyecto que me gusto mucho te pego el link ,
http://bj.oneclickgroup.com/wrc/
te comento que solo requiero la parte de iluminacion (no me interesan los sensores de temperatura ) y solo que me gustaria controlarlo mediante HC06 , me intereza que me cotizes el dsarrollo de el harware y software . mi correo es [email protected] si me mandas un telefono te marco para comentarte mas especificamente el proyecto . saludos y de antemano muchas greacias por tu atencion .

Reply
Joaquin Ruiz-Tagle
9/5/2014 10:21:46 am

Hola, estoy realizando un pryecto tecnologico para el colegio. Se trata de un soporte para camaras que funcione sobre un eje 360°. La idea es que sea por bluethoot pero como soy nuevo en esto, no se mucho como desarrollarlo. Porfavor ayudame! Tengo que construir un control por bleutooth que mueva el eje y asi la camara. Porfavor ayuda! Necesito saber que comprar y como configurar mi arduino, vi que sabes mucho sobre esto. Porfavor hablame a mi mail!!!!

Reply
Rafa
10/19/2014 11:45:24 am

No se me pinta readString de color naranja y por ende no me deja compilar el programa, que puede ser?

Muchas gracias por la ayuda!!!

#define LED 12
char dato;
String readString;

void setup()
{
Serial.begin(9600);
pinMode(LED, OUTPUT);
}

void loop()
{
leer_Dato();

if(readString.length()>0)
(
if(readString == "LED1OFF")
(
Serial.println("APAGAR");
digitalWrite(LED, LOW);
)
else if(read String == "LED1ON")
(
Serial.println("ENCENDER");
digitalWrite(LED, HIGH);
)
readString = "";
)
}

void leer_Dato()
{
while(Serial.available())
(
delay(10);
if(Serial.available()>0)
(
dato = Serial.read();
readString += dato;
)
)
}

Reply
Ingeerick link
8/5/2015 01:22:09 pm

El error está en la linea
else if(read String == "LED1ON")

Tienes un espacio entre read y String.

Reply
alexander moreno
10/26/2014 04:04:19 am

hola buenas tardes
esque tengo que hacer un proyecto de un carro controlado con arduino y dispositivo bbletooh hc 06 desde app inventor ... pero tenemos el codigo de arduino que no presenta error y el app inventor que no se sabe si esta bien o mal por favor necesitamos una ayuda inmediata para este proyecto gracias

Reply
Diego
10/30/2014 06:04:02 am

Hola tengo un proyecto en el cual voy a manejar un carro con una app de android pero en el carro tengo implementado un sensor de humedad y temperatura el cual necesito que me envie los datos por bluetooth a algun dispositivo tengo una tarjeta bluetooth hc06 necesito saber si para esto necesito dos tarjetas bluetooth o con solo una bastaria (¿esta tarjeta deja enlazar a dos dispositivos?)

Reply
Gabriel
11/21/2014 01:54:11 pm

hola estoy haciendo un proyecto y solo me falta conectar el arduino con labview via bluetooth no se si me pudieras ayudar en ello...?

Reply
tuyuyu
1/9/2015 05:43:32 am

hkhkhk

Reply
GUSTAVO
2/13/2015 10:00:12 am

hola que tal compile el programa que pones, pero al momento de abrir el monitor serie y escribir los comandos AT no aparece nada, pero si se logra vincular con mi movil pero me aparace con el Nombre HC-06
quisiera saber que hice mal

Reply
Ingeerick link
8/5/2015 01:19:36 pm

Se me ocurre que la velocidad de tu bluetooth no está configurada de fabrica a 9600bps, tendríamos que programar o buscar un escaner para determinar a que velocidad está trabajando.

Reply
Daniel Korpaz
2/23/2015 08:29:47 am

Yo lo he armado, y resulta que quiero enviar un valor de temperatura, y por el hiper terminal se ve bien, pero en el celular luego de hacer la aplicación con el appinventor pierdo datos...

Reply
ingeerick link
8/5/2015 01:17:13 pm

Tienes alguna captura del código que utilizas en el appinventor, posiblemente solo sea un error en algún bloque del programa a la hora de recibir los datos.

Reply
gio_uchicha
5/27/2015 03:58:24 am

Buen dia Gente.

Una pregunta, despues de tener configurado el modulo bluetooth, quiciera conectar una compuerta digital (AND, OR, etc) al pin RX, y al cambiar el estado, envie el estado 1 a un telefono. ¿Esto es posible?

Reply
Ingeerick link
8/5/2015 01:14:20 pm

Si es posible, en cuanto a conexiones deberas:

Conectar y configurar tu bluetooth normalmente
Colocar un puente entre el Pin Rx y la entrada de tu compuerta.
La salida de la compuerta conectala a un pin digital del Arduino.

Por software te tocara leer el estado del pin donde conectaste la salida de tu compuerta y según tengamos un 1 o un 0, programa lo que se enviará a tu telefono.

Reply
MONICA link
6/11/2015 12:41:23 pm


Sketch uses 2.604 bytes (8%) of program storage space. Maximum is 32.256 bytes.
Global variables use 230 bytes (11%) of dynamic memory, leaving 1.818 bytes for local variables. Maximum is 2.048 bytes.
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x33
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x33
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x33
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x33
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x33
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x33
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x33
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x33
Problema subiendo a la placa. Visita http://www.arduino.cc/en/Guide/Troubleshooting#upload para sugerencias.
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x33
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x33

Reply
IngeErick link
8/5/2015 01:08:53 pm

Prueba grabando el código sin tener el bluetooth conectado, es común encontrar estos errores si tienes algún circuito conectado.

Reply
Fernando Diaz
6/16/2015 02:09:07 am

Que tal en mi HC-06 solo tiene pinesc G V DI DO

Reply
Lannier Urriola
7/10/2015 02:53:03 pm

yo no puedo conectarme el tiempo de 10 s es muy corto para mi. puedo instalar la aplicacion de nuevo en el modulo bluetooth.

Reply
ahahaha
11/9/2015 11:19:27 am

intenta aumentar el tiempo del delay, intenta poniendo 20s=20000 :D

Reply
erickson
8/5/2015 12:25:27 pm

buenas noches amigos,tengo un inconveniente con mi arduino uno. soy nuevo en esto, hace poco 2 dias compre mi arduino uno pero veo q en los videos cuando el arduino esta conectado enciente un led verde.. en mi caso el led q enciende es uno rojo en la parte inferior donde se encuentra el Tx y el Rx... el otro inconveniente es que tamb tengo un bluetooth hc.06 al conectarlo a mi arduino el enciente y al emparejarlo con mi movil android tamb se conecta porq deja de titilar la luz roja del modulo bluetooth, pero a la hora de enviarle informacion no me hace la funsion, he descargado aplicaciones de la appstore de andriod he visto tutoriales en youtube de led rgb y nada q mi arduino y bluetooth envian la informacion, esta bien conectado y todo me gustaria saber que podria hacer en este caso agradeceria mucho su respuesta. gracias de antemano.

Reply
Ingeerick link
8/5/2015 01:06:19 pm

Hola amigo que tal, ¿Cómo estas?, mira te comento, acerca del LED rojo que se ilumina en tu Arduino, no quiere decir otra cosa más que estas en presencia de un Arduino genérico, esto no es bueno ni malo salvo que hallas pagado más de lo debido.

En primer lugar estas seguro de tener conectado de la siguiente manera tu arduino y bluetooth?

Arduino Tx <-> Rx Bluetooth
Arduino Rx <-> Tx Bluetooth

De estar correcto lo anterior, podemos hacer una prueba con la comunicación serial sin hacer uso del bluetooth para descartar que sea el Arduino el que no funciona.

Prueba grabando el siguiente código en tu Arduino, después de hacerlo te vas al menú herramientas del programa Arduino y escoges la opción Monitor Serie. Estando en el monitor prueba escribiendo algunas letras y presionando enter estas deberían mostrarse consecutivamente en la pantalla.

char dato;

void setup() {
Serial.begin(9600);
}

void loop() {
if (Serial.available()>0){
dato = Serial.read();
Serial.flush();
Serial.println(dato);
}
}

Reply
Tonatiuh Chavez
8/17/2015 01:17:12 am

Como puedo diferencial un HC-05 de un HC-06 a simple vista?. muchas Gracias ;)

Reply
Juancki
8/23/2015 05:17:47 am

Enhorabuena por el Blog y el articulo !! De gran utilidad.

Reply
JOSE LUIS GUDIÑO
9/24/2015 02:56:26 pm

inge usted tiene ala venta el modulo bluetooth donde lo puedo adquirir

Reply
ahahahahah
11/9/2015 11:21:37 am

vamos hombre, pon en google "hc 06" y vas a poder encontrar, no seas flojo

Reply
ruben olave
10/14/2015 09:02:27 am

Muy buen tutorial. gracias

Reply
oscar
12/19/2015 06:49:21 pm

que tal soy nuevo en esto la verdad he estado tratando de hacer encender mi modulo bluetooth pero ni siquiera enciende con la configuracion que dejaste quisiera saber si el modulo ya esta dañado o si tengo que hacer algo mas. el programa ni siquiera me marca ningun error

Reply
valente quintero
4/11/2016 08:48:25 am

Buenas amigo...oye tengo un problemiya no se si me puedas ayudar.... tengo el HC 06 y el arduino leonardo...el modulo bluetooth ya se conecta con el puerto serial y resive todos los datos que le mando con una aplicacion android... le mando los caracteres en forma de texto como 1,2,3,4,5 etc. en el monitor serial si me aparecen por que le puse el Serial.write ps pero si le digo al arduino que realize una accion con las salidas digitales no hace nada...osea q si recive los datos pero no los interpreta..saludos

Reply
Alexander93
11/23/2016 03:50:09 pm

Es compatible esta configuración con una arduino pro mini?

Reply
Joaquin
6/16/2018 03:10:07 pm

Buenas tardes, cada vez que cargo el código del módulo bluetooth HC-06, me aparece este error:

avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x03

La solución a este error es quitar el cable que está conectado al RX del Arduino, pero al hacer esto, el bluetooth ya no funcionaría. Además con este error, el módulo no se sincroniza con las apps de prueba(no puedo prender un LED ni nada de eso), pero si aparece vinculado.
¿Cuál sería la solución a este problema?
Gracias

Reply
ivonne
9/29/2018 08:08:11 pm

hola
mira estamos manejando arduino uno con un conector de bluetooth hc 06 y esto debemos manejaro atravez de una aplicacion en el celular llamada bluetooth serial controler, ya realizamos la progamacion y no nos arroja error, pero al momento de manejarla atravez de la aplicaCION NO SUCEDE NADA
debe mostrar un nombre en una pantalla led y funsionar un servo motor. nos puedes ayudar??

Reply



Leave a Reply.

    Author:
    ING Erick ROMA

    Hola!,  mi nombre es Erick Rodríguez, actualmente me encuentro cursando y a casi nada de conseguir el grado de Ingeniero en Mantenimiento Industrial de la Universidad Tecnológica de Morelia (México).

    A grandes rasgos y para que conozcas algo de mi, te hablare sobre lo que me apasiona y esto es: El ir al ciné (solo o acompañado, da igual, que de todos modos ni hablo, solo me pierdo en la película :O), la lectura (literatura afín a la carrera :D, aunque he leído novelas y por supuesto más de tres libros en mi vida C: ), y el pasar muy buenos ratos con los amigos (Fiestaaaaaaaa.!!!).


    Soy una persona muy sociable y también muy sencilla, por lo regular siempre ando de extrovertido.

    Me gustaría algún día dedicarme a la docencia, creo que es una labor muy noble y quisiera poder contribuir en ello.

    Archives

    August 2014
    February 2014
    December 2013
    November 2013
    October 2013
    September 2013

    Categories

    All
    Appinventor
    App Inventor
    Arduino
    Bluetooth
    Curso
    Hc 06
    Hc-06
    Ide
    Instalación
    Isis
    Linvor
    Proteus
    Proyecto
    Proyecto Aba
    Simulación

    RSS Feed

Powered by Create your own unique website with customizable templates.