Sei sulla pagina 1di 13

PROYECTO DE ARQUITECTURA DE COMPUTADORAS:

CONTROLADOR DE SENSORES DE TEMPERATURA CON


ARDUINO DUE Y ANDROID

INTRODUCCIN
Se presentarn cuatro sensores distribuidos al azar en una superficie
plana, cada uno medir la temperatura de la zona en la que se
encuentra.
Con Arduino DUE se monitorear varios sensores de
temperatura al mismo tiempo y mediante Processing se mostrar
cundo la temperatura sube o baja.

OBJETIVO
La idea principal es mostrar que Arduino DUE, al igual que todos los
Arduinos, puede manejar varios sensores de temperatura al mismo
tiempo y cambiar las fluctuaciones.

MATERIALES

Placa Arduino DUE


4 Sensores Dallas
Protoboard
Cables

VENTAJAS Y DESVENTAJAS

Como nuestro proyecto se basa en mostrar las fluctuaciones de


temperatura que habr en el ambiente que se coloque los sensores
entonces tendra estas ventajas:

Tomar decisiones depende de la informacin que me muestre.


Hacer reportes mensuales, semanales, diarios, de la temperatura.
Hacer informes estadsticos y dependiendo de los informes tomar
decisiones.
Posibilidad de automatizar procesos dependiendo de la
informacin que obtenga los sensores.
Amplia variedad de usos como: seguridad, agricultura, personal,
proteccin de elementos importantes de la organizacin, biblioteca
con libros delicados, etc.

Pero as como hay ventajas como en todo proyecto tambin hay


desventajas:

Posibilidades de falla del hardware as como tambin del software


pero esto con el tiempo y la dedicacin se resolveran.
Capacidad de almacenamiento de la informacin al no contar con
servidor propio.
Seguridad de fuga de la informacin.
Infraestructura del circuito que no sera adecuada para todos los
ambiente.

POSIBLES APLICACIONES

Este proyecto abarcara muchas ramas, entre ellas:


-La seguridad:
Tienes un complejo o un ambiente donde hay informacin privilegiada
en servidores, dado que si la temperatura de ese ambiente no es el
adecuado los equipos sufriran desperfectos por lo cual la perdida de
informacin.
-Bibliotecas:
Tienes libros, o material sensible a la variacin de temperatura, este
proyecto ayudara a mostrar una alarma si la temperatura vara mucho.
-Agricultura:
En los hibernaderos donde se debe saber con exactitud los cambios de
temperaturas
para
tomar
decisiones
segn
la
informacin
proporcionada.
-Y existen otras ramas en donde se podra aplicar este proyecto.

FRITZING
Esta es parte del circuito que implementaremos el cual ser con el
arduino DUE y con 4 sensores y el modulo Bluetooth hc05 que ser el
que nos permite comunicar con el mvil a travs de Android.

ESTRUCTURA DEL PROYECTO

Este proyecto tendr la siguiente estructura:


1) El programa en arduino que servir para poder usar las
funcionalidades de la placa de Arduino DUE en el cual se encargar

de controlar y recolectar la informacin que transmitir los


sensores.
2) El programa en Procesing el cual se encarga de mostrar una
interfaz visual de escritorio el cual mostrara las variaciones de
temperatura.

CODIGO ARDUINO
El programa en la parte de arduino queda de la siguiente forma:
#include <OneWire.h>
//Se importan las libreras
#include <DallasTemperature.h>
//** Definiciones **//
#define Pin 5
DATA

//Se declara el pin donde se conectar la

OneWire ourWire(Pin);
//Se establece el pin declarado como
bus para la comunicacin OneWire
DallasTemperature sensors(&ourWire); //Se llama a la librera
DallasTemperature
//** Programa **//
void setup() {
delay(1000);
Serial.begin(9600);
sensors.begin();
}

//Se inician los sensores

void loop() {
sensors.requestTemperatures();

//Prepara el sensor para la lectura

/*Serial.print(sensors.getTempCByIndex(0)); //Se lee e imprime la


temperatura en grados Centigrados
//Serial.println(" Grados Centigrados- Sensor 1 \n");

Serial.println(sensors.getTempCByIndex(1));
Serial.println(" Grados Centigrados - Sensor 2 \n");
Serial.println(sensors.getTempCByIndex(2));
Serial.println(" Grados Centigrados - Sensor 3 \n");
Serial.println(sensors.getTempCByIndex(3));
Serial.println(" Grados Centigrados - Sensor 4 \n");

delay(1000);
//Se provoca una parada de 1 segundo
antes de la prxima lectura
*/
double temp1 = sensors.getTempCByIndex(0);
double temp2 = sensors.getTempCByIndex(1);
double temp3 = sensors.getTempCByIndex(2);
double temp4 = sensors.getTempCByIndex(3);
Serial.print(String(temp1)+"-"+String(temp2)+","+String(temp3)+"-"
+String(temp4)+"*");
}

