PROYECTO arduino- Grupo La meteo- G11.pdf

52 downloads 1000 Views 803KB Size Report
Fundamentos de Electricidad y Magnetismo. Proyecto sensor de temperatura. Jaime Villalobos. Diciembre 2011. Integrantes: ✓ Diana Milena Ramírez Gutiérrez ...
Facultad de Ciencias Departamento de Física Fundamentos de Electricidad y Magnetismo Proyecto sensor de temperatura Jaime Villalobos Diciembre 2011

Integrantes:      

Diana Milena Ramírez Gutiérrez Cód. 274039 Lina María Osorio Lemus Cód. 245136 Jaime Hernando Borraez Cód. 234617 Alejandra Villalobos Camacho Cód. 285755 Fabián Guillermo Monsalve Barona Cód. 258224 Andrea Peinado

1. Introducción El presente proyecto surge como iniciativa de los estudiantes del curso de Fundamentos de Electricidad y Magnetismo ante la proposición del director del curso el profesor Jaime Villalobos, quien tiene la idea de lograr crear miles de subestaciones en donde se registre la temperatura en la ciudad de Bogotá, obteniendo de esta forma medidas más precisas de esta. Al registrar los datos en una subestación, estos se deben enviar a una dirección IP especificada con el objetivo de hacer un tratamiento a estos datos y poder crear un mapa de temperaturas de la ciudad, predicciones del comportamiento del clima, entre otros. Se espera extender el programa por toda Colombia y vincular a toda persona que quiera pertenecer a un grupo de investigación con ideas afines al programa. Nuestro proyecto se enfocará en la implementación de un método eficiente y preciso para la toma de temperaturas en un punto específico de la ciudad capitalina. Se espera implementar el sistema mediante la aplicación de los conocimientos adquiridos durante el curso y complementarlos con los conocimientos adquiridos de forma autónoma como

consecuencia de ser un proyecto de investigación. También llegaremos a explicar cómo enviar los datos a una dirección especificada, recordando que esta no es la única forma de cumplir el objetivo pero si es una solución muy eficaz y sencilla para así facilitar el trabajo de personas que se quieran integrar a nuestro proyecto que resulta interesante por lo innovador que este tipo de trabajos resulta en el país.

2. Objetivos: 

Objetivo General:

Construir un dispositivo capaz de detectar la temperatura ambiente en un sitio determinado, mediante el uso del campo magnético y eléctrico del ambiente. 

Objetivos Específicos: 

Analizar las variaciones de temperatura relacionadas con los cambios del campo eléctrico de la tierra.



Desarrollar un proyecto de investigación que permita integrar todas las disciplinas fundamentales de las ingenierías.

3. Aspectos experimentales 3.1 Materiales  Protoboard  Arduino uno  Resistencia  Sensor de voltaje LM35  Computador

3.2 Procedimiento

3.3 Programas 3.3.1 Programa para toma de datos //declare variables float tempC; int tempPin = 0; void setup() { Serial.begin(9600); //opens serial port, sets data rate to 9600 bps } void loop() { tempC = analogRead(tempPin); //read the value from the sensor tempC = (5.0 * tempC * 100.0)/1024.0; //convert the analog data to temperature Serial.print(tempC); Serial.print(" celcius\n");//send the data to the computer delay(2000); //wait one second before sending new data } 3.3.2 Programa para envió de datos El código utilizado es en lenguaje python 2.5, parte de este trabajo se debe a la retroalimentación hecha por los compañeros de curso.

# -*- coding: cp1252 -*import serial, hashlib, httplib as h, urllib as u #Declaración de variables globales: N = 30 # Número de datos a tomar antes de analizar y enviar ser = serial.Serial('/dev/ttyACM0', 9600) # Define el puerto en el cual escuchar user = 'USUARIO' password = 'CONTRASEÑA' datatype = '1' location = 'UBICACION' key = getMD5Hash(phrase) ##Definición de funciones, modificar bajo su propio riesgo def getMD5Hash(textToHash=None): return hashlib.md5(textToHash).hexdigest()

def reportar(valor): valor = '%.2f' % valor phrase = valor+'Un4Pal4Bri114' d= {'temperature':valor,'user':user,'password':password,'key':key,'type':datatype,'location':loc ation} #Diccionario con los datos a enviar body = u.urlencode(d) # La cadena en codificacion url para enviar conn = h.HTTPConnection('temperatura.juansaab.co',80) # Conexión al servidor headers = {"Content-type": "application/x-www-form-urlencoded","Accept": "text/plain"} conn.request('POST','/setTemp.php',body,headers) R = conn.getresponse() if R.reason == 'OK': print 'El valor '+valor+' fue reportado con éxito.' else: print 'Error al transmitir el valor.' def limites(lista): lista.sort() L = len(lista) if L%4 != 0: cuartil1 = lista[(L/4)] else: cuartil1 = (lista[(L/4)-1]+lista[L/4])/2 #if N%2 != 0: # cuartil2 = lista[(N/2)] #else: # cuartil2 = (lista[int(N/2)-1] + lista[int(N/2)])/2 if (3*L)%4 != 0: cuartil3 = lista[(3*L)/4]

else: cuartil3 = (lista[((3*L)/4)-1] + lista[(3*L)/4])/2 li = cuartil1 - 1.5*(cuartil3-cuartil1) ls = cuartil3 + 1.5*(cuartil3-cuartil1) return (li,ls) def eliminarParasitos(lista,limite): i=0 L = len(lista) while i < L: if not limite[0]