Riego de Jardines Mediante Arduino y Android

download Riego de Jardines Mediante Arduino y Android

of 17

Transcript of Riego de Jardines Mediante Arduino y Android

  • 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/Bluetooth
  • 7/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=es
  • 7/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.$.