Download as pdf
Download as pdf
You are on page 1of 58
aptlo 3 Conectviiccon Bloom 43.1 INTRODUCCION Es precso conocer aspectos de I conectividad por bluetooth, es dec las formas de configue ‘avo para enlazarlo a otres dispositivos wearable que manejan el rasmo tipo de comuniea- yan eato con el objetivo de construirdispositivs que se puedan conectar con otros de la mis~ fa manera para enviar y recibir datos entre st Para realizar lo anteriores necesario tener una tarjeta Arduino y e! médulo de comunicas idm blustooth; con ell se elaborardn varios ejemplos de conexién entre tarjetas Arduino UNO ‘también con un dispositive mévi, Se estadiarn la tarjetas Bluno Beetle y Bano Nano que Jn euentan con la comunicacion bluetooth y més ain, con: Bluetooth Low nergy (BLE, esto pertnitiré realizar aplicaciones de monitoreo y control eon dispositves. bluetooth es una tecnologia de comuunieacién entre dispositivos de corto aleance; en 1994, rriesson iniid su desarrollo: investig6 una forma econdmica de comunicacion inakimbrica en fnael mol y sus acesorios. Después de esas primeras investigactones, qued6 cara la poten Ualidad de esta conexién. En 1998, seis grandes empresas, Sony, Nokia Intel, Toshiba, IBM y Ericsson realizaron un eonsorcio para profundizar ene] estudio de dicha conexion yformaron ‘llamado Bluetooth Special Interest Group. 3.11 Bluetooth de bajo consumo de energia (Bluetooth Low Energy) ‘Bluetooth ha completado la especificaclin del nicleo de bluetooth en su version 40, que incl Joel elésico, de alta velocidad y ls protocolos de bajo consumo. 6 bluetooth de alta velocidad 7 pana en Wifiy el csieo consta de protocolos preexistentes, esta versin fue adoptada el 30 de junio de 2010, Por su parte, lbuetooth de baja energa (Bluetooth Low Energy © BLE) es un subconjunto de ‘luetooth vi.0 con una pila de protacolo completamente nueva para desarrllarrpidamente laces senailos. Como altemativa alos protocolos esténdar que se introdujeron en Bluetooth ILO, v0 est rigido a aplicaciones de muy baja potenca alimentados con una pila de bot6n. Diversos isons de chips permiten dos tipos de implementacin: de modo duatyy de modo i ovaidemis de versiones anteriores mejoradas,Algunas caracterfsticas de ambos sons in implementaciones de modo tinico slo se incluye la pila de protocolo de baja tenerula CSR, 16Nordie Semiconductor17 y Texas Instruments 18 han dado a conocer Jas soluciones de modo bluetooth de baja energfa inicamente. -Tienen una velocidad de emistn y transferencia de datos de 32Mb/s. Se integra a funcionalidad de bluetooth de bajo consumo en un controlador clésico tuistente en implementaciones de modo dual. Bn la actualidad (a partir de marzo de 3011) los siguientes fabricantes de semiconductores han anunclado la disponibilidad de chips que cumplen esta norma: Atheros, SR, Broadcom19 20 y Texas Instruments 30 rouinay ano. Proyectos mearbla para sera watches, smarty dspoics mvs {a arquitectura resultante compart la radio y funcionalidades del bluetooth clasico, ‘que derivé en un ineremento de cost, Al comparar con méilulos anteriores de bluetooth, los médulos BLE tienen bajo consumo de ‘energiaesténdar funciona en réfagas en lugar de mantener una conexién persistent, Ademis, BLE ofrece baja latenciay tiene un rango comparable los antiguos estindares bluetooth, 3.1.2 Médulo bluetooth Elmédulo bluetooth es un estindar de comunicacién inalimbrica que permite latransmision de datos a través de radiofrecuencia en la banda de 2,4 GHz, Existen muchos méiulos bue- ‘tooth para usarlos en proyectos de electrinica, pero los mis recurrentes son los de J¥-MCU ya {que son muy econémicos y ficiles de encontvar en el mercado. Son médulos pequefos y con lun consumo muy bajo que permiten agregar funcionalidades bluetooth a Arduino. Estos ms. dulos contienen el chip con una placa de desarrollo con los pines necesarios para la comuni caclén sere Existen dos tipos de médulos bluetooth el HC-05 que puede ser maestro/esclavo (master/ slave] y el HC-06 que slo puede actuar coma esclavo (slave), ‘Médulo bluetooth HC-05 como esclavo Cuando esta configurado de esta forma, se comporta similar aun HC-06: espera que un dispo- sitivo bluetooth maestro se conecte a ése; generalmente se utiliza cuando es necesario Com nicarse con una PC o celular, pues étos fungen como dispositivos maestros. ‘Médulo bluetooth HC-05 como maestro En este modo, el HC-05 es el que inicia la conexién, Un dispasitiva maestro s6lo se puede co nectar con un dispositivo esclavo. Generalmente, se utiliza para a comunicacién entre médc los biuetooth pero es necesario antes especifcar con qué dispositive se tiene que comunicar, esto se explicard mis adelante, La diferencia entre maestro y esclavo esque el segunda se conecta al médulo, mientras que en modo maestro es el médulo el que se conecta con un dispositive Fisicamente fos dos médulos son muy parecidos, sla varia algunas conexiones. Los pines {que se pueden encontrar son los siguientes Vcc: Alimentacién del médulo entre 3,6 y 6v GND: La masa del médulo. TXD: Transmisién de datos, XD: Recepeidn de datos a un voltje de 3.30 Fupen& sus emis Ova Ramos 4 AMfaomegs » KEY: Se pone a nivel alto para entrar en modo configuracion del médulo (s6lo en el smadlelo HC-05), STATE: Para conectar um led de salida y visualizar euando se comuniquen datos | emg. neti Heyes El médulo bluetooth HC-05 se configura de fbrica como esclavo, pero se puede cambiar para {que trabaje como maestro; ademas, gual que l HC-06, se le puede cambiar el nombre, c6igo de vinculacién, velocidad y otros parimetros. El médulo HC-0S se configura por defecto de Ia siguiente forma: Modo o role: Hsclavo Nombre por defeeto: HC-05 Codigo de emparejamiento por defecto: 1234 La velocidad por defecto (baudrate}: 9600 EL Modulo HC-05 tiene cuatro estados importantes de conocer Desconectado Entra a este estado tan pronto se alimenta el médulo,y cuando no se ha establectdo tina conextdn bluetooth con ningtin otro dispostiv, ELLED del médulo parpadea ripidamente ‘diferencia del HC-06, el HC-05 no puede interpretar los comandos AT. onectado 0 de comunicacién Entra a este estado cuando se establece u ILED hace un doble parpadeo, conexién con otro dispositiv bluetooth “0 Arana y cls Proyectos wera pa ama walches, smart vy Aspesvon mows Todas los datos que se ingresen al HC-05 por el pin RX se trasmiten por bluetooth at dispositive conectado, los recibidos se devuelven por el pin TX. La eomunicacion ox transparente, Modo AT 1 Para entrar a este estado despuiés de conectaryalimentar el médulo es necesario presionar el boton del HC-05. Es posible enviar comandos AT, pero la misma velocidad con la que esta configurade EILED del médulo parpadea ripidamente gual que cuando esti desconectado, Modo AT 2 Es necesario tener presionado el botdn al momento dealimentar el médulo, después de encenderto se puede soltary permanecerd en ese estado. Para enviar comandos AT es necesario hacerlo ala velocidad de 38400 baudlios, esto ‘es muy iil cuando se desconoce la velocidad con la que se ha configurado el médilo. EILED dol médulo en este estado parpadea lentamente 3.1.3 Comandos AT Los comandos AT sirven para configurar el médulo bluetooth através de un microcontroladog luna computadora o con cualquier dispositivo que posea una comunicacidn serie (Tx/Rx).Son instrucciones que permiten cambiar los baudios del médulo,e pin, el nombre ete Para usar los comandos Al médulo bluetooth no debe estar vinculado a ningtn disposi vo (led rojo del médulo parpadeando).Segin las especificaciones el tiempo que se debe espe tar entree envio deun comando ATy otro tiene que ser de un segundo. Sise envia un comando [ATy en menos de un segundo se envia otro, el médulo no devuelve respuesta, Descripcién de los comandos AT ‘Test de comunicacién Es necesario comprobar sel bluetooth responde a los comandos AT. Si se recibe como respuesta OK entonces se puede continuay, de lo contrar es preciso veri car las conexioneso los pasos anteriores. fun st tm na Ros Ames 4 a ‘apiuo3 Consett con Busoo Cambiar nombre del modulo HC-05 Por defect el bluetooth se lama HC-05, esto se puede cambiar con el siguiente comando AT: Enviar: AT=NAMI Respuesta: OK Nombre» Ejemplo: AT+NAME=Robot ‘Cambiar e6uigo de vineulacion Por defecto, el ebigo de vinculacin (pin) es 1234, para cambiarlo hay que enviar el siguien- te comando AT; Enviar: AT#PSWD= Blemplo: ATePSWD=2560 Respuesta: OK Se puede saber cusl es el pin actual de este médulo, para éo hay que enviar el siguiente co- manda: AT+ PSWD? Configuracién de la velocidad de comunicacion La velocidad por defecto es de 9600 bauios, con stop bit =0 (1 it de parada) y sin paridad para cambiar estos parmetros se hace uso del sigulente commando AT: Enviar: ATUART=, Respuesta: OK Donde: ‘eBaud> Equivale a una velocidad, os valores pueden ser: 4800, 9600, 19200, 38400, '57600, 115200, 23400, 460800, 921600 0 1382400, Es el bit de parada, puede ser 0.01, para 1 bito2 bits de parada ‘Tespectivamente. Para aplicaciones eomumes se trabajacon bit, por To que este parimetro normalmente se deja en 0. cavity fs a paridad, puede ser (sin pardad), 1 (paridad impar) 0 2 (paridad par), Para aplicaciones comunes no se usa paridad, por lo que se recomlenda dejar este parimetro en 0. Bjemplo: Enviar; ATSUART=9600,0,0 Respuesta: OK 2 resin y Ani Poyectos waar para smart wales, sat spesO8 mons, i | 1 ; Se puede saber cual es la configuracién actual, para eso hay que enviar ol siguiente coman: do: AT+UART? CConfiguracién del Role: para que trabaje como maestro 0 esclavo Pr defecto e1 HC-05 viene como esclavo,! siguiente comando permite cambiar esto: Enviar: AT+ROLE= Ejemplo: AT+ROL! Respuesta: OK Donde:-Role= 0-> Esclavo 1-3 Maestro Para saber cul esa configuracién actual, se debe enviar e siguiente comando: AT+ ROLE? CConfiguracién del modo de conexién (cuando se trabaja como maestro) Esta configuracién aplica para cuando el médulo trabaja coma maestro; el primero neces ta saber si se conectari con un dispositive en particular 0 con cualquiera que es sponible. Enviar: AT+CMOD! Respuesta: OK Mode> Ejemplo: AT+CMODE=1 Donde: 0-> Conectarse a un dispositiv con la direccién especificada (se utiliza otro comand AT para especiticar esta direccién. 1.3 conectar el méduloa cualquier dreccién disponible (aleatorio}. Enviar el siguiente comando para averiguar el mado actual de conexién: AT+ CMODE? Especificar la direccisn del dispositive de conexin Esta configuracién aplica cuando el médiulo esté configurado como maestro y ala vez el mo: do de conexion esté en 0 (CMODE-0}, el cua indica la conexién al dispositive escavo en par- tHeular Para especificar Ia direccién de conexin se usa el siguiente comando AT: Enviar: AT+BIND=
Respuesta: OK Fubin &Jusn Toms Ova Ramos - 4s Atfamegs Donde: _euress> Esl drecc\én del dispositivo de conexi6n la direccin se envia de la sigulente fr or 1234/56 ABCDEF que equivale aa direcci6n 12:34:56:AB:CD:EF ‘jemplo: Enviar; ATHBIND=E050,409277F2 Respuesta: OK para ver ladirccién actual en este parmetro hay que enviar elsguientecomando: AT* BIND? 3.1.4 Otros comandos AT de utilidad: ‘Obtencion de la version del firmware: Enviar: AT*VERSION? Respuesta, +VERSION Ejemplo: +VERSION: 20-20100601 obtener la direccion de! modulo bluetooth: Enviar: AT+ADDR? Respuesta: *ADDR: jemplo: “ADDR: 9843:31:2052e6 Resetear el médulo y salir del MODO AT Enviar: AT*RESET Respuesta: OK Restablecer valores por defecto Enviar: ATORGL Respuesta: OK “Alacer esto, todos las parémetros del médulo se restablecen alos valores por defecto def aonaee salpanes versiones a velocidad cambia 38400 baudlos y en otras 2 9600, 3.1.5 Conexién del médulo HC-05 al Arduino 1 médulo a utilizar en estes proyectos es HC-0S sin botén, es necesario poner el pin KEY del cael nivel alt (SV) para enviar comandos AT, Ademds, al hacerlo, hay que mandar am Thenuncardeterde LF (nueva inea)y de CR (retorne de caro) a final del comando. Por lta terenel Monitor Seri de Arduino se wilizarsn ambos, LF CR. ” rainy Ancei,Poyetos wourble para sat watches, sary sono mes, 3.1.6 Configuracin de médulo HC-05 como esclavo Ensoguida se abordarin dos ejemplos pricticos con los pasos para configurar el HC-OS como maestro yesclavo através de comandos AT enviados desde el Monitor Serial del Arduino. En ambos casos, es necesario utilizar el mismo sketch para ponerio en el modo requerido, El cl so necesario del Arduino que se debe descargar es el siguiente: Programacién de Arduino include ; detay(500); BTSerial .beginC38400); // comnicactén directo al moduto. Serial.begin36@0); // comnicacién directa al monitor Seriat.printinc*Enter AT comands: "); Fen &.n Torts Ol Ramee AMlaameg “6 apt 3Conetvied cn Buegm BTSerial printC"ATAA\n"D; cetay(100)5 z void loop > ‘ GF (BTSerial avai table 2) Sertut wri teCOTSeriat read 225 iF GSeriat avai tabtec 2) aTSerial..writeCSertol recd( 295 z na vez programadoy conectado el médulo, se abriri el IDE de Arduino, el monitor serial Se modifican los valores de velocidad a "9600 baud” y a “ambos NL y CR"; presionar el Reset del Arduino, En este momento se observard en la pantalla: “Enter AT commands” Elprograma manda un AT enseguida, por lo que la respuesta debe ser “OK" _———— J © origura 2.3 Paras Enor A commons 6 aur y Anois, Proyectos wearle para smart watches, sat Wy cepostvs movies | Revisar que el bluetooth parpadee cada 2 segundos: de fo contraro, desconectar 1 bluetooth con el Arduino ain encendido (cable VEC al final); volver presionar boton Reset o abrir y cerrar el Monitor Seria En este momento se observaré en la pantalla: “Enter AT commands: l programa ‘envi un AT enseguida, por lo que a respuesta debe ser "OK" Elled parpades lentamente, el médulo ha entrado en modo de programacién de comantios AT En caso contrario, se debe revisar a conexién; usualmente puede ser un error con los ‘Tay Ro CConfiguracion del médulo con las caracteristicas ‘Modo o role: Esclavo Nombre: Shive CCdigo de emparejamiento: 1234 Velocidad o Baudrate: 9600 baudios Establecer el Role como esclavo Enviar: AP+ROLE=0 Respuesta: OK Configuracion del nombre del médulo Enviar: AT/NAM Respuesta: OK Establecer el pin de vinculacion Enviar: ATSPSWI Respuesta: OK 236 Configuracin de la velocidad: Enviar: AP-UART=9600(00 Respuesta: OK Verificar los parmetros cambiados: Enviar AT+ROLE? ATsPSWD? ATSUART? Fruten &suan Tomas Ova Ramos Attamegs Respuesta ROLE ox. spswos1212 ox “SUART:9600.00 OK Resetear el médulo: Enviar: APSRESET Respuesta: OK “nla siguiente imagen se puede ver la secuencia de datos recibidos por el monitor serial en el mismo orden en que se realizaron los pasos anteriores origura 4 Secuenci d des Después de hacer la configuracién anterior, se puede usar el médulo como un dspositivo es ‘lau el cual estara siempre en espera de una conexin por parte de un dispositivo bluetooth 3.1.7 Configuracién del médulo HC-05 como maestro ‘A-comtinuacin se presenta un ejemplo para configurar el médulo como maestro, con las st pulentes caracterstias: 8 rduna y Ancol. Proyectss wearable pa mat wales, a ty peas mol. Modo o role: Maestro Nombre: Master CCédigo de emparejamiento: 1234 (la misma que el dispositiva a coneetarse) Velocidad o Baudrate: 9600 bauios Direccién del dispositivo esclavo con el que se desea conectar: 98:D3:31:2038:D0 (cambiarlo por la direccién de su dispositivo) Establecimiento del Role como maestro: Enviar: AT+ROL Respuesta: OK CConfiguracion del nombre del médulo: Enviar: ATeNAME=Master Respuesta: OX Establecimionto del pin de vineuta Enviar: ATS+PSWD=1234 Respuesta: OK Configuracién de velocidad: Enviar: AT+UAR' Respuesta: OK 1600.00 Configuracién del modo de conexién Enviar: AT+CMOD! Respuesta: OK Especticacién dela direcclén del dispositive a conectarse Enviar: AT+BIND=98D3,31,203AD0 (cambistlo por la direceién de su dispostivo) Respuesta: OK Verificacion de los parametros cambiados Enviar AT+ROLE? arepsw? ATHUART? Fucn& tan Tends Oa Ramos: 2) Altnmesa ° caplet’ Const con stat ArecMoDE? AT+BIND? Respuesta +ROLEL ok +PSWD:1236 OK “+UART:960000 OK +cMoD:0 ox +BIND:9843:31:2032d0 OK Reseteo del modulo Enviar: AT#RESET Respuesta: OK Después de efectuadas las configuraciones, el médulo se comporta como un dispositivo mses- to el cual estara constantemente buscando el dispositive especficado hasta encontrarlo y co- ectarse, Para que el maestro pueda conectarse con el dispositive esclavo, ambos deben tener ‘2 mismo cédige de vinculacin. © erigura 3.6 casio de wneucn so -rcuina y Aves, Proyectos moar xa sas watenes, smarty y dspoitos movi ‘ ; re | 2.3.2 COMUNICACION ANDROID-ARDUINO (MAESTRO-ESCLAVO) 3.2.1 Recepcién de datos de un dispositive Android ‘Ahora que se sabe cémo conectar y configurar un médulo bluetooth en el Arduino se vine: lard a un dispositive Android con bluetooth y se enviarén datos al Arduino mediante la ap cacién BlueTerm, un emulador de terminal que permite comunicarse con un dispositivo blue tooth para enviar y recibir informacin via serie. La App es gratulta y se puede descargar desde Mips//play.googte-cam/store/apps/ derasrid=ex pymasie uetermeht=es 3.2.2 Conexiones del médulo HC-05 con Arduino Programa para control y descarga en el Arduino: Finclude £ blue.begin(9600); // initialization Fun & Jun Tomas Ova Ras Alamepe Ey pirwledeCsal ida, OUTPUT): pinsode(salidat OUTPUT: pinMode(sal daz, OUTPUT); ? void Loop > ¢ EF (blue.availobleC ) > 0) { // if the dota came valorteide = blue.read( ); // rend byte ni teh(valorletae{ digitatnrite(salida, HIGH; ddelay(520); blue.printin¢*Salida 4 prendi da” break case ‘1 Gigitaliritecsal dat HIGH; deay(S00); blue.printincsalida 5 prendidat); break igitotwritecsatida2, HID; elay(500); blue.printin¢*Salida 6 prendida”>; break case *3" digitaliiritecsalide, LOW; ddigitathritecsalicat, Lom; digitaltrite(solida2, LOW); etay(500); blue.printin¢*solida 4, 5 y 6 apagadas"): break; default: detay(508); blue. print(volerteido); blue.printin¢* No es une orden vélida. Introduzca le opeién correcta” + } + 43.3 CONFIGURACION DE APP EN ANDROID Una vee descargada la app y después de abrira, en ajustes seleccionar Ia opei6n Conectarse a un dispositive. eine y Ano, Proyectos wearable pa sa watches, sat y dspstves moves Pulsar en Buscar dispositivos y elegirel médulo bluetooth, en este easo se eligh el nombre Es significa que yes th asociado al dispositive Android con el médulo bluetooth y el led de éste dejar de parpadear yse quedaré fj, 2 contusion de app on ant ‘Ahora, sélo es preciso teclear los comancdos para encendery pagar los ed y luego enviartos al ‘Arduino. En la terminal na se pueden barra earacteres por lo que, st hay algin error, se vuel veaeseribir 3.3.1 Comunicacién entre dos tarjetas Arduino (maestro-esclavo) Este proyecto consiste en aplicar lo aprendide en los puntos anteriores: por un lado se tiene lun Arduino conectatio a su médulo bluetooth configurado como maestro y, por et lado, uno configuesde como eaclavo Enel momento on que se energizan ambas tarjetas, el médulo maestro comienza a buscar el ‘modulo esclavoy deforms automatica se conectan entre si. 3.3.2 Control de encendide y apagado de una salida de forma inalambrica El dispositivo maestro envia através de la comunicacin serial un cardeter‘0" 0 T,en el lado «lel dispositivo esclavo se lee el dato envado y se interpreta, si es igual a0 el led se apaga oi lee 1 se prende, esto da el efecto den led comandado de forma inalémbica Descargar el siguiente ejemplo en el dispositive maestro yesclavo | | Sketch maestro | tivcudeSoFreserat te 1 30 define ol Pin? coma RX, PlnS camo TX SoftnaresertalaySertal(2,3)3// WK,TR void setup > (/Anicialtza ta comnicacton serial | Serial beginc96e0):, seta bapa); oid te0p¢ 9 t i hySertal writec‘1'9; Serial printlaC*LEd: on"); | ‘Setay( 2000) fySeriol meite(‘0"95 Sertal.printinc*Leo: of ‘et ayC206 } Fuben & Juan torts Oma Ramos £2 AMsomegs s a Sketch esclavo inelewin = 123 // usamos un pin de satida ot LED oS oe Ye Wortaote lectura serial void sotupe > | PensecledPin, QUTPUDS GigreatueceecladPin, LOW; Seriol begin 3600): \ ) y | voidtooot > L i ort 2 faduto a manda dato, quardarto en estado srcseriat avattablec ) > € ) State = Serial. reod( 35 Frat eo porte del ‘cddtgo es soto para 1 cardcter © i ro) 11 sh el estado a8 0 ese seria Apagado "OFF" if Getote = “OD gttalnrseeCiedin, LOW Serial printinCLED: off » iy sk ol estat eg 1 ese serta Encendido “ON” | else if (state = "TC | ‘ortalwrieeClegPin, HIGHS Sorta prine\nCeLED: ont)$ | | - | ‘origura 3.11 Dosen 8 deposi Termémetro inalémbrico in elsiuiente proyecto se presenta una apicain en donde aun dlspostivo massto seo eee er de temperatura DAT, ste envi el dato dela temperatura 2 un spose | ae ronectad aly ena pantalla LCD se despllegan Tos datos de la temperacurs | Dispositive maestro Dispositivo esclave | s6 oun y Ane. roy wears para sas watches, smart vy spe mv ‘Acontinuacin, se presentan las imigenes con los resultados abtenidos COdigos de cada uno de los dispositivas: | eer include ‘include “DHT.A 17 0 define ol Pin como Wk, Pins cows Tx SoFtwaresertalmyserial(2,3)4// Bt,TX fdefoe OMTPIN 7 fete OATTYPE. OT. DMT cnecontPan, oMtT¥PE); votdsetuo( > U/inictaliza to commicacién serial ‘Serial.beginc3600); mySeriat -beginc36eo); hecboaine 3s ¥ void toop¢ > £ float temperature = aht.readremperaturet 3; | rySeriat -printCtenperature): | aelay(s00); L y ben & sn ome Oba Ramos Alfaomegs ” [ opt nse | | Liquictrystalted(a2, 11, 5, 4, 3, 25 Tedsbepin(6, 2) | Serial. beainceom; ed, setcursor(9,0): | led print"Tenperatura:") | votd setupe > ¢ | y void Loop) £ ‘FcSeriat aval tablet ) > Of fiato = Serial porseine( >; ed, serCursorC2, 0); j Ted printccoto)s led prantcenar(223)); | led.print CDs y } | Otras aplicaciones En os siguientes capitulos se mostrarin ejemplos donde se construirin dispositivos de forma inakambrica mediante las bases aprendidas en este apartado, y com ello se puedan usar sobre la ropa para uso personal 0 accesorio, A continuacién, se detallan algunos ejemplos que pue- den realizar dichafuncién: ocinas-bluetooth ‘Anillo para contra de acceso Playera interactiva ‘Tapete educative Cuidador de ninos para cuna Reloj con posicionamiento Rastreador por GPS Collar rastreador Pulsera inteligente ‘Termémetro de temperatura para niios Deteccién de humedad en un calzado Sensor de pulso cardiaco Dispositive para acceso controlado Cachucha intaligente Robot mévil controlade desde dispositive mévil Lentesintligentes 4% 3.4 DESARROLLO DE APLICACIONES CON ANDROID via BLUETOOTH En este apartado se estudiarén las aplicaciones directamenteelaboradas con Android median: {eel ambiente de desarrollo Android Studio. Se reaizarén algunos proyectos de contol y mo- nitoreo en los que se utiliza la comunieacién bluetooth, donde la tarjeta Arduino ser el esclavo ‘yl dispositive mévil ocupari el hugar de maestro Control de satidas digitales desde Android a través de bluetooth En esta seccin se veré como controlar salidas con el uso de! famoso framework Android Stud Requerimientos de hardware En este proyecto se requiere lo siguiente: ‘Tarjeta Arduino UNO Médula bluetooth HC-05 Cables macho-hembra para conectare] médulo al Arduino ‘Requerimientos de software Se requiere instala la libreria para Arduino llamada Meetabdrofd.y; se instala la apcacion ‘Amarino en el celular para interconectar y encontrar los dispostivos bluetaoth en el telefono ‘movil Se puede obtener del siguiente ink: |L_hup://onsamarine-toolicnet/indexphp/downtoad hem Configuracion y deteccién de los dispositivos en la aplicacién Amarino 2.0 Primero, es necesaro activar el dispositivo bluetooth en el teléfono movi, Fruson Juan Torts Ova Rao Alfamega ° A Posteriormente, se requierealladirun nuevo dispastivo. La aplicacin detecta los dispositive. Figura 316 Aatein se He-05 El dispositive bluetooth esta cor sctamente configurade y listo para trabajaryenlazars Soar) ruée & van Tors Ova Rae A Ateomegs a Finalmente, se captura el eidiga 1234 para sincronizar el dispostivo. ee ae Guetotn Pee eee aL ee Figura 2.49 Capua Creacién de una aplicacién en Android Studlo Esta esa interfaz en Android Studio para control de una salida digital dela tarjeta Arduino. > ue Ss Android - Arduino /Gonnece En espera. Disconnect ON Pins! OFF Pin 8 (Figura 3.20 nase de Arto Sta - $3 Desaralo de epcsconss con Andi va Bustoom il cigo XML dela intrfaz en Android Studio es Archivo de e6igoen formato XMI. <4 inearLayoutsalns:android."htp://schemas.androidcam/apk/nes/androig™ android: Layout width="*ll_parent” android: Layout height="hll_parent™ android:orientation="vertical” = -leogeview androtd: ide"@sid/émogevient” ‘android: Layout_width*natch_porent”™ ‘ndroid: layout_height="wrap.content™ ‘android: sre="@dranable/conector™ /+ “tutton ondroid: ide"®sid/outton’” android: Layout width~*natch parent” android: Layout _height="wrap_content™ fondrotdienclick="conectar” android: texts"Connect..." android: textsizen"15pt" /s -anageview android: id="@sid/imageVien2 gnuruis. Layout. widthetmaten_ parent” fandrotd: Layout _height~"wrap_content™ ‘android: gravity="center” androtd:sre="@dronable/off™ /> ctextview android: ide"@vid/textviens” android: Layout-width="natch.parent” android: Layout_hetght="wrap content” ondrad: background="#FFFF33" Gnaroid: textAppearance="?androld:attr/textAppearanceLarge” /= button android: id-"@eie/buttont” tandroid: layout. widthetnatch.parent” tandroid: Layout hei ght="wrap_content” fandrotdzonClicke"encender” android: text="0N Pin 8” android: textSize="15pt” /> auton Gnd do"Beid/outton2” androids Layout wideh="natch_parent™ ndroid: Layout_hetght="wrap_content” ‘android:onClick="apagar android: textSize=*159¢" android: text="OFF Pin 8 /> 6 din y Ancol. Proyectos wearable para sma walhas, at dapostves moves “scrotview- SAineorLayout> El cbdigo de a clase de Java es: packageror.meetandroid; ‘importondroid.os. Bundle: inportandroid. app. Activity; inportandroid.graphics.Color; mportandroid.view.Wena; smportandroid. view. view; importendroia. widget Button importondroid. widget -InageView; ‘wportondroid.widget.TextView: ‘nportat.cbraxas.onarina. marine; 1 cambio de la direceién MAC por la del dispositive se reaiza private static final String DEVICE ADDRESS = “08:03:31:50:0F:86", eds = CInageview) findView’yTacR. id. imageVten2); render = (Button) findVienyZACR. id. button); ‘pagar = CButton) fndView’ylacR.id.button2>; ‘textstatus = CTextView) sndVieniyrd(R. td. textvien?); public void conector(View view) ( ‘Anarino.cornectCthis, OEVICE_AODRESS); eds. set InogeResourco(R. dranable..on) ‘txtstatus.setTextColor(Color GREEN); txtstatus, setText("Conected”); > public void desconectarcvier view){ ‘Anarino.disconnect(this, DEVICE ADDRESS); eds. seUTnuyeRescuree(R-dramible.ot; txestatus. setTextColor(Color RED); ‘extstatus.setTextCDisconected"); public void encender(view view) £ Fupén 8 sn Torsis Oba Faas AM « a Anarino.sendDataToArduinoCthis, DEVICE ADDRESS, "”,on)s z public void apagarcview view { ‘Qnarino.sendDotaToArduinaCehis, DEVICE ADDRESS, "8" offs 2 Er coy en Arduino es: HincludedleetAndroid. tm MeetAndro\dneetAndrotds intonboordled = 8: void setup > £ ‘17 use the baud rate your bluetooth module is configured to 71 we ALY boud rates are working wall, 1.e. ATVEGALES works best with 57600 Seria. .begin( 3600); 17 register caltbock functions, which will be called when an ossociated event occurs. V7 the frst parameter is the nane of your function (see below) J) = watch the second parameter CA", “BY, fa", ete...) with the flog on your Android application meettndroid.registerFunctionCon, ‘A'): neetandroid.registerFunctionCoft, *8°Ds pirtodeConboordted, OUTPUT); 3 void Loop 2 t eetinienid.cecetvet ): // you need to keep this in your LoopC ) to receive y void onchyte fag, byte numOFValues) £ digitaimesteCorboardLed 165); 3 6 eon y And Proyectos wearable ra sist Watches. sat ty spesiios MOMs. void offCbyte flag, byte nunoFValues) i digitolWriteConboardLed, LON); 3 | scontinuacion se mmesran ns resulta: j ie £ Android - Arduino Connect... Disconnect ON Pin8 OFF Pins Fupén tunes Ova Ramos: 2 Atfomess Control de led RGB con desarrollo de una aplicacién en Android Studio Interfaz en Android Studio en modo preview oe i { | | geen 232 sea tei packageror-rabs inportandrotd.os. Bundles Sneortandeatd opp -Retivi ty Iimpartenaroid,qraphics.Colors inportandrotd. vie Kena ‘mortondratd view: Vien: lnportondroiawiaget-SeekBors ‘Mbortandrotd. widget, SeeKBar_OnSeekBorChangetistener mportandrotd. widget. extv ies // 40 declra Yo clase y se implenenta el seek bar fibtic clase Mointctivity extends Activity inplenents UnseekBorchangeL istener private static final String DEVICE_ADDRESS = "00:12:08:07:12:46"; Tréeclaronas los variables 34-Dosaroto de apeaconse con Ando vie Busia Seeklar rojo: Seektar verde; SeekBar azul Text ewpos03 TextVienpmaverde; Textvienpumaztl ‘“iaator nicial del pun det color rojo intvalor inictal rose @ intvalon_inictal verde {ntvolor_inicial azul= @; eoverride protected void ontreate(tundle savedinstanceState) { ‘super nreateCsovedinstancestate);, setContentV ent Layout. activity main); pravojo = CTextview) fraViewBylaCR. id. txtrojo)s rojo = (SeekBar) fraiewsy a(R. d.barra);, prawverde = CTextViw) fav ienByIaCR. 40. txtverde); verde» (SeckBar) fntViewty4CR. 4d. borra2); pimazul = CTextVien) frVienByI4(R, id. txtazul); aul ~ (Seekbor) fnd¥iew@yLd(R.4d.barr3); //se registra et metodo de esccha del ssekbar rojo. setOnseetarchangeL stener this); verde. setOnseekBarchongel.istener(this); ‘zu setOnseeksorChangeLstener(this)s > override publ icbooteanoncreatecptionsHenuCMery manu) { 7/ Trfiate the wena; 2115 adds items to the action bor iF it ts present getieratafiater( )-taflote(R-mens.main, menu): return rues : override public void orProgresschangea(SeekBorseeksor, Intprogress,booleanfrenser) { 7 NODO Auto-generated method stub /omarojo.settextCvolor PW Rojo: “sprogress); Fr & an Toms Of Ramos Alaa ° capita - Cans con Blah valor-inicial-roja ~ rojo.getProgress( 3: /ipmeverde-setText Calor Pit Verde: “sprosress)s (lor inieiol verde = verde.getProgress( 25 roma sebTextCvalor PIL Azul: *eprogress): (alors iniciol-czul = azul getProgressC 95 saorino,sencataroarduinoCthis, DEVICE no0ness,'e? wotor-inieial rojo); marino. sendbataTokrduinocthis, DEVICE ‘AooRESS, "'V" walor-inicial-verde)s Snarino.sendbotaratrduinoctnis, DEVICE. ‘o0RES5, "0" wolor-tmicial_azul)s } override public votd onStortTrackingTouch(SeekBarsesktor) { 7) TOO0 Auto-generated method stub > eoverride public void onStopTrackingTouch(SeekBarseekBor) { "7 ToD0 Ruto-generoted method stu Dublic void conectar(vien view) smorino.connect(this, DEVICE.ADORESS); rojo.setPragress(valor_iniciol rojo): Verde, setProgress(votor_iniciol_verde)s (aut setProgress(volor.inicial-azv1Ds 3 public votd dasconectarcViem view Torino. disconnect(this, DEVICE_ADORESS): ? Sl cédigo en Arduino es: include eettndrotd.te> MeetAndroidmeettndroid; 10 china y Ancol. Proyectos wearable pera san watches, smart ¥ spose mes, void setup 9 Serial .beain3600); imectindroid. registerFunction(red, PDs imeetindroid.registerFunctioncverde, "Ds rneatindrotd. regtsterFunction¢azut, 'a"; ? wid Loop 9 t ectindroid. receivet 3; + void redCbyte flag, byte munofvalues) £ anologiniteC1, meetAndrotd.getintc 9D: 3 voldverdeCoyte fag, byte runotValues) t cnalogtrite(s, meattndroid.getint 9): } voidazul byte flag, byte nuno#values) i analoguite(10, seethndrotd. gatIntC >); y | origura.23 Conssién do lea RG Aube &Juon Toms Ova Rams Alfamega Control de motor de DC desde una aplicacién en Android Requerimientos de hardware tel siguente dlagrama se observa ciecutointegrado (1.2930), el cua se wiizarépara cam bare giro y para el control ce velocidad del motor | vecs | weed ae oor 1 ialwwur 4 | eur 93) Fjourrur « | —2n0 () x0 Ano fa] tajoxo | ror 2 (3) ijourrur + wwour 217] eur | eli] var mr 2 5 Vec2 ‘Se muestran las conexiones finales con la tarjeta Antuino: | origura 3.25 Canesnes nas con Arduino 3 net artcines con Anti via atc Cédigo en Arduino: include teetAndraid. n> Hincludectiquidcrystal.he // (nclute la Libreria para LCD Liguiacrystanted(t2,11,5,4,3,295 MecttndroidrectAndroid; /reonnguracton de pines det arauino int EN = 9; int IML = 75 int IN2 = 8; int pin = 13; into; void setunc ) £ detay(S00); // pousa requerida pora inicializer el LCD ed. begin(i6, 2); // selecciona et numero de renglanes y colusnas Serial begin(9600); Led.setCursor(®, 0; led.printc® Motor €D "; Acd.setCursor¢®, 1); lcd. print Arduino Andro D5 rmeetindroid. registerfunction(Lequierds, * fadelante neetindroid.registenFunction(berecha, “d"); //funcion se meve motor atras meetindroid. registenfunct\oncoetener, “s"); //funcion se detiene mater smectindroid.registerFunction(velocidad, ‘V"); //eontrol de velocidad motor 5 /funcion se mueve motor 17 Conbouinenos Las terminales det ardine 17 BNL pin 1 del puente H va conectedo ol pin 11 del arciine (PM) para control de 1a velocidad 7/ INL y IN2 son los pines del arduiro (7 y 8) el 7 se conecta al 7 det puente # 77 €1 pin No. 8 se conecta al 2 del puente h para controt det giro 7 van conectades. ¥ confguracs cono salidas todos pirsiodeCpin, OUTPUT); pirlodeCENL OUTPUT; pirkodeCINL, OUTPUT): utn 8 ua Tomts ova aos: Altnmene os Capita Cone con teh piModeCIN2 OUTPUT; digitatmrieecpin, LOW; 3 void Loop > t imeetAndraid.receivet 9; y Yoidvelocidadtbyte flag, byte nuxoFValues) < //con esta instruccién le estamos diciendo al Arduino 7/que va a recibir el valor enviado desde Androta Zor el pin No. 9 va a enviar el valor PIM recibide pies = mectAndroid.getineC >; ‘analog teCEM, pam); Yed.clear€ 9; ed. setCursor¢@, @; led.printc™ Motor -ON- Led. setCursorc®, 195 led,printc* PRM led: print(pan); 3 votd Tzquierdachyte flag, byte nusoFValues) £ pi = mecttndroid.getIntC 3: anatogl teCENt pam) digitatnrieecrel, LOW; digitaltiritecin2,HIGD; Yed.cleare 3 Led. setcurserco, 0 led.printC* Motor -ON- "5 Led. setcursor(®, 195 Led.printc® PRM = "D5 ed. printcpwm); + voidderechachyte fag, byte numofvalues) £ pum = meetindroid.getintc 3; ‘nalogtr’teCENL, pr) digitatnriteCIn HIG; digitatmrieecrn2, LON); ™ Arhino y Ana, Proyectos wearable pra smart watches srt vy dpostvos mois — 54 -Dosorto te apeacons con Aoi a tot ed.elear€ 35 led. setCursorco, 0); led.printc Motor -ON- ted.setCursor(®, 1); ed. print Pi = *); ted. print Cpa); 3 voiddetenercbyte flag, byLe umofvalues) £ pint = mectAndroid.getintC ; ‘naloateteCENL pom); ed.clearC 9; Led. setcurcar(®, 0); led. print¢* Motor OFF “D3 ed. setCursor(@, 2D; led.printC* Pat = 5 led. printCoveny; delay(3000); ed. setCursor(@, 0); Lcd. printc* Motor CD“); Led. setcursor(@, 1); led. printC*Arduino-Android”); ? Funciones de control realizadas en Android Studio: j publicvoid Tzquiendacview view) { vel = control getProgress¢ ); i intcontrolbarra = vel; control setProgress(vel); pm. setText(Value PW: “scontrolberra): airo,setTextColor(Color GREEN); adelante. setTextcolor(Color. GREEN); giro.setText("Motor: Left"); control setEnabledctrued; Conectar, setEnabled( false); ddetenersetEnabled( true); ben & an Torts Ola Ramos Aleomega 8 —— atras.setTextColor(Color. LACK); detener, setTextColor(Color BLACK; marino sendDataToArduinoCthis, DEVICE ADDRESS, "i, vel); public void DerechaCview view) { vel = control .getProgress( ): intcontrolbarra = vel; control setProgress(vel); pen. setTextC*Value Pll: “scontrolbarra); giro. settextcolor¢color.BLUE); atras.setTextColor¢Color. BLUE); giro.setTextCmotor: Right"); Conectar. setEnabled( False); detener.setEnabled« true) control setEnabled¢true); adelante. setTextColor(Color. BLACK); detener. setTextColor(color BLACK; ‘marino. sendDataToArduinoCehts, DEVICE. ADDRESS, 'd”, vel); ¥ public void Detenercview view) { intvel = 0; intcontrotbarra = 0; control setProgress(vel); im. setTextC“Value PAM: “scontrolbarra)s giro. setTextColor(Color.RED); detener.setTextColer(Color. RED); giro.setText("Motor: Stopped"); Aanarino.sendDataTotrduineCtnis, DEVICE ADORESS,'s*, vet; Descanectar.setfnabtedt true); ddetencr.setEnableaCfalse); control seténabled¢false); adelante. setTextcolor¢Color.BLACKD; %6 ‘Nase y Ana, Peyecios wtae pa nat watches, st Wy capostns movies i i co ‘Se observa la interfaz inal coma se presenta en la sigulente figura | Control Android- | Arduino Stop Value PWM: Figura 3.26 ior nat Se muestran las conexiones y los resultados finales ubsn 8 tn Tete Ova Ramos: 4 Attvomess n apt 3 Conetiaa con toot — é Monitoreo de temperatura con sensor LM35DZ. desde Androi 1 siguiente proyecto consistiré en monitorear la temperatura desde una aplieaciin en Am “droid: continuacién se muestra la interfaz read en Android Studio: (Codigo en Arduino: BincludectiquidCeystal.to// incluir la Vibreria pare LCD include deetAndroid. to Meetandroidnectandroids LiqutacrystaltedCi2,21,5,4,3,205 Aeatanologico = 0; void setup 2 £ delay(s0e); // pausa requerida para inicializar et LCD led.begin(16, 29; // selecciona el ntimero de rengtones y columas Serial .begin( 9600); 3 oid teopc > € sseotandroid.receiveC 33 analogico = analogRead¢®); fact volts ~ (5.08 * analogico) / 1024; Ved. setCurserc®, 0); led.print(* volts ed. printcvolts,2); ”: foatcentigrado ~ Canalogico * 500)/1024; // operacién matendtica de escala~ 40 en grados Serial .printCcentigrado); Serial .printin¢* degrees Celsius, Led. setCursor@@, 1 17 Postetona el cursor en Ya ol. ren.0) led.printC Teap = "i led. printccentigrado, 1); Led.wrieeC223)5 17 euestra el ASCIT 223 Csimbolo de ‘grads led.printc“e "5 17 muestra mensaje en LCD | | 78 Arduino y Ancol, Proyectos worable para smart watches, sma spostvos move, An 14 Destroo ds aptosciones cn Ad via Busoth Serial print (centigrade * 9) / 5 + 32); // conversion a Fahrenheit Seriat printlnc® Degrees Fanrennelt”); Serial printC"Temperature at room: ”); meetancroid.send(centigrado); // ervia el valor de 1a tenperatura delay(2000); //cada segundo envia el dato y Cédigo de la apticacién en Android: ‘Se manda a llamar ol receiver public void conectarcview view £ ‘marina. connect (his, DEVICE ADORESS); Use registra el ardiino Receiver registerReceiverCarduinokeceiver, new IntentFilter ‘Gwar inotintent. ACTION. RECEIVED); 3 public class ArduinoReceiver extends Breadcastheceiver { override public void onteceivecContext context, Intent intent) { String data = null; // the device address from which the data was sent, we don"t need it here but to denonstrate how you retrieve it final String address = intent.getStringéxtraCamarinotiitent. EXTRA_DEVICE_ ADDRESS); 1 the type of data which is added to the intent fnolintdatatype ~ intent.getIntExtraCknaeinolintent.EXTRA_OATA TYPE, 0); 17 we only expect String data though, but it is better to check if really string was sent // Vater Amarin will support differnt data types, so far data cones always as string and // you have to parse the data to the type you have sent from Arduino, like it is shown below iF CGatatype == Anarinotntent. STRING-EXTRAD( data = intent .getStringExtraCamarinotntent.EXTRADATAD; AF dota t= mute Fuben& tun ets Oa Ramos: Altemeg » emp. setText (ata); ? z Acontinuacin, se muestra la Interfax de la aplicaci: Android - Arduino 32.71 Degrees Celsius, 90.89 Degrees Fahrenheit ‘Temperature at room: Los resultados de las conexiones del sensor ‘Figura 3.29 Mesutios de acon k& | Envfo de SET POINT para control de temperatura En este proyecto se desarrollar todo lo relative alos proyectos anteriores. Se muestrala pant slaborada en Android Studio, UC e Muy elect Control { | starust DIGITAL WRITE: TOGGLE ON/OFF | “ANALOG WRITEO.255 co ies ae Be SETPONT, DIGITAL WRITE- TOGGLE ON/OFF Gi a2 SE Be SeTPONT: Cédigo de la aplicacién en Arduino: #includedteetAndroid. to FincludestiquidCrystal b> // inclutr 1a brent para L¢b include £ delay(500); // pausa requerida para iniciolizar el LOD ed. begin, 2); // selecciona el numero de renglones y columnas Serial -bagin(96aa); Ted.setCursor@®, 1); ed. primc*sP: cd. printcspt, 1D; //SALIDAS.RELEVADORES pirModec?, OUTPUT); pirblodec8, OUTPUT); pirlodeC13 OUTPUT); eettndroid.registerFunction(Servanotor, ‘v'); //controt de Servonstor eetAndroid.registerfunctionCuno, "1"D; //control de PIM Tedt neetandroid.registerFunction(sp, ‘cD; //recepcién de mensaje eettndroid.registerFunction(s7an, ‘é"); //salide s7 on mmeetandroid.ragisterFunction(s7oFF, ‘e"); //solida s7 off neetAndroid.registerFunction(s8on, “f"); //salida s8 on neetAndroid.registerFunction(s8oFf, ‘a’); //salida s8 off niservo.attech(10); 3 void Loop. £ rmectndroid.receivec i Teertenperaturet > | digitale tec? 2089, aura y Anca. Proectos wenrabe pa ama watches, nat y postive meee 514-Desaroo de apacionts con Ano vie Beooh igh tatwei tec8, GHD; > Void sBoffCbyte flog, byte nunotvatues) t digitaltrite(s, Lom; ¥ Voidunotoyte fag, byte nunofvalues) £ enalognriveco, meetandrotd.getinee 933 p voidsp(byte flag, byte munoValues) { spt = mectAndroid.getFtoot( 9; Ved. setCursor®, 25 Led. prints: 9; led. printCspt,195 led. prinec™ *); ? void ServomotorCbyte flog, byte nuxOFValues) £ olor « meetandroid.getInt< >: val = mapCvator,0,1023,2,180); niiservo.urite(val); deray(15); y /Praiva pore realizar la lecture de temperatura desde el sensor LAS conec- ‘ado en el conal 0. ‘/Feoliza un promedio de 1a Lectura para una mayor estabi dod voidleertenperaturat >£ = analogRead¢sensor); tempt * 6.0048) * 120; // pronedio del valor para Logrer mayor estabilicad voleri = valori +1; // increnerta esta variable de 1 en ‘emp = tenp + tempt; EF Calor == 1000) // aqui se estabtece el maximo de valores @ pranedior: Para este ejemplo son 1200 Lecturas. £ ‘tenp_prom weap / 1000; // realiza to operacién para el promedio Fubsn & dua Tots Oa Rams 4 Alfomegs % ‘opiates -Conatvisad con Busty rneetAndrotd. sendtenp_prom; // envia el valor de 1a terperatura Ted.setCursor(@,0); // posiciona el cursor col.0, ren.0 ed.printC*Teep = "5 ed-printCtemp.pron,1); // muestra et volor de ta temperatura con 1 decimal fen el LCD Ted ari toC223)5 Yea. printc*C 17 vestablece valores vatorl = 8; ‘temp = 0; delay(200); alertatempe 3: 3 3 //ratina para verifcar si se exced\6 1a texperatura deseada y mande una alerta voidalertatenn’ > iF Ctenp_promspt){ digitaltiri tec 13,40); ed. setCursor@®, 1 ed. printc*Si3-08 y else £ digitaliteitect3, LOW; ed. setCursor(®, 1; Led. printc*SI3-0FF"5 3 2 codigo de la aplicacién de Android: public void s7(view view) { LF (CCTogateButtorDtoggles7). (sChecked¢ 9) t intwal = 05 57. setTmageResource(R.dranoble.ons7); "arorine. sendDataToArduinoCthis, DEVICE ADDRESS, "a? val )¢ + a ran y Ancol, Poyectos wearable pra smart watchs na ty dspostvos mle. } | else £ intval = 2; 57.setInogeResource(R.drancble.oF 57); at ‘marino. senddotaTotrduinoCehis, DEVICE ADDRESS, "e* val); y } public void s8(View view) { iF (CToggleButtondtoggtess) -ischecked 9) ‘ intvat = 0; ‘6. setInageResource(R.dranable.ons8); ‘marino, sendataTosrduinac this, DEVICE ADDRESS, "vat; } else { intvat = 1; 58, setTnageResource(R. dranoble. off); marino, sendDataTokrduino( this, DEVICE ADORESS, "9 val); + r Gédigo del botén Enviar setpoint a Arduino: Eldato enviado desde Android se mostrar en la pantalla LCD conectada al Arduino public void EnviarCview view) £ //cbdi.ga para enviar un riinero Aotante String mensaje: nensaje = Envior.getText ).toString( 3; sp = Float.parseFleat(mencaje); ‘marino. sendbatatokrduinoCthis, DEVICE ADORESS,"€" SP); , public class ArduinoReceiver extends BronicastReceiver eoverride public void onteceive(Context context, Intent intent) { String data = mutts fal String address ~ tntent.getStringExtra ute & han Tons Ova Ramos 4 Alamosa 5 re (Amarinotntent -EXTRA.DEVICE_AODRESS); ‘inalintéatatype ~ intent .getIntExtraCknarinotntent EXTRALDATALTYPE, 1D; iF CdotoType = Amar nolntent .STRING_EXTRAD{ ddata = intent. getStringextraCAaarinoTntert.EXTRA.DATAY: if Cat te mule temp. setText(data); doubletemperatura = Double AF Ceemperatura>sp) 4 rnensajetemp.set Text "STATUS ‘TEMPERATURE: HIGH"); mensajetenp.setTextColor (Color.RED); vibrator. vibratecSe00); + else t mensajetenp.setText "STATUS TOIPERATURE: LOW"; mensajetenp.setTextcolor (Color. BUCO; rivibrator-cancel( ? > 3 3 > 3 Gédigo del control del setpoint “Pam versiens"1,0" encodingeutf-8"2> Seonj fest smins:android=ntp://schemns android. con/apk/res/android” package="ror androieontrol” ndrotd:verstoncode="1” 86 ean y Anko. roves west para mat wlcnes mar vy dpasivos mows i encroid:versionvame="1.0" > -aises-sde android: minsaiverston=8” android: targetSakversion="18" /= - -creceiver ondroid:none="MyReceiver”> Sintent-filter> action android: nam actions intent-flter> receivers - ‘android. AnarinoTntent. ACTION CONNECT” Android Manifest XML 3.4.1 Bluno Beetle BeetleBle (antiguo nombre BlunoBeetle) es un Arduino, uno con tecnologia bluetooth 40 (BLE). Es probablemente el Arduino BLE mas pequeno en el mercado. Usliza el IDE estéindar de Arduino para cargar cédigos sin utaar ninguna Ibreria adicional y controladores. Este Beetle BLE es oto hijo en la linea Beetle, lo que hace que lo usuarios DIY tengan mis opciones ‘enel dsefio del proyecto. Es totalmente compatible con Bluno en instrucciones y procedimnin t0s.Soporta los modes bluetooth HID e ibeacon. Fen tu Tete Ove Rares, Aaomegs G Beetle ofrece un pequefo Arduino con bluetooth 4.0 yb -osto, EI BLE se puede ut fizar para proyectos desechables, alleres, proyectos ce regao, ET wearable y educa tivos. Para los estudiantes y los fabricantes que no pueden gastar demasiado en la compra tie hardware, Beetle puede ser una gran solucién. No s6lo soporta la programacién USB, sino también el método de progeamacion in mbrica, Com la interfaz en forma de V de B/S dora dies conveniente atornillar el conductor en pues padria ser una buena opein en el mer Figura 3-21 Tayo do desavoto Bune Seats ne ieee Cams Caracteristleas: ‘Atmega328 @ 16MHz ‘Bluetooth baja energia (BT 4.0) 1 Detaralle de apeaciones con Ando a Bath e Puerto micro USB " | Soporta bluetooth HID e ibeacon_ of Compatible con tadas las series bluno de DFRobot ea i Soporta programacién inalambrica . | 3.4.2 Bluno Nano El segundo miembro de la familia Bluno de DFRobot, esol Bluno Nano, Leg6 con el tamafe de luna goma; es perfecto para proyectos BLE con espacio o peso limitado. Actualmente todo se hace intligente: as pulseras los relojes supervisan comportamientas diario y se convierten en sociales: los complementos de la cémara controlados pore teléfono se mueven y toman fotos. Los jardinesinteligentes crecen prcticamente en el ipady el inter ‘cambio e Fei la feenologta Bluetooth Low Energy ha logrado que esto sea facil yaleanzable. Es emocionante ver tal cantidad de aparatosinteligentes pero, no es laconstruccién de dspo: sitives propios y la solucién de problemas ain mas emocionante? ‘Acestasalturas ya es posible integrar Bluetooth 40 en algin proyecto junto con el telefono, Para Jos aficlonados de los disposttivos inteligentes y wearabes, ahora es posible ie ms alla {el hackeo de casas compradas en el mercado para construir un prototipo personal abe &.tan Tome Oba Roms Atfaemegs ® La placa Bluno es la primera en integra el médulo BT 4.0 (BLE) en Arduino Uno, fo cual converte en una pltalorma dle prototipos ideal para desarrolladores de software y hardws ve Bt lector sera capaz de elaborar su propia pulsera, podémetro inteligente y mucho mis. A través de la tecnologia de baja potencia bluetooth 40, la comunicacién en tiempo real de bai cenergia se puede hacer sumamente fll Bluno Nano también integra un chip TI CC2540 BT 40 con la placa de desarrollo Arduino Uno. permite ls pragramacion inalimbrieaa través de BLE, soporta bluetooth HID, elcomando IAT para configurarel BLE y puede aetualizar fécilmente el firmware BLE, ‘uno también es compatible con todos las pines Arduino Uno, to que significa que cualquier proyecto hecho con él puede ser diectamente inalimbrico, Ademas, se desarrollé a App pars Blane (para Android e105) y es completamente opensource para poder modificar y desarto- llar una plataforma propia de hardware y software, Especificaciones: (Chip BLE inteprado: TICC2540 Soporta programacion inalimbrica via BLE Soporta Bluetooth HID Saporta IBeacons ‘Comando de soporte AT para configurar el BLE Comunicacién transparente através de puerto serial Actualizar firmware BLE faclmente Fuente de energia: mediante USB o externo 7V ~ 12V DG Microcontrolador: Atmega328 Bootloader: Arduino Uno. Compatible con pines de! Arduino UNO “Tamafio; S2x1981 2mm (2.09x0.75x0.47") Peso: 208, = oiqura 3.33 pine aro °° rain y Ancol, Proyec wate pa mart watchs, sma ty sposahos mov. : : | £ Serial .begin(4115200); //initialthe Serial } voidtoone 9 { if (Serial availablec 9) £ Abn & ian Torte Ola ames, Aleomegn % Serial writeCseriat read 9);//send what has been received Serial printin€ ); //print tine feed character I } Seleccionar en la lista de tarjetas, en el meng Herramientas del IDE de Arduino, la placa Arduino UNO Descargar a keteh El programa sélorealiza una cosa: replica el dato ledo por el puerto seri En Android Descargar a aplieacién remote Bluno ‘Acontinuacin se presentan las pantallas del ejemplo realizado: Deteceién de dispositive bluetooth: ‘Su dispositive (Samsung Galaxy J3 (2016) es visible para los dispositivos cercancs. Dispositvos disponibles @ BlunoV1.8 rigura 3.35 Dusosun desc o2 ‘uaunoy Ancol, Proyectos wearable pa amar watches, sat y depois move, sjecucién de apicacién: Send Dota Received Data: Figura 3.36 Ejecuin a apleacion Dar clic en el botén Sean para buscar el dispositivo; aparece el encontrado, se selecciona yah rasehabré de conectar ‘OFigura 3.37 Conesn de apoio trae ova Rares 2 Atoms “aparece et botén Gonnected el dispastivo se enuentrapareado; ahora realiza la prueba de aonrvcnviados desde ol mévily e captura el dato que se mandaré; presionar el botén Send ‘oFigara'3.38 Son Comectos ——- QQ RESUMEN o” chino yAnce, Poyectos weseale pra san watches, sma y SpDSRNDS Hv

You might also like