Manual Conexion Java-Arduino Bluetooth

21
Manual para establecer conexión JAVA-ARDUINO mediante tecnología bluetooth y su aplicación en el uso de Frame.

description

comunicacion serial a traves de modulo bluetooth con arduino e interfaz grafica java

Transcript of Manual Conexion Java-Arduino Bluetooth

Manual para establecer

conexión

JAVA-ARDUINO

mediante tecnología

bluetooth y su aplicación en

el uso de Frame.

Elaborado por:

Cristhian Guerra

Fernando Tapia

ING. ELECTRONICA

PROGRAMACION II

ING. VINICIO

CHANGOLUISA

1.- INTROCUCCION.-

En este documento se procederá a la explicacion detallada para desarrollar la

coneccion de Java con Arduino mediante el uso de la tecnología Bluetooth y

posteriormente poder aplicar esta conexión para desarrollar el funcionamiento

de un ascensor simulado mediante el programa Eclipse.

Seria de mucha ayuda para los estudiantes que deseen establecer este tipo de

conexiones consultar este manual antes y/o durante la realización de su

proyecto, ya que los guiará paso a paso en el manejo adecuado tanto del

programa Eclipse como de Arduino para realizar la simulación de un asensor y

a su vez el uso adecuado del bluetooth.

Con el fin de facilitar la comprensión del manual, se incluye gráficos

explicativos de todas las instancias del proyecto

IMPORTANTE.- Es muy importante mencionar que los estudiantes deben tener

un nivel básico de programación II ya que en un 90% del manual se habla en

lenguaje técnico.

2.- OBJETIVOS DEL MANUAL.-

2.1 Objetivo General

El objetivo primordial de éste manual es ayudar y guiar al estudiante para la realizar la simulación del funcionamiento completo de un ascensor en el cual incluiremos sensores infrarrojo y de temperatura. Deseamos realizar mas que nada el como seria la programación de todo su funcionamiento y beneficios que podemos lograr en esta simulación.

2.2 Objetivos Específicos

Lograr que el estudiante se familiarize con todo lo relacionado a la clase

JFrame y todas las utilidades que esta nos puede brindar al poder

combinarlas con los denominados eventos e hilos de programación.

Establecer un conocimiento básico sobre el uso de la tarjeta Arduino y su

programación para posteriormente aplicarla con el uso de Java

exclusivamete con el programa Eclipse.

3.- LO QUE DEBE CONOCER.-

Los conocimientos mínimos que deben tener las personas que van a

desarrollar este tipo de proyecto son:

Conocimientos básicos acerca Programación I.

Conocimientos básicos de la utilización de la tarjeta Arduino.

Conocimiento básico sobre el uso del modulo Bluetooth.

Conicimiento básico sobre los componentes que se utilizan en los Frame.

4.- HERRAMIENTAS.- Java Eclipse Tarjeta Arduino UNO Cargador de 5V para arduino. Protoboard Sensores infrarrojos Sensor térmico Leds Modulo Bluetooth HC-05

5.- DESARROLLO DEL TRABAJO.-

Para que el estudiante pueda tener idea del proyecto, procederemos a realizar una

descripcion general del funcionamiento del asensor que va a ser simulado en el

programa Eclipse y el cual cumple con algunas características y condiciones

necesarias:

PRIMERO.-

Creamos un Frame que va a llevar tres temas principales, la primera parte será

llamada panel exterior mediante un g.drawString ubicando en a parte inferior de

este cuadro, luego vamos a realizar dos botones para este panel mediante JButton

el cual nos indicara uno la opción de subir y el otro botón que diga bajar, le damos

una acción a estos botones la cual será mediante un JLabel poner en dos

condiciones si es un piso menor en el que estamos nos marque que podemos

subir, entonces nos sale alado la frase en nuestro caso que esta en movimiento,

en la parte práctica lo que consigue es que se encienda un led programando en

arduino que si recibe la señal de 1 se encienda un led, y si recibe la señal de 0

entonces se apague este led, volviendo a la parte de java indicamos que al estar

la señal de estar en movimiento esta encendido el led, y cuando hacemos un

segundo clic mostramos que estamos en el piso indicado entonces envía una

señal de 0 y se apaga el led.

SEGUNDO.-

Realizamos el mismo procedimiento para poder llevar a cabo la segunda parte la

cual llamaremos Panel Inferior, en este en cambio creamos botones que simulen

cada piso es decir piso 1, piso 2, etc. En este mostramos igualmente un indicador

de en que piso se esta subiendo o bajando y encendiendo un led por cada piso,

recibiendo independientemente una señal diferente para encender cada led por

cada piso y apagando los demás leds si no se esta en el piso, además del

segundo clic muestra haber llegado al destino.

TERCERO.-

Ahora en la parte de arduino vamos a utilizar dos sensores, el uno será nuestro

sensor de infrarrojo que programamos para activar en un encendido intermitente,

pero que calcula la distancia de un obstáculo a interferir entre el emisor y el

receptor entonces si esta demasiado cerca y tapado completamente va a quedar

encendido, si hay obstáculos acercándose entonces va a parpadear con más