El cdigo para coger los datos del puerto serie y mostrarlos por
pantalla es el siguiente:
//Importamos la librera para el uso del puerto serie,
//en arduino se carga sola, aqu hay que llamarla.
import processing.serial.*;
//Definimos todas las variables
Serial port;
String parte1="";
String parte2="";
String temp1 = "";
String temp2 = "";
String temp3 = "";
String temp4 = "";
String Data="";
PFont font;

int index=0;
int i=0;
int j=0;
//Este void setup() es similar al de arduino solo se ejecuta al inicio
void setup()
{
//Aqu definimos el tamao de la ventana que
//mostraremos por pantalla
size(900,600);
//Inicializamos el puerto serie y decimos
//que se haga lectura hasta encontrar el punto
port = new Serial(this, "COM3", 9600);
port.bufferUntil('*');
//Esto es para cargar la fuente por defecto que usaremos en el
programa,
//la fuente tendr que estar en la carpeta data del proyecto
//font = loadFont("AgencyFB-Reg-200.vlw");
//textFont(font, 200);
}
//Este evento se llama cuando hay entrada en el puerto serie
void serialEvent (Serial port)
{
//Leemos hasta que se encuentre un punto y guardamos lo leido en
Data
Data = port.readStringUntil('*');
//Este comando nos sirve para eliminar
//el punto del final ya que si no nos lo mostrara por pantalla
Data = Data.substring(0,Data.length()-1);
//buscamos la posicin de la coma que separa
//los dos valores y guardamos la posicin en index
index = Data.indexOf(",");
//almacenamos la primera parte del texto en tempC
parte1= Data.substring(0,index);
//Almacenamos la segunda parte en tempF
parte2= Data.substring(index+1,Data.length());
i = parte1.indexOf("-");
temp1 = parte1.substring(0,i);
temp2 = parte1.substring(i+1,parte1.length());

j = parte2.indexOf("-");
temp3 = parte2.substring(0,j);
temp4 = parte2.substring(j+1,parte2.length());
}
//ste sera el equivalente a void loop() de arduino,
//se ejecuta como un loop constante
void draw()
{
//definimos el color del fondo negro 0,0,0 es el color negro en RGB
background (0,0,0);
fill(255,255,255);
textSize(26);
text("CONTROLADOR DE SENSORES DE TEMPERATURA",145,50);
fill(255, 255, 255);
textSize(18);
text("SENSOR 1",165,100);
text(temp1 + " C",165,150);
text("SENSOR 2",635,100);
text(temp2 + " C",635,150);
text("SENSOR 3",165,350);
text(temp3 + " C",165,400);
text("SENSOR 4",635,350);
text(temp4 + " C",635,400);
strokeWeight(2);
rectMode(CORNERS);
fill(114,117,111);
rect(45.0,205.0,405.0,245.0,20.0,20.0);
stroke(255);
text("-55",30, 270);
text("0",155, 270);
text("225",390, 270);
//stro
fill(114,117,111);
rect(495.0,205.0,855.0,245.0,20.0,20.0);
text("-55",480, 270);
text("0",605, 270);
text("225",830, 270);

rect(45.0,455.0,405.0,495.0,20.0,20.0);
text("-55",30, 520);
text("0",155, 520);
text("225",390, 520);

rect(495.0,455.0,855.0,495.0,20.0,20.0);
text("-55",480, 520);
text("0",605, 520);
text("225",830, 520);

dibujarTemp();
}
void dibujarTemp(){
float t1 = float(temp1);
if(t1 >= 0){
t1 = (t1*2) + 110;
}
else{
t1 = 110 - (t1*2);
}
fill(255,162,0);
rect(45.0,205.0,t1 + 45.0,245.0);
float t2 = float(temp2);
if(t2 >= 0){
t2 = (t2*2) + 110;
}
else{
t2 = 110 - (t2*2);
}
fill(255,162,0);
rect(495.0,205.0,t2 + 495.0 ,245.0);
float t3 = float(temp3);

if(t3 >= 0){


t3 = (t3*2) + 110;
}
else{
t3 = 110 - (t3*2);
}
fill(255,162,0);
rect(45.0,455.0,t3 + 45.0,495.0);
float t4 = float(temp4);
if(t4 >= 0){
t4 = (t4*2) + 110;
}
else{
t4 = 110 - (t4*2);
}
fill(255,162,0);
rect(495.0,455.0,t4 + 495.0,495.0);
}

Y asi se mostrara

FOTOS DEL CIRCUITO

Potrebbero piacerti anche