Upload
ramiro-arcentales
View
220
Download
0
Embed Size (px)
Citation preview
7/24/2019 Riego de Jardines Mediante Arduino y Android
1/17
Riego de jardines mediante arduino y Android
A.Confgurar mdulo bluetooh hc05.
Pareja bluetooth arduino
Un proyecto personal me lleva a utilizar un mdulobluetoothconArduino, me decanto por HC-
05. La cuestin es ue si no uieres ue el nombre de tu dispositivo sea HC-05 y la contrase!a
"#$%, toca con&i'urar el dispositivo.
(nviar y recibir datos del dispositivo bluetooh arduino es bastante &)cil. *ero con&i'uarlo es otra
cosa. He buscado bastante in&ormacin y siempre la ue he encontrado ha sido demasiado
escueta y me ha ayudado por partes, por e+emplo no encontr donde di+esen ue el botn debesmantenerlo pulsado al arrancar. As ue he decidido crear mi propio post para documentar me+or
el proceso
Compr $ dispositivos, # son con la base para soldarla /-1CU y un ma'ni&ico botn para el
modo master 2con el ue se con&i'ura el bluetooth con comandos A34. (l otro no tiene botn, se
usa uno de los pines 2ey4 ue debe conectarse a $.$6. al arrancar.
1- Conectar la pareja Bluetooth Arduino.
http://es.wikipedia.org/wiki/Bluetoothhttp://es.wikipedia.org/wiki/Arduinohttp://es.wikipedia.org/wiki/Arduinohttp://es.wikipedia.org/wiki/Arduinohttp://es.wikipedia.org/wiki/Bluetooth7/24/2019 Riego de Jardines Mediante Arduino y Android
2/17
/-1CU 2con botn4
o voy a utilizar un Arduino 7ano, es el ue ten'o libre ahora. Conectamos
879 y 6cc a nuestro arduino.
3:9 al pin 7;"$ 29"04
7/24/2019 Riego de Jardines Mediante Arduino y Android
3/17
". s un problema de la web.
$. */
%.
&. #define 'x( 1)
. #define +x( 11
1).
11.SoftwareSerial ,+Serial-'x( +x(0
12.
13.oid setup-
1.
1". ,+Serial.flush-0
1$. delay-"))0
1%. ,+Serial.bein-3&))0
1&. Serial.bein-$))0
1. Serial.println-45reparado para eniar comandos 6+740
2).
21. ,+Serial.print-46+rn40
22.
23. delay-1))0
2.
2".8
2$.
2%.oid loop-
2&.
2.
3). if -,+Serial.aailable-
31. Serial.write-,+Serial.read-0
32.
33. if -Serial.aailable-
7/24/2019 Riego de Jardines Mediante Arduino y Android
4/17
3. ,+Serial.write-Serial.read-0
3".
3$.8
Ahora toca arrancar en modo master, es decir ue admita cdi'os A3.
(n el!dulo con el botnsolo necesitamos
". 9esconectar el pinB879 o 6cc de alimentacin del mdulo bluetooth.
#. Apretar el botn y de+ar pulsado.
$. *oner de nuevo el pin de alimentacin del paso " =>7 soltar el botn del paso #.
%. Cuando vemas un parapedo lento, unos $ se'undos. =oltamos el botn. Los parpadeos
son mucho m)s lentos.
a estamos en modo master.
#n el !dulo sin botn$
". 9esconectamos un pin de alimentacion del mdulo bluetooth 2como antes4.
#. *inchamos el pin ey del mdulo a $.$v de Arduino. 27@ 5v sino $.$v4
$. *oner de nuevo el pin de alimentacin.
%. Cuando vemos el parapadeo lento, ya estamos en modo master. 7@ despinchar el pin
ey. 3odo el proceso de con&i'uracin debe estar pinchado.
#nviando co!andos A"
9esde el mismo editro de =ech abrimo el 1onitor =erial
Ahora en el terminal *oner bien lo ue he marcado en la im)'en
7/24/2019 Riego de Jardines Mediante Arduino y Android
5/17
*ara comprobar ue todo est) bien, prueba a escribir A3D
9ebes recibir un E@F 2como se ve en la ima'en superior4.
=i no lo recibes, intercambia los pin nternet hay mucha in&ormacin sobre los cdi'os A3, yo voy a e:poner los ?nicos ue creo
necesarios.
Cambiar el nombre del distpositivo A"%&A'#$nuevo&o!bre
Cambiar contrase!a a 5555 A"%P()*$++++6er la versin A"%,#(/&
*ara ver nombre o contrase!a actual, se usa ni nada despues de los dos puntos.
Fuente: http://.ceciliorui!.com/bluetooth"arduino/
#. $rograma para encender leds mediante Android %aplicacin
ya creada&.Con lo que se explica a continuacin logre conectar la Tablet almdulo bluetooh y hacer que los leds se encienda y apaguen.
ARDUIN ! "#U$TT%
http://www.cecilioruiz.com/bluetooth-arduino/http://www.cecilioruiz.com/bluetooth-arduino/7/24/2019 Riego de Jardines Mediante Arduino y Android
6/17
#n este tutorial va!os a dotar al Arduino de co!unicacin Bluetooth usando un !dulo Bluetooth0
vere!os c!o conigurarlo c!o enviar recibir datos desde un dispositivo Android.
1aterial
-Arduino Uno
7/24/2019 Riego de Jardines Mediante Arduino y Android
7/17
Comandos AT
Los comandos A3 son un tipo de comandos ue sirven para con&i'urar el mdulo Gluetooth a travs de un
microcontrolador, un ordenador o con cualuier dispositivo ue posea una comunicacin serie 23:I7, el nombre, etc. *ara
usar los comandos A3 el mdulo Gluetooth no debe estar vinculado a nin'?n dispositivo 2led ro+o delmdulo parpadeando4. =e'?n las especi&icaciones del mdulo, el tiempo ue se tiene ue respetar entre el
envo de un comando A3 y otro tiene ue ser de " se'undo. =i se enva un comando A3 y en menos de un
se'undo se enva otro, el mdulo no devuelve respuesta.
Ahora vamos a con&i'urar el mdulo Gluetooth a travs de comandos A3 enviados desde el 1onitor
=erial del Arduino. (l cdi'o del Arduino necesario tanto por el mdulo HC-05 como el HC-0 es el
si'uiente
'()
*+,-/'0'''(')
'*'+','-''/(0('(
#include 9SoftwareSerial.h: //;ibrer 11 +>.
oidsetup-
,+.bein-$))0 //?elocidad del puerto del m=dulo ,luetooth
Serial.bein-$))0 //6brimos la comunicaci=n serie con el 5@ y establecemos
elocidad
8
oidloop-
if-,+.aailable-
Serial.write-,+.read-0
8
if-Serial.aailable-
,+.write-Serial.read-0
8
8
7/24/2019 Riego de Jardines Mediante Arduino y Android
8/17
(()
(ntre los dos modelos de mdulo Gluetooth e:isten di&erencias a la hora de enviar los comandos A3
%C10,
(n el HC-0 solo se necesitan cuatro pins 6cc, 879, 3K9 y
7/24/2019 Riego de Jardines Mediante Arduino y Android
9/17
5 "N#00 bps
$M%00 bps
O 5O00 bps
M ""5#00 bps
N #$0%00 bps
A %0M00 bps
G N#"00 bps
C "$M#%00 bps
A3D7A1(:
Con3gura el nombre con el que se2isuali8ara el modulo9 soporta hasta (0caracteres
AT!NA&$DI:&a;ersCon3gura el nombre delmodulo a DI:&a;ersResponde con'(setname
A3D*>7::::
Con3gura el ord?.'()* por de@ecto.
AT!
7/24/2019 Riego de Jardines Mediante Arduino y Android
10/17
(l HC-05 es necesario poner el pin ( del mdulo a nivel alto 2564 para enviar comandos A3. Adem)s,
al enviar un comando A3 hay ue enviar un car)cter de LJ 2nueva lnea4 y de C< 2retorno de carro4 al
&inal del comando. *or lo tanto, en el 1onitor =erial de Arduino pondremosAmbos NL & CR.
(n el HC-05 se pueden enviar muchos m)s comandos A3 ue en el HC-0. Au os de+amos un archivo
pd& con todos los comandos A3.
Recibir datos de un dispositi2o Android
Ahora ue ya sabemos cmo conectar y con&i'urar un mdulo Gluetooth en nuestro Arduino, vamos a
vincularlo a un dispositivo Android con Gluetooth y enviar datos al Arduino mediante la aplicacin
BlueTerm, ue es un emulador de terminal ue permite comunicarse con un dispositivo Gluetooth para
enviar y recibir in&ormacin va serie. La app es 'ratuita y se puede descar'ar desde este enlace.
Conectaremos tres leds de di&erentes colores al Arduino y mediante unos comandos ue in'resaremos en
la app Glue3erm los encenderemos y apa'aremos. (n este e+emplo hemos usado un mdulo HC-0 pero
se puede usar tambin un HC-05 ya ue no hay di&erencia en este caso.
https://play.google.com/store/apps/details?id=es.pymasde.blueterm&hl=eshttps://play.google.com/store/apps/details?id=es.pymasde.blueterm&hl=es7/24/2019 Riego de Jardines Mediante Arduino y Android
11/17
Cdigo Arduino
'()*+,-
/'0'''(')'*'+','-''/(0('(((
)(
/*
www.diymaAers.es
by 6.Barc 11 +>.
intreenE0intyellowE"0intredE$0charcadenaF2""G0 //@reamos un array de caracteres de 2"$ cposicionesintiE)0 //+amaHo actual del arrayoidsetup-
,+.bein-$))0
Serial.bein-$))0
pin!ode-reenIJ+5J+0
pin!ode-yellowIJ+5J+0 pin!ode-redIJ+5J+0
8
oidloop-
//@uando haya datos disponibles
if-,+.aailable-
chardatoE,+.read-0 //Buarda los datos carKcter a carKcter en la ariable 4dato4
cadenaFiCCGEdato0 //?amos colocando cada carKcter recibido en el array 4cadena4
//@uando reciba una nuea l
7/24/2019 Riego de Jardines Mediante Arduino y Android
12/17
*(+(,(-
((/)0)')()))*
)+),)-))/*0*'
*(*)***+*,*-*
*/+0+'+(+)+*+++,+
if-strstr-cadena4reen on4PE)
diitalQrite-reenRBR0
8
if-strstr-cadena4reen off4PE)
diitalQrite-reen;IQ0
8
//T;;IQ ;( if-strstr-cadena4yellow on4PE)
diitalQrite-yellowRBR0
8
if-strstr-cadena4yellow off4PE)
diitalQrite-yellow;IQ0
8
//'( ;(
if-strstr-cadena4red on4PE)
diitalQrite-redRBR0
8
if-strstr-cadena4red off4PE)
diitalQrite-red;IQ0 8
//6;; IO
if-strstr-cadena4on all4PE)
diitalQrite-reenRBR0
diitalQrite-yellowRBR0
diitalQrite-redRBR0
8
//6;; IUU
if-strstr-cadena4off all4PE)
diitalQrite-reen;IQ0
diitalQrite-yellow;IQ0
diitalQrite-red;IQ0
8
,+.write-4Mr40 //niamos un retorno de carro de la app. ;a app ya crea una
l
7/24/2019 Riego de Jardines Mediante Arduino y Android
13/17
-++/,0
,',(,),*,+,,,-
,,/-0-'-(-)-*
-+-,----/0'
()*+,-//
7/24/2019 Riego de Jardines Mediante Arduino y Android
14/17
0/'/(/)
/*/+/,/-/
(l cdi'o es bastante simple. *rimero creamos un array de #5 posiciones tipo char llamado cadenapara
almacenar los caracteres ue recibiremos de la app. Cuando haya datos disponibles los vamos 'uardando
uno por uno en &orma de car)cter en la variable dato. 9espus ponemos estos caracteres por orden en elarray cadena. Cuando reciba un car)cter de &in de lnea 2Pn4, se compara el te:to almacenado en el array
con el te:to ue deseamos. *ara hacer la comparacin se usa la &uncin strstr()ue procede de CDD y ue
permite encontrar partes de te:to en un =trin'. 9espus de esto, se limpia el array poniendo a 0 todas las
posiciones usadas para recibir el si'uiente comando.
Con3gurar app Android
Una vez descar'ada la app la abrimos y en a+ustes ponemos Conectarse a un dispositivo.
*ulsamosBuscar dispositivos y esco'emos nuestro mdulo Gluetooth ue en nuestro caso le hemos
puesto el nombre 9>1aers. =i no lo habis cambiado pondr) por de&ectoLIN!R o"C#$%.
7/24/2019 Riego de Jardines Mediante Arduino y Android
15/17
*onemos el *>7 del mdulo. =i no lo habis modi&icado ser) "#$%.
9espus de esto, arriba a la derecha pondr) conectado'nombre(=i'ni&ica ue tenemos asociado nuestro
dispositivo Android con nuestro mdulo Gluetooth y el led de este de+a de parpadear y se ueda &i+o.
7/24/2019 Riego de Jardines Mediante Arduino y Android
16/17
Lue'o solo hay ue poner los comandos para encender y apa'ar los leds. Cuando se escribe un comando
tenemos ue pulsar)nterdel teclado para enviarlos al Arduino. (n el terminal no se pueden borrar
caracteres, por lo ue si nos euivocamos pulsamos)ntery lo volvemos a escribir.
7/24/2019 Riego de Jardines Mediante Arduino y Android
17/17
Al cargar en arduino el programa detallado en lo anterior y al utili8ar la app"lueTerm9 pude encender y apagar leds. $sto quiere decir que el mdulobluetooh est bien con3gurado.
$l siguiente paso ser crear mi propia app y el cdigo para encender leds.
C. $rograma para encender leds
-. Creacin del programa para android.$.