rapidez.

El sensor de temperatura esta activandose mediante un botón, en el cual al

programar hacemos lo siguiente, en el Void Setup declaramos los pines en donde

va a ir conectado, en Void Loop vamos a ejecutar el programa en este caso

declaramos la variable que va a ir almacenando los datos enviados por el sensor,

finalmente ejecutamos desde java para asi concluir con el trabao realizado.

6.- EXPLICACION DETALLADA DEL TRABAJO.-

A continuación vamos a realizar el programa para poder expresar el

funcionamiento del ascensor pao a paso.

CONEXIÓN DEL BLUETOOTH.-

1.- Para poder agregar un dispositivo bluetooth(HC-05) a la computadora es

necesario verificar que la computadora donde vayan a trabajar tenga bluetooth

o sino caso contrario comprar un bluetooth móvil, es aquellos bluetooth que se

conectan de forma USB y se los instala con su respectivo método de

instalacion(CD).

2.- Una vez verificado que la computadora tenga bluetooth. Se procede a realizar

la conexion del modulo bluetooth con la tarjeta arduino.Este proceso es muy

sencillo. En la siguiente imagen se puede observar la instalación de las

terminales de la tarjeta arduino hacia las terminales del modulo bluetooth.

RXD------>TX(1)

TXD------>RX(0)

GND------>GND

VCC------>5V o 3.3V

3.- Se realiza la búsqueda del modulo bluetooth para posteriormente poder

agrrgarlo y asi realizar el emparejamiento con la computadora.

4.- Una vez encontrado el dispositivo y posteriormente agregado nos va a pedir su

contraseña para poder establecer correctamente la comunicación.

5.- Finalmete para que la conexión sea totalmente exitosa colocamos la

contraseña del dispositivo. En la mayoría de casos del dispositivo(HC-05) la

contraseña es 1,2,3,4.

6.- De esta manera cuando ya la conexion se realizó con éxito, podemos observar

que al abrir la configuración del bluetooth de la computadora y al al hacer clic

en la opción “Puertos COM”, nos va a aparecer el puerto com que se le asingo

al modulo bluetooth ya emparejado.

PROCESO EN ECLIPSE.-

Empezamos en java creando el programa que va a contener tres partes

fundamentales, las cuales serán:

1.- Panel Exterior 2.- Panel Interior 3.- Sensor de temperatura

Programa: dospaneles

PANEL EXTERIOR

1.- Entonces empezamos creando un Frame que va a tener el tamaño de 750 de

ancho y 600 de alto de aquí vamos a utilizar el método paint para separar en

líneas las dimensiones de los diferentes paneles que se van u usar en el

Frame.

2.- Una vez creado el Frame usamos G.drawString y procedemos a ubicarnos en

el primer recuadro para escribir Panel Exterior.

3.- Luego vamos a crear dos botones mediante JButton el uno que diga subir y el

otro bajar como se mostrara a continuación.

4.- Posteriormente a estos botones les vamos a dar una función mediante un

ActionListener al crear una variable llamada pisoactual si es superior podemos

llamarla haciendo un clic sobre ella, la cual nos mstrara un mensaje mediante

un JLable que dira que esta en movimiento, y al hacer un segundo clic sobre el

mismo botón mostrara que ya se llego al piso deseado.

5.- Este procedimeinto se repetirá para realizar la misma acción para el botón de

bajar, en ambos casos me muestra la opción.

Al primer clic nos indica que el ascensor esta

en movimiento el cual lo pondremos en función

con algo adicional que será mencionado mas

adelante

En el segundo clic nos indica que se ha llegado

al piso solicitado, pues entonces podremos

entrar

Este es el código empleado para crear los botones indicando subir y bajar con su

respectivo detalle de realizar si esta en movimiento o al llegar al piso deseado

PANEL INTERIOR

En este vamos a realizar los mismos pasos que para el panel exterior , entonces:

1.- Ubicamos poner su nombre como Panel Interior.

2.- De aquí vamos a crear 3 botones los cuales llevan su propia numeración

simulando el panel de adentro en el cual seleccionamos a que piso deseamos

subir o bajar.

3.- Cada uno de los botones nos muestra mediante un JLabel si esta subiendo o

bajando al hacerle el primer clic sobre él, entonces bajo esa condición

hacemos que al hacer el segundo clic nos diga haber llegado al piso deseado,

entonces podemos simular el subir y el bajar bajo la orden dada.

En este caso hacemos que nos

diga subir al segundo piso.

Al dar el segundo clic llega a

nuestro destino

Entonces el código usado para crear el panel interno con sus botones realizamos

lo siguiente:

BOTONES

Realiza un evento

para el boton1(b1),

para recibir un JLabel

“Baja” o “Piso Actual”

PANEL TEMPERATURA

1.- En este panel vamos a crear un botón que diga Temperatura.

2.- Al botón temperatura le vamos a dar un acción de graficar mediante un

polígono que va a ir variando en su altura deacuerdo al valor que recibe del

sensor de temperatura cuyo valor esta transformado a grados centígrados

mediante la fórmula (5.0*analogRead(0)*100.0/1023.0 la cual nos va a dar el

valor de la temperatura (el valor de temperatura se explicara más adelante en

el sensor).

3.- Posteriromente lo que realizamos en este panel es que mediante el repaint

dibuje la temperatura actual. Así se puede evitar alguna clase de complicación

y tomar debidas precauciones para cuando su temperatura este alta.

Entonces podemos notar como ira variando la temperatura al

presionar clic en el botón, el cualnos dara la temperatura

momentánea recibida por el sensor.

Aquí procedemos a

realizar el botón con la

indicación de la

temperatura.

Variacion de Temperatura

A continuación se mira la acción de recibir los datos del sensor de temperatura, si

en este caso marca error es poque falta conectar a la tarjeta.

Recibe datos del sensor de

temperatura

Toma los valores de temperatura y los grafica, la grafica simpre va a ir

cambiando gracias al repaint

SENSOR INFRARROJO

En este caso de forma independiente, la conexión del sensor no necesita

ejecución en java a menos que desee enviar los datos de la distancia, pero para

nuestro fines no lo realizamos, indicamos nosotros la variable distancia la cual nos

indicará si hay algún obstáculo entre los leds emisor y receptor, esta programado

para que se mantenga en un encendido parpadeante.

Es decir si el infrarojo esta completamente tapado el led se va a mantener

prendido constantemente, por el contario si se aleja del led el parpadeo va a ser

mas notorio.

Este es el código del infrarojo. Puede ser descargado del internet o viene por default en los ejemplos de Arduino.

Entonces al continuar a programar en Arduino primero declaramos las variables

que vamos a utilizar, que son la temperatura, la distancia de los infrarrojos y una

variable que recibe datos enviados por java.

En el Void Setup declaramos los pines en donde van a ir conectados los diferentes

elementos como son los diodos del LED, los pines de los infrarrojos y del sensor

de temperatura.

En Void Loop va a ser donde se va a ejecutar todo el programa, para el sensor de

temperatura en la variable que declaramos vamos a almacenar los datos que

envía el sensor, como el sensor tiene la equivalencia a 1grado centígrado= a

10milivoltios por medio de la fórmula: (5.0*analogRead(0)*100.0/1023.0

Algo importante que debemos mencionar es que como el valor que recibimos en

es forma de caracter es decir de tipo char, lo procedemos a cambiar para que

salga en java el valor de la temperatura en grados centígrados. Los datos serán

almacenas según el tiempo puesto.

Declaracion de pines(piso1,piso2,piso3,infrarojo)

Calculo de temperatura

Pausa el programa en un

tiempo determinado.

Recibe los datos de arduino y es aquí en donde se procedio a cambiar el tipo de

dato char a String y de ahí a tipo Double quedando como una variable temp.

Aquí usamos el método del repaint para así poder ir graficando en tiempo real el

cambio de la tempertura.

Cambio de tipo de datos: Char----->String Sring----->Double

Variable temp

Método Repaint

ENCENDIDO Y APAGADO DE LEDS

Continuamos con la programación en Arduino, la cual es fundamental para darle

algunas ideas de vida a nuestro proyecto, es decir lo que realizaremos es hacer el

encendido y apagado de leds mediante los botones creados anteriormente.

1.- Al presionar en el primer panel sobre los botones de subir y bajar va a

recibir la señal 1 para que asi cuando diga que esta en movimiento se

encienda el led, y un proceso similar para el panel interior.

2.- Entonces para el encendido de los LEDS procedemos a crear una variable

que será recibida para el encendido del Led de cada piso, es decir si recibe

la señal 1 se encenderá un led, si recibe la señal 2, 3 y 4 entonces se

encendera su respectivo led.

En java se procede a realizar lo siguiente:

Entonces mostramos aquí que al recibir la señal ‘1’se procede a encender el led

cada vez que damos el primer clic, es decir cuando nos muestra el mensaje de

que esta en movimiento, y de que se apague al dejar de recibir esta señal.

En el panel inferior realizamos lo mismo a cada botón le damos esa función de

encender si este piso ha sido seleccionado y al momento de cambiar de piso que

este se apague.

Como se puede apreciar en java se recibe la señal ’2’ para encender el piso 1, la

señal ‘3’ para en cender la luz del piso 2, y recibe la señal ‘4’ para el piso 3. En

Arduino esta programado para que se encienda y apague al recibir la señal tal

como se muestra anteriormente, y en java hace que al estar seleccionado el piso

se muestre de que piso se esta, y cuando se selecciona otro piso entonces se

paga el led correspondiente y se enciende el de su piso, así se puede saber en

que piso se encuentra,

6.- RECOMENDACIONES DEL MANUAL.-

Un aspecto importante y muy práctico que nosotros desarrollamos fue el crear

de forma independiente parte a parte el fncionamiento, es decir primero

creamos los paneles, y realizamos el funcionamiento, de ahí comprobamos el

como funciona cada sensor y como adaptarle, para finalmente unir las partes

de forma correcta.

En el proyecto lo que se presenta son los beneficios y usos que se le puede

dar a los sensores y a la comunicación entre estos paneles.