prototipo did actico de una estaci on meteorol ogica

88
Instituto Polit ´ ecnico Nacional Escuela Superior de Ingenier´ ıa Mec´ anica y El´ ectrica Prototipo Did´actico de una Estaci´on Meteorol´ogica Monitoreada a Distancia TESIS PARA OBTENER EL T ´ ITULO DE: Ingeniera en Comunicaciones y Electr´ onica (EspecialidadComputaci´on) PRESENTA Berenice Montalvo Lezama ASESORES: M. en C. Genaro Zavala Mejia Ing. Karla Sandra Arellano Garcia 2013

Upload: others

Post on 12-Jul-2022

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Prototipo Did actico de una Estaci on Meteorol ogica

Instituto Politecnico Nacional

Escuela Superior de Ingenierıa Mecanica yElectrica

Prototipo Didactico de una EstacionMeteorologica Monitoreada a Distancia

TESISPARA OBTENER EL TITULO DE:

Ingeniera en Comunicaciones y Electronica(Especialidad Computacion)

PRESENTA

Berenice Montalvo Lezama

ASESORES:M. en C. Genaro Zavala Mejia

Ing. Karla Sandra Arellano Garcia

2013

Page 2: Prototipo Did actico de una Estaci on Meteorol ogica
Page 3: Prototipo Did actico de una Estaci on Meteorol ogica

Indice general

Resumen 4

Indice de figuras 5

1. Antecedentes 91.1. Planteamiento del Problema . . . . . . . . . . . . . . . . . . . . . . . . . . 91.2. Objetivo General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.3. Objetivos Especıficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101.4. Justificacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101.5. Estado del Arte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

1.5.1. Monitoreo de una estacion meteorologica vıa internet . . . . . . . . 101.5.2. Estacion Meteorologica Vantage Pro2 . . . . . . . . . . . . . . . . . 111.5.3. Estacion Meteorologica Crystal Moments CW101 . . . . . . . . . . 12

2. Marco Teorico 152.1. Estaciones Meteorologıcas . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.1.1. Origen de la Meteorologıa . . . . . . . . . . . . . . . . . . . . . . . 152.1.2. Estacion Meteorologica . . . . . . . . . . . . . . . . . . . . . . . . . 152.1.3. Variables Meteorologicas . . . . . . . . . . . . . . . . . . . . . . . . 152.1.4. Clasificacion de las Estaciones Meteorologicas . . . . . . . . . . . . 162.1.5. Componentes de una Estacion Meteorologica . . . . . . . . . . . . . 182.1.6. Veleta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2.2. Tecnologıas de Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212.2.1. Microcontrolador . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212.2.2. Sensores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232.2.3. Sensores Meteorologicos . . . . . . . . . . . . . . . . . . . . . . . . 23

2.3. Tecnologıas de Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242.3.1. Sistemas de gestion de bases de datos . . . . . . . . . . . . . . . . . 252.3.2. Plataforma de programacion . . . . . . . . . . . . . . . . . . . . . . 25

3. Desarrollo 293.1. Desarrollo del Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

3.1.1. Anemometro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293.1.2. Veleta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353.1.3. Termometro e higrometro . . . . . . . . . . . . . . . . . . . . . . . 383.1.4. Tarjeta Principal . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413.1.5. Proteccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423.1.6. Base para la Estacion Meteorologica . . . . . . . . . . . . . . . . . 42

3

Page 4: Prototipo Did actico de una Estaci on Meteorol ogica

Indice general

3.2. Desarrollo del Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453.2.1. Componente de Medicion . . . . . . . . . . . . . . . . . . . . . . . 453.2.2. Componente de Servicios . . . . . . . . . . . . . . . . . . . . . . . . 463.2.3. Componente de Interfaz de Usuario . . . . . . . . . . . . . . . . . . 49

4. Pruebas y resultados 514.1. Funcionamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514.2. Pruebas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524.3. Estimacion de costos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

5. Conclusiones 55

Anexos 55

6. Anexos 576.1. Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

6.1.1. Especificaciones CNY70 . . . . . . . . . . . . . . . . . . . . . . . . 576.1.2. Especificaciones HEF40106 . . . . . . . . . . . . . . . . . . . . . . . 606.1.3. Especificaciones HMZ433A . . . . . . . . . . . . . . . . . . . . . . . 636.1.4. Especificaciones LM35 . . . . . . . . . . . . . . . . . . . . . . . . . 66

6.2. Codigos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 716.2.1. Clase Measure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 716.2.2. Clase MeasureDB . . . . . . . . . . . . . . . . . . . . . . . . . . . . 726.2.3. Clase MeasureDB . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

6.3. C++ Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

4

Page 5: Prototipo Did actico de una Estaci on Meteorol ogica

Resumen

Este proyecto consistio en el diseno y construccion de una estacion meteorologica la cuales monitoreada de forma remota.El software para el monitoreo permite dar a conocer lasvariables meteorologicas medidas por la estacion las cuales son temperatura, humedad,velocidad y direccion del viento.

5

Page 6: Prototipo Did actico de una Estaci on Meteorol ogica
Page 7: Prototipo Did actico de una Estaci on Meteorol ogica

Indice de figuras

1.1. Estacion meteorologica Vantage Pro2. . . . . . . . . . . . . . . . . . . . . . 111.2. Consola de la estacion meteorologica Vantage Pro2. . . . . . . . . . . . . . 121.3. Estacion Meteorologica Crystal Moments CW101. . . . . . . . . . . . . . . 13

2.1. Clasificacion de las Estaciones Meteorologicas. . . . . . . . . . . . . . . . . 162.2. Anemometro de empuje. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192.3. Anemometro de efecto Doppler. . . . . . . . . . . . . . . . . . . . . . . . . 192.4. Anemometro de rotacion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202.5. Veleta. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212.6. Arduino AT Mega 2560. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222.7. Escudo Arduino Ethernet. . . . . . . . . . . . . . . . . . . . . . . . . . . . 232.8. Motor electrico sin escobillas. . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.1. Diagrama del prototipo didactico de la estacion meteorologico. . . . . . . . 293.2. Cazoleta. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303.3. Varillas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303.4. Motor con orificios para los soportes de las cazoletas. . . . . . . . . . . . . 303.5. Eje del anemometro. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313.6. Anemometro ensamblado. . . . . . . . . . . . . . . . . . . . . . . . . . . . 313.7. Circunferencia para area de sensado. . . . . . . . . . . . . . . . . . . . . . 323.8. Sensor Optico. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323.9. Configuracion del sensor optico. . . . . . . . . . . . . . . . . . . . . . . . . 333.10. Conexion del sensor optico. . . . . . . . . . . . . . . . . . . . . . . . . . . 333.11. Diseno de la tarjeta de circuito impreso para el anemometro. . . . . . . . . 343.12. Tarjeta para medir la rotacion del anemometro . . . . . . . . . . . . . . . . 343.13. Distancia del montaje entre la tarjeta y sensor. . . . . . . . . . . . . . . . 353.14. Diagrama de la veleta. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363.15. Veleta ensamblada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363.16. Diseno de la tarjeta de circuito impreso para la veleta . . . . . . . . . . . . 373.17. Tarjeta para detectar la orientacion de la veleta. . . . . . . . . . . . . . . . 373.18. Sensor de Temperatura LM35. . . . . . . . . . . . . . . . . . . . . . . . . . 383.19. Diagrama de configuracion para rango completo del sensor de temperatura 393.20. Configuracion del LM35 con un rango de -55 a 155 grados centıgrados. . . 393.21. Sensor de Humedad HMZ433A. . . . . . . . . . . . . . . . . . . . . . . . . 403.22. Diseno de la tarjeta de circuito impreso del termometro e higrometro. . . . 403.23. Tarjeta para medir la humedad y temperatura. . . . . . . . . . . . . . . . . 413.24. Diseno de la tarjeta de circuito impreso principal. . . . . . . . . . . . . . . 413.25. Tarjeta principal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

7

Page 8: Prototipo Did actico de una Estaci on Meteorol ogica

Indice de figuras

3.26. Modulo de proteccion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423.27. Patas Niveladoras. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433.28. Niveles de burbuja. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433.29. Brujula. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443.30. Diagrama de flujo del componente de medicion. . . . . . . . . . . . . . . . 453.31. Diagrama de clases resumido. . . . . . . . . . . . . . . . . . . . . . . . . . 463.32. Diagrama entidad relacion de la base de datos. . . . . . . . . . . . . . . . . 463.33. Diagrama de clases para el acceso a base de datos. . . . . . . . . . . . . . . 473.34. Diagrama de clases para el acceso a base de datos. . . . . . . . . . . . . . . 483.35. Diagrama de clases para el acceso a base de datos. . . . . . . . . . . . . . . 483.36. Grafica de la temperatura en con mediciones de tiempo real. . . . . . . . . 493.37. Instrumentos de medicion. . . . . . . . . . . . . . . . . . . . . . . . . . . . 493.38. Grafica de promedios de temperatura. . . . . . . . . . . . . . . . . . . . . . 49

4.1. Funcionamiento del prototipo didactico de la estacion meteorologica moni-toreado de forma remota. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

4.2. Grafica comparativa de humedad. . . . . . . . . . . . . . . . . . . . . . . . 524.3. Grafica comparativa de temperatura. . . . . . . . . . . . . . . . . . . . . . 524.4. Grafica comparativa de velocidad. . . . . . . . . . . . . . . . . . . . . . . . 534.5. Tabla de costos para el Hardware. . . . . . . . . . . . . . . . . . . . . . . . 544.6. Tabla de costo del proyeto. . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

8

Page 9: Prototipo Did actico de una Estaci on Meteorol ogica

1 Antecedentes

El conocimiento de las variaciones climaticas es de suma importancia en la agricultura,la navegacion y la vida en general.

La meteorologıa estudia los cambios atmosfericos que se producen a cada momentoutilizando parametros como: temperatura del aire, humedad, presion atmosferica y preci-pitaciones pluviales.

El clima es un conjunto de fenomenos meteorologicos que caracterizan las condicio-nes habituales o mas probables de un punto determinado de la superficie terrestre. Lasestaciones meteorologicas son instalaciones cuyo proposito es medir y registrar variablesmeteorologicas las cuales son temperatura, presion atmosferica, humedad relativa del aire,pluviosidad, velocidad y direccion del viento . Los instrumentos mediante los cuales seobtiene la medicion de las variables antes mencionadas son los siguientes, el termometro,el barometro, pluviometro, anemometro y la veleta.

Las estaciones meteorologicas pueden ser: manuales o automaticas. Las primeras sonmonitoreadas por personal altamente capacitado, mientras que las estaciones meteorologi-cas automaticas nos permiten monitorearlas a distancia, en este tipo de instalaciones lasenal se procesa mediante la tecnologıa de microcontroladores y microprocesadores paraser enviada a traves de un sistema de comunicacion.

Las estaciones meteorologicas tienen un amplio campo de aplicacion como lo es enaeronautica, agricultura, navegacion y en deportes al aire libre. Dependiendo del uso sepueden configurar las estaciones instalaciones con distintos niveles de equipamiento.

En este escrito, se presenta la construccion de un prototipo de estacion meteorologicala cual sera monitoreada a distancia.

1.1. Planteamiento del Problema

El conocimiento de las variaciones climaticas es de gran utilidad para el ser humano yaque le permite realizar ciertas tareas sabiendo que no le seran impedidas, arruinadas ocomplicadas por el estado del tiempo, cuando se pueden tomar precauciones para evitarsus consecuencias o suspenderlas hasta un momento mas propicio.

Los informes climatologicos son dados por zonas en general y no de forma especifica loque genera problemas para la realizacion de ciertas actividades como son la agricultura ynavegacion, donde el clima juega un papel muy importante.

1.2. Objetivo General

Disenar y construir un prototipo didactico de una estacion meteorologica la cual seramonitoreada a distancia.

9

Page 10: Prototipo Did actico de una Estaci on Meteorol ogica

1 Antecedentes

1.3. Objetivos Especıficos

Disenar y construir tarjetas electronicas para medir las variables meteorologicas:humedad relativa, temperatura, direccion y velocidad del viento.

Disenar y construir un prototipo de estacion meteorologica usando estas tarjetas.

Disenar e implementar el software necesario para registrar las mediciones de lasvariables meteorologicas.

Disenar e implementar el software necesario para monitorear las mediciones de lasvariables meteorologicas.

1.4. Justificacion

La estacion meteorologica brindara datos del clima especıficamente en el lugar donde seaimplementada. La importancia de estos datos es vital, dado que los microclimas generadosen cada lugar por montes, montanas, sierras, lagos y lagunas, no necesariamente se venreflejados en los informes del clima para zonas en general. A traves de su exclusivo softwarede procesamiento de datos, la estacion meteorologica proporcionara informacion relevantecon la que se podra tomar decisiones y acciones de forma mas certera.

El desarrollo del prototipo de la estacion meteorologica con monitoreo remoto, permi-tira aplicar los conocimientos adquiridos a lo largo de la carrera de Ingenierıa en Comuni-caciones y Electronica. En el desarrollo de la estacion meteorologica se aplicaran conoci-mientos de ciertas asignaturas, las cuales forman parte fundamental para el desarrollo delproyecto como son Fısica, Maquinas Electricas, Microprocesadores, Programacion, Elec-tricidad y Magnetismo, Teoremas de circuitos, Electronica digital, Sistemas en TiempoReal, Lenguajes de Internet y Rede.

1.5. Estado del Arte

A continuacion se presentaran las estaciones meteorologicas actuales ası como tambienlos trabajos que se han desarrollado hasta ahora.

1.5.1. Monitoreo de una estacion meteorologica vıa internet

Un proyecto realizado en la Universidad Autonoma de Zacatecas en el 2009, consistio enla construccion de un sistema electronico para la captura, transmision y despliegue dedatos a distancia de una estacion meteorologica.

Las mediciones de las variables meteorologicas se realizaron mediante sensores los cua-les se conectaron a un microcontrolador PIC16F877A el cual realizo la captura y digi-talizacion de las senales analogicas de los sensores para poder llevar acabo la etapa detransmision.La etapa de recepcion fue compuesta de un circuito receptor y un microcon-trolador PIC16F84A encargado de enviar los datos a la tarjeta de adquisicion NI-ELVISque permitio hacer la comunicacion con la PC.

10

Page 11: Prototipo Did actico de una Estaci on Meteorol ogica

1.5 Estado del Arte

Para la construccion de la interfaz entre la tarjeta NI-ELVIS y la PC desarrollaron unprograma en LabVIEW el cual fue responsable de controlar la lectura de la informacionenviada a la tarjeta de adquisicion, interpretar y crear una base de datos. Finalmente losdatos fueron desplegados en una pagina web.

1.5.2. Estacion Meteorologica Vantage Pro2

Vantage Pro2 es una estacion meteorologica desarrollada por la empresa Davis Instru-ments.

Vantage Pro2 es resistente a la corrosion y a las inclemencias del tiempo, posee unpanel solar que alimenta los sensores durante el dıa tambien a la vez que carga unabaterıa interna que proporciona energıa por la noche.

La consola permite visualizar todas las variables meteorologicas de forma simultanea yconfigurar la estacion sin necesidad de un ordenador. Esta estacion presenta un comodoteclado y una pantalla LCD de 15 x 9 cm con retroiluminacion.

Figura 1.1. Estacion meteorologica Vantage Pro2.

Las variables meteorologicas que se obtienen mediante esta estacion son las siguientes:

Velocidad y direccion del viento.

Temperatura y humedad interior y exterior.

Temperatura de sensacion y punto de rocıo.

Lluvia actual y acumulada diaria, mensual y anual.

Intensidad de lluvia.

Presion atmosferica actual y tendencia.

11

Page 12: Prototipo Did actico de una Estaci on Meteorol ogica

1 Antecedentes

Pronostico meteorologico.

Fase lunar y hora de puesta y salida del sol.

En la pantalla de esta estacion se muestran los graficos con datos de las ultimas 24horas, dıas o meses.

Figura 1.2. Consola de la estacion meteorologica Vantage Pro2.

Tambien es posible la configuracion de mas de 70 alarmas simultaneas para alertar depeligros como vientos fuertes, temperaturas de congelacion, lluvias intensas con posibili-dad de inundaciones, etc.

1.5.3. Estacion Meteorologica Crystal Moments CW101

La estacion Meteorologica CW101 desarrollada por la empresa Oregon Scientific poseeun diseno elegante y original.

Algunas de las caracterısticas que posee esta estacion meteorologica son reloj radiocontrolado, panel retro-iluminado, icono del pronostico iluminado con luz LED.

La estacion meteorologica CW101 consta de figurines de metacrilato tallados con sis-tema laser que se encienden de diferentes colores para la visualizacion facil e inmediatade las previsiones meteorologicas.Posee sensores infrarrojos que con un movimiento de lamano puede cambiar la informacion en pantalla sin necesidad de pulsar ninguna tecla.Este dispositivo consta de la base, acabado en negro que muestra la informacion de tiempoy temperatura, la parte superior con tres figurines meteorologicos.

12

Page 13: Prototipo Did actico de una Estaci on Meteorol ogica

1.5 Estado del Arte

Figura 1.3. Estacion Meteorologica Crystal Moments CW101.

13

Page 14: Prototipo Did actico de una Estaci on Meteorol ogica
Page 15: Prototipo Did actico de una Estaci on Meteorol ogica

2 Marco Teorico

En este capitulo se abordaran de manera general los aspectos considerados para desa-rrollo de este proyecto. En la primera seccion se describe la teorıa relacionada a las esta-ciones meteorologicas. En siguientes secciones se describen las herramientas de hardwarey software utilizadas para el desarrollo e implementacion.

2.1. Estaciones Meteorologıcas

En este apartado se describe todo lo relacionado con las estaciones meteorologicas ycada uno de sus componentes.

2.1.1. Origen de la Meteorologıa

Desde epocas antiguas el hombre por necesidad de supervivencia, se convirtio en unobservador de su medio ambiente, los fenomenos atmosfericos eran considerados comomensajes o castigos de los dioses.El hombre antiguo se conformaba con aceptar los be-neficios o perjuicios asociados, pero sin cuestionar los mecanismos o las causas de losfenomenos.

La agricultura comenzo en el ano 5,000 y con ella surgio la observacion aplicada delos fenomenos meteorologicos. El hombre prehistorico tomo en cuenta los factores meteo-rologicos y climaticos, tales como la lluvia y la temperatura, para su produccion agrıcolay para escoger su habitat.

En la antiguedad, el hombre dedicaba gran parte del tiempo a observar las caracterısti-cas de los fenomenos naturales que lo afectaban, de modo que los podıa usar para subeneficio.El tiempo meteorologico tenia gran importancia para las actividades diurnas yera un factor determinante para la alimentacion e incluso supervivencia de ese hombreprehistorico.

2.1.2. Estacion Meteorologica

Una estacion meteorologica es una instalacion la cual tiene como objetivo, medir yregistrar variables meteorologicas.

2.1.3. Variables Meteorologicas

Las variables meteorologicas mas importantes son temperatura, humedad, presion at-mosferica, precipitacion pluvial, velocidad y direccion del viento, estas variables son me-didas mediante instrumentos como pluviometro, termometro, barometro, anemometro,veleta, entre otros [brenes˙elementos˙1995].

15

Page 16: Prototipo Did actico de una Estaci on Meteorol ogica

2 Marco Teorico

Temperatura

La temperatura es una de las magnitudes mas utilizadas para describir el estado de laatmosfera, varıa entre el dıa y la noche, entre una estacion y otra, y tambien entre unaubicacion geografica y otra.

Es una magnitud relacionada con la rapidez del movimiento de las partıculas que cons-tituyen la materia. Cuanta mayor agitacion presenten estas, mayor sera la temperatura.

El instrumento que se utiliza para medir la temperatura se llama termometro y fueinventado por Galileo en 1593.

Humedad

La humedad ambiental se define como la cantidad de vapor de agua presente en el aire.Es muy importante medir la humedad atmosferica debido a que esta afecta en el efectoinvernadero y fenomenos como sublimacion y condensacion, para realizar la medicion deesta variable meteorologica es empleado el higrografo [brenes˙elementos˙1995].

Presion Atmosferica

La presion armosferica es el peso que ejerce el aire en la Tierra y por lo cual tambienejerce una fuerza sobre todos los cuerpos debidos a la accion de la gravedad. La presionatmosferica depende de muchas variables, sobre todo de la altitud. Cuanto mas arriba enla atmosfera nos encontremos, la cantidad de aire por encima de nosotros sera menor.

Direccion del viento

La direccion del viento viene definida por el punto cardinal del cual proviene y al cualse dirige.

Velocidad del viento

La velocidad del viento es la rapidez de este, la cual se mide con el anemometro, quesuele registrar dicha direccion y rapidez a lo largo del tiempo.

2.1.4. Clasificacion de las Estaciones Meteorologicas

Las estaciones meteorologicas se clasifican de acuerdo a la aplicacion [brenes˙elementos˙1995]como se muestra en la figura 2.1

Figura 2.1. Clasificacion de las Estaciones Meteorologicas.

16

Page 17: Prototipo Did actico de una Estaci on Meteorol ogica

2.1 Estaciones Meteorologıcas

Climatologicas

Una estacion climatologica es un area destinada a la obtencion y medicion de los datosgenerados por instrumentos que registran los distintos fenomenos meteorologicos que seproducen en la atmosfera.

Las observaciones que se efectuan se realizan en forma horaria remitiendolas inmedia-tamente a un centro recolector de datos, mediante mensajes codificados, por la vıa decomunicacion mas rapida disponible. Estas observaciones se utilizan para una gran canti-dad de fines meteorologicos, en general en tiempo real y especialmente para la elaboracionde mapas meteorologicos.

Este tipo de estacion meteorologica se puede encontrar en hogares, casas de campo,ranchos escuelas, etc.

Agrıcolas

Una estacion agroclimatica tiene como objetivo el proporcionar datos que permitan unconocimiento de las condiciones del clima en relacion con el desarrollo y crecimiento delos cultivos y su manejo.

El desarrollo tecnologico ha permitido demostrar que la variacion del clima afecta lamayorıa de los procesos fısicos y biologicos que determinan la calidad y cantidad de laproduccion agrıcola. Conocer el clima oportunamente o con anticipacion suficiente esnecesario para mejorar la produccion o reducir efectos adversos para el cultivo.

El utilizar de manera oportuna y apropiada los registros climatologicos permite lossiguientes beneficios agrıcolas:

a) Realizar un riego eficiente.

b) Mejorar la fertilizacion durante el desarrollo de la planta.

Estos beneficios representan para el agricultor mayor produccion, menor costo de cul-tivo, mayor superficie cultivable, producto de mayor calidad, todo lo cual significa enterminos finales, mayor ganancia, menores gastos o menos problemas para el productoragrıcola y la poblacion en general.

Especiales

Este tipo de estaciones meteorologicas son las encargadas de medir variables en maresy oceanos. Estas instalaciones son mas especializadas ya que poseen instrumentos desondeo como radares meteorologicos para medir la turbulencia atmosferica y la actividadde tormentas, perfiladores de viento y sistemas acusticos de sondeo de la estructura verticalde temperaturas.

Aeronauticas

Las estaciones aeronauticas tienen su aplicacion en aeropuertos y aerodromos civiles omilitares, estas realizan mediciones climaticas las cuales se efectuan en varias horas deldıa y son enviadas inmediatamente a un centro recolector de datos, estas observaciones

17

Page 18: Prototipo Did actico de una Estaci on Meteorol ogica

2 Marco Teorico

se transmiten a otros aerodromos y los aviones en vuelo, con la finalidad de contribuiry proveer un normal desarrollo de la navegacion aerea segura. En caso de un desastrenatural, por medio de la estacion se provee informacion indispensable que permita tomarmedidas necesarias para una rapida busqueda y salvamento de los posibles sobrevivientes.

La disponibilidad de informacion meteorologica fiable es un factor decisivo para lasoperaciones de vuelo y en particular para la eleccion de la ruta y nivel de vuelo. Estainformacion permite reducir la carga de combustible y el tiempo de duracion del vuelo, deesta manera disminuyen los costos operativos logrando muy importantes ahorros graciasa estas predicciones concretas.

Los sensores con los que suelen contar las estaciones meteorologicas aeronauticas son de:temperatura del aire, punto de rocıo, direccion y fuerza del viento, presion barometrica,precipitacion, alcance visual en la pista y sensor para medir la altitud de las nubes.

Satelitales

Un satelite meteorologico es un tipo de satelite artificial que se utiliza principalmentepara supervisar el tiempo atmosferico y el clima de la Tierra. La configuracion basica deun satelite meteorologico, consiste en una camara con la funcion de fotografiar electroni-camente los sistemas nubosos. La informacion recibida es enviada rapidamente a la Tierra,debido a que las condiciones meteorologicas pueden variar en poco tiempo. La transmisionde estas imagenes, permiten la suficiente resolucion para el trabajo meteorologico.

Los dos tipos basicos de satelites meteorologicos, dependiendo de su orbita son losgeoestacionarios y los polares.

2.1.5. Componentes de una Estacion Meteorologica

Los instrumentos que forman una estacion meteorologica va de acuerdo a la aplica-cion que se desee darle, principalmente una estacion esta compuesta de los siguientesinstrumentos anemometro, veleta, barometro, termistor y pluviometro.

Anemometro

Es un instrumento que forma parte de una estacion meteorologica el cual esta destinadoa medir la velocidad del viento. Los diferentes tipos de anemometros son los siguientes:

De efecto Doppler

De empuje.

De rotacion o de Robinson.

Anemometro de Empuje

El funcionamiento de este tipo de anemometro es el siguiente una superficie colocadaen la punta de un pendulo se coloca de frente al viento, el empuje producido por este,levantara el pendulo de acuerdo a la velocidad del viento. Una escala apropiada, grabada

18

Page 19: Prototipo Did actico de una Estaci on Meteorol ogica

2.1 Estaciones Meteorologıcas

en una superficie paralela al movimiento del pendulo servira como indicador usando elpropio pendulo como aguja indicadora [hidy˙vientos˙1960].

Figura 2.2. Anemometro de empuje.

Anemometro Doppler

Los anemometros Doppler de laser utilizan un haz de luz laser dividido en dos haces.Las partıculas de aire cerca de la salida del haz se reflejan de nuevo en un detector enel que se mide contra el haz de luz original. Cuando las moleculas del aire se mueven,crean un desplazamiento Doppler, que puede ser utilizado para medir la velocidad delviento y luego se calcula el movimiento o la velocidad de las partıculas del aire cerca delanemometro [vallina˙instalaciones˙2010].

Figura 2.3. Anemometro de efecto Doppler.

19

Page 20: Prototipo Did actico de una Estaci on Meteorol ogica

2 Marco Teorico

Anemometro de Rotacion

Este anemometro es tambien llamado de copa o de cazoletas, fue inventado en 1846 porJohn T. Robinson y mide la velocidad del viento. Se compone de cuatro semiesferas quegiran cualquiera que sea la direccion del viento [inieco˙programacion˙2011]. Este movi-miento puede ir a un sensor dedicado a contar el numero de vuelta o mediante un pequenogenerador que de un voltaje que es proporcional a lo velocidad de giro. El primer sistemanos dara el recorrido del viento, mientras que el segundo dara la velocidad instantanea,como lo hace el indicador de velocidad de un automovil. Este tipo de anemometro es elmas utilizado debido a su simplicidad y exactitud.

La cruz de cazoletas ABCD imprime un movimiento de rotacion al arbol EF el cualtransmite mediante un tornillo F la rueda dentada H se encarga de hacer mover la agujaindicadora K.

Figura 2.4. Anemometro de rotacion.

2.1.6. Veleta

La veleta es un dispositivo el cual nos indica la direccion del viento [castillo˙agrometeorologi˙2001],en su inicio tenıan fines decorativos.

La direccion del viento se determina cuando la veleta gira y apunta la direccion dedonde proviene el viento.

Direccion. Es la pieza que indica el norte, sur, este y oeste.

20

Page 21: Prototipo Did actico de una Estaci on Meteorol ogica

2.2 Tecnologıas de Hardware

Ornamento. Es la parte mas visible del a veleta esta la puede o no llevar ya que esel adorno decorativo.

Varilla. Es la pieza central de una veleta y todas las demas partes de se conectan aella.

Cola. Es la pieza encargada de atrapar el viento.

Figura 2.5. Veleta.

2.2. Tecnologıas de Hardware

A continuacion se describen el hardware y herramientas relacionadas con este.

2.2.1. Microcontrolador

Un microcontrolador es un circuito integrado que posee memoria en la cual se puedegrabar programas para despues ejecutarlos. El microcontrolador ejecuta el programa car-gado en la memoria Flash. Esto se denomina el codigo ejecutable y esta compuesto poruna serie de ceros y unos, es decir, codigo binario. Dependiendo de la arquitectura del

21

Page 22: Prototipo Did actico de una Estaci on Meteorol ogica

2 Marco Teorico

microcontrolador, el codigo esta compuesto por palabras de 12, 14 o 16 bits de ancho.Cada palabra se interpreta por la CPU como una instruccion a ser ejecutada duranteel funcionamiento del microcontrolador. Todas las instrucciones que el microcontroladorpuede reconocer y ejecutar se les denominan colectivamente conjunto de instrucciones.

Estos circuitos son disenados para disminuir el costo, facilitar el proceso de desarrollode sistemas, ası como tambien reducir el consumo de energıa.

Existen plataformas que a su vez integran microcontroladores junto con componentesnecesarios para su correcto funcionamiento para facilitar aun mas el desarrollo de proyec-tos, una de esta es la plataforma Arduino.

Plataforma Arduino

Arduino es una plataforma de hardware libre, basada en una placa con un microcon-trolador y un entorno de desarrollo, disenada para facilitar el uso de la electronica enproyectos multidisciplinares.

El Arduino Mega es una version de esta plataforma basada en el microcontroladorATmeg1280. Sus caracteristicas principales son:

Voltaje de funcionamiento: 5V

Voltaje de entrada: 7-12 V

Voltaje de entrada : 6-20V

Pines E/S digitales:54

Pines de entrada analogica: 16

Intensidad por pin: 16

Intensidad en pin: 3.3V

Memoria Flash: 3.3V

EEPROM : 4 KB

Figura 2.6. Arduino AT Mega 2560.

22

Page 23: Prototipo Did actico de una Estaci on Meteorol ogica

2.2 Tecnologıas de Hardware

Para extender la funcionalidad de la plataforma, existen tarjetas llamadas escudos quese conectan a la placa principal.

El escudo Ethernet permite a una placa Arduino conectarse a una red por medio delprotocolo Ethernet. Esta tarjeta esta basada en el chip Wiznet W5100. La placa principalusa los pines digitales 10, 11, 12, y 13 para comunicarse con el W5100 en el escudoethernet, por lo que estos pines no pueden usarse como entradas y salidas.

El escudo Ethernet contiene los siguientes LEDs informativos:

PWR: Indica que la placa y la shield estan alimentadas

LINK: Indica cuando existe un enlace de red y parpadea cuando la shield envıa orecibe datos

FULLD: indica que la conexion de red es full duplex

RX: Parpadea al recibir datos

TX: Parpadea al enviar datos

Figura 2.7. Escudo Arduino Ethernet.

2.2.2. Sensores

Un sensor es un dispositivo el cual es capaz de detectar magnitudes fısicas o quımicas,y transformarlas en variables electricas.

2.2.3. Sensores Meteorologicos

Los sensores meteorologicos son disenados para medir parametros ambientales.Algunosde estos sensores son: humedad y temperatura.

23

Page 24: Prototipo Did actico de una Estaci on Meteorol ogica

2 Marco Teorico

Sensor de Temperatura

Los sensores de temperatura son dispositivos que transforman los cambios de tempera-tura en cambios en senales electricas que son procesados por equipo electrico o electronico.

Sensor de Humedad

Un sensor de humedad es un dispositivo que mide la humedad relativa en un area dada.Este sensor puede ser utilizado tanto en interiores y exteriores. Los sensores de humedadestan disponibles en formas tanto analogicas como digitales.

Sensor Optico

Los sensores opticos son dispositivos que funcionan con luz, este tipo de sensores poseentanto el emisor como el receptor en un mismo encapsulado.

Trabajan por reflexion de la luz, es decir, el emisor emite y si esta luz es reflejada porun objeto, el receptor lo detecta.

Este tipo de sensor se caracteriza por ser muy sensible.

Motor electrico sin escobillas

Este motor conocido tambien como ”brushless”se caracteriza por no usar escobillaspara realizar el cambio de polaridad del rotor. El motor brushless al no poseer escobillasno produce rozamiento ni genera friccion tampoco producen calor o ruido al contrarioaumentan su rendimiento y no requieren de mucho mantenimiento.

Figura 2.8. Motor electrico sin escobillas.

2.3. Tecnologıas de Software

En esta seccion se describen las herramientas empleadas en el proyecto para el desarrollodel software.

24

Page 25: Prototipo Did actico de una Estaci on Meteorol ogica

2.3 Tecnologıas de Software

2.3.1. Sistemas de gestion de bases de datos

Un Sistema de Gestion de Bases de Datos (SGBD) es un conjunto de programas quepermiten la manipulacion de las bases de datos, es decir, el almacenamiento, modificaciony extraccion de la informacion en una base de datos, ademas de proporcionar herramientaspara anadir, borrar, modificar y analizar los datos.

Los SGBD tambien proporcionan metodos para mantener la integridad de los datos,para administrar el acceso de usuarios a los datos.

MySQL

MySQL es un sistema de gestion de bases de datos relacionales muy completo, multi-plataforma y utilizado para aplicaciones web.

Este SGBD es ideal para la creacion de bases de datos con acceso desde paginas webdinamicas, ası como para la creacion de cualquier otra solucion que implique el almace-namiento de datos, posibilitando realizar multiples y rapidas consultas.

2.3.2. Plataforma de programacion

A continuacion se describen los lenguajes de programacion y herramientas utilizadas.

Plataforma Java

Java es un lenguaje de programacion que fue creado por James Gosling de Sun Mi-crosystems y publicado en el 1995 como un componente fundamental de la plataformaJava de Sun Microsystems [diaz˙java˙2003].

Los caracterısticas mas importantes de Java son cinco, la programacion orientada aobjetos, la posibilidad de ejecutar un mismo programa en diversos sistemas operativos, lainclusion por defecto de soporte para trabajo en red, la opcion de ejecutar el codigo ensistemas remotos de manera segura y la facilidad de uso.

Java cuenta con una manera sencilla para acceder y comunicarse con un SGBD, lla-mada JDBC. JDBC es una API de Java para ejecutar sentencias SQL, consta de unconjunto de clases e interfaces las cuales estan escritas en lenguaje de programacion Java[speegle˙jdbc:˙2002].

Para el desarrollo de aplicaciones complejas que cuenten por naturaleza con una arqui-tectura Cliente - Servidor, Java nos provee de su plataforma. Java Platform EnterpriseEdition o Java EE es una plataforma de programacion para desarrollar y ejecutar softwa-re de aplicaciones que permite utilizar arquitecturas de N capas distribuidas y se apoyaampliamente en componentes de software modulares ejecutandose sobre un servidor deaplicaciones. Esta plataforma esta orientada principalmente al desarrollo de aplicacionesweb.

Las aplicaciones desarrolladas usando JEE, hacen uso de un servidor aplicaciones. Unode los servidores de aplicaciones mas populares es TomEE, ya que sus principales carac-teristicas son la sencillez y velocidad.

25

Page 26: Prototipo Did actico de una Estaci on Meteorol ogica

2 Marco Teorico

Transferencia de Estado Representacional

Transferencia de Estado Representacional (REST) es una tecnica de arquitectura desoftware y tiene sus inicios por el ano 2000. REST se refiere a una coleccion de principiosarquitectonicos por los cuales se disenan servicios web haciendo foco en los recursos delsistema, incluyendo como se accede al estado de dichos recursos y como se transfieren porHTTP hacia clientes escritos en diversos lenguajes [richardson˙restful˙2008]. RESTemergio en los ultimos anos como el modelo predominante para el diseno de servicios.

Una implementacion de un servicio web REST se caracteriza por cuatro principiosfundamentales:

Uso de metodos HTTP.

Prescindir del estado de la comunicacion.

Exponer URL’s con forma de directorios

Transferencia de informacion mediante XML o JavaScript Object Notation (JSON).

JSON es un formato ligero para el intercambio de datos, basado en la sintaxis dellenguaje de programacion JavaScript. JSON es legible e independiente de la plataforma,ademas de tener a su disposicion implementaciones en una amplia gama de lenguajes deprogramacion.

La plataforma Java EE provee del estandar JAX-RS que nos permite el desarrollo desistemas usando la arquitectura REST. El servidor TomEE provee una implementacionde este estandar.

Plataforma Web

HTML es el acronimo de HyperText Markup Language.Es un lenguaje de hipertexto, esotras palabras permite escribir texto de forma estructurada.Esta compuesto por etiquetas,que marcan el inicio y fin de cada elemento del documento.

Con el paso del tiempo han surgido diferentes versiones, a las cuales se han incorporadoy suprimido caracterısticas, con el fin de hacerlo mas eficiente y facilitar el desarrollo depaginas web compatibles con distintos navegadores y plataformas.

Javascript es un lenguaje de programacion que se utiliza para la creacion de paginasweb dinamica [maza˙javascript˙2012], gracias a su compatibilidad con la mayorıa de losnavegadores modernos, es un lenguaje de programacion muy utilizado.

Ajax es una forma de desarrollo web para crear aplicaciones interactivas.El desarrollode aplicaciones web siguiendo el esquema AJAX se basa en realizar la interfaz con elcliente mediante paginas web e interactuar de forma asıncrona con el servidor en segun-do plano sin necesidad de recargar las paginas, como ocurrıa en el modelo tradicional[olson˙ajax˙2007].

Ajax es una tecnica valida para multiples plataformas y utilizable en muchos sistemasoperativos y navegadores dado que esta basado en estandares abiertos como JavaScript yDocument Object Model.

26

Page 27: Prototipo Did actico de una Estaci on Meteorol ogica

2.3 Tecnologıas de Software

Jquery fue creado por John Resig, es un framework de JavaScript.Es decir es un pro-ducto que sirve como base para la programacion avanzada de aplicaciones, que aportauna serie de funciones o codigos para realizar tareas habituales. Un framework son unconjunto de librerıas de codigo que contienen procesos o rutinas ya listos para usar. Seemplean los frameworks para ası no tener que desarrollar las tareas mas basicas, puestoque en el propio framework ya hay implementaciones que estan probadas, funcionan y nose necesitan volver a programar.

RGraph es una biblioteca basada en JavaScript gratuita y construida para graficos web.RGraph crea los graficos de HTML5 en el navegador web utilizando JavaScript, lo quesignifica paginas web mas rapidas y con menos carga del servidor web. Esto lleva a lospequenos tamanos de pagina, menores costos y sitios web mas rapidos.

Herramientas de Software

Eclipse es una plataforma de desarrollo compuesta por un conjunto de herramientas deprogramacion de codigo abierto multiplataforma. Esta plataforma, tıpicamente ha sidousada para desarrollar entornos de desarrollo integrados (del ingles IDE), como el IDEde Java llamado Java Development Toolkit (JDT) y el compilador (ECJ) que se entregacomo parte de Eclipse (y que son usados tambien para desarrollar el mismo Eclipse).

Mercurial es un sistema de versiones distribuido libre y gratuito, orientado a desarro-lladores de software. Fue escrito para funcionar en Linux pero ha sido adaptado paraWindows, Mac OS y la mayorıa de otros sistemas tipo Unix.

27

Page 28: Prototipo Did actico de una Estaci on Meteorol ogica
Page 29: Prototipo Did actico de una Estaci on Meteorol ogica

3 Desarrollo

En este apartado se describe el desarrollo hardware y software del prototipo de laestacion meteorologica.

3.1. Desarrollo del Hardware

En la figura 3.1 se muestran los elementos que integran el prototipo de la estacionmeteorologica.

Figura 3.1. Diagrama del prototipo didactico de la estacion meteorologico.

En los apartados siguientes se describira cada uno de estos elementos.

3.1.1. Anemometro

Como ya se menciono el anemometro esta encargado de medir la velocidad del viento.Para el desarrollo del proyecto se eligio el anemometro de Robinson pues posee buenaexactitud y no requiere de una orientacion.

29

Page 30: Prototipo Did actico de una Estaci on Meteorol ogica

3 Desarrollo

La eleccion de los materiales fue crucial en la construccion del dispositivo ya que estandirectamente relacionados con su buen funcionamiento, es decir, deben ser muy ligeros.

La construccion los elementos que componen el anemometro se describe continuacion:

Cazoletas: Fueron construidas por la mitad de un flotador plastico ver figura 3.2.

Figura 3.2. Cazoleta.

Varillas: Son las encargadas de soportar las cazoletas, se disenaron con aluminio estodebido a su baja densidad.Fue necesario realizar cuerda en ambas orillas de estas,para con ello poder fijar un extremo al eje del anemometro y el otro a las cazoletas.

Figura 3.3. Varillas.

Estas varillas poseen una longitud de 32cm.

Eje: Este fue fabricado con un motor brushless el cual no posee escobillas, por loque se reduce la friccion y el calor, a este motor se le realizaron 4 orificios ver figura3.4.

Figura 3.4. Motor con orificios para los soportes de las cazoletas.

El motor fue fijado a una tapa de PVC cuyo diametro es de 12cm ver figura 3.5.

30

Page 31: Prototipo Did actico de una Estaci on Meteorol ogica

3.1 Desarrollo del Hardware

Figura 3.5. Eje del anemometro.

Cada uno de los componentes mencionados anteriormente fueron fijados como se mues-tra en la siguiente figura.

Figura 3.6. Anemometro ensamblado.

En la parte inferior del motor fue fijado una circunferencia disenada de carton blancocon 8 franjas negras como se muestra en la figura 3.7. Mediante esta circunferencia seactivaran los sensores para medir la velocidad del viento.

31

Page 32: Prototipo Did actico de una Estaci on Meteorol ogica

3 Desarrollo

Figura 3.7. Circunferencia para area de sensado.

Para el desarrollo de la electronica del anemometro se empleo el sensor optico CNY70(ver 6.1.1) debido que posee un muy buen tiempo de respuesta con lo cual se obtienenmediciones precisas .

Figura 3.8. Sensor Optico.

La conexion del sensor optico se muestra en la figura 3.9

32

Page 33: Prototipo Did actico de una Estaci on Meteorol ogica

3.1 Desarrollo del Hardware

Figura 3.9. Configuracion del sensor optico.

Puesto que la salida del sensor es proporcional con la cantidad de rayo reflectado por elobjeto; se conecto a esta un buffer trigger-schmitt (ver 6.1.2) con el objetivo de obteneruna salida logica, es decir, este sistema se encarga de distinguir entre blanco y negro.

El diagrama esquematico es mostrado en la figura 3.10

Figura 3.10. Conexion del sensor optico.

El diseno de la tarjeta de circuito impreso para el anemometro es mostrado en la figura3.11.

33

Page 34: Prototipo Did actico de una Estaci on Meteorol ogica

3 Desarrollo

Figura 3.11. Diseno de la tarjeta de circuito impreso para el anemometro.

La figura 3.12 muestra la tarjeta finalizada.

Figura 3.12. Tarjeta para medir la rotacion del anemometro .

La alimentacion de la tarjeta mostrada en la figura 3.11 se realizo con un jack rj45, esto

34

Page 35: Prototipo Did actico de una Estaci on Meteorol ogica

3.1 Desarrollo del Hardware

con la finalidad de facilitar la conexion.

Esta placa fue fijada a la parte inferior del motor brushless, a una distancia menor a50mm de la circunferencia ver figura 3.7.

Figura 3.13. Distancia del montaje entre la tarjeta y sensor.

Es de suma importancia la distancia existente entre la circunferencia y el sensor ya quede ello depende que el sensor sea capaz de detectar el cambio de blanco a negro.

3.1.2. Veleta

La veleta es el dispositivo que indica la direccion del viento por lo que una de suscaracterısticas primordiales es que al igual forma que el anemometro los materiales debenser muy ligeros.

La construccion de los elementos que componen la veleta es descrita continuacion:

Direccion y cola: Estas dos partes de la veleta se disenaron de sintra el cual es unmaterial ligero, rıgido y resistente.

Varilla: Esta posee una dimension es de 60.5 cm y fue disenada de material plastico.

Eje: Para esta parte de la veleta fue empleado un motor brushless, el cual se fijo auna tapa de PVC de 12 cm de diametro.

Las dimensiones de la veleta son mostrados en la figura 3.14.

35

Page 36: Prototipo Did actico de una Estaci on Meteorol ogica

3 Desarrollo

6 cm 13.5 cm 53 cm 20 cm

37.5 cm

92.5 cm

30 cm 2 cm 20 cm

Figura 3.14. Diagrama de la veleta.

Para fijar la veleta al eje fue necesario encontrar el centro de masa, es decir su puntode equilibrio.El centro de masa se puede apreciar como un punto gris en la figura 3.14.

Cada uno de los elementos anteriormente descritos fueron ensamblados como se muestraen la figura 3.15.

Figura 3.15. Veleta ensamblada

Para el desarrollo de la electronica al igual que en el anemometro se emplearon sensoresopticos CNY70.Los cuales se encargan de notificar al microcontrolador cual es la direccionde la veleta.

El diseno de la tarjeta de circuito impreso para la veleta se muestra en la figura 3.16.

36

Page 37: Prototipo Did actico de una Estaci on Meteorol ogica

3.1 Desarrollo del Hardware

Figura 3.16. Diseno de la tarjeta de circuito impreso para la veleta

El diseno de la tarjeta ya finalizada se muestra en la figura 3.17.

Figura 3.17. Tarjeta para detectar la orientacion de la veleta.

De igual forma que en el anemometro se diseno una circunferencia pero esta vez consolo una franja negra, esta circunferencia fue fijada en la parte inferior del motor con el

37

Page 38: Prototipo Did actico de una Estaci on Meteorol ogica

3 Desarrollo

objetivo de que mediante el paso de la linea negra se activen los sensores CNY70 y conello poder determinar orientacion de esta.

3.1.3. Termometro e higrometro

Para las mediciones de temperatura se empleo el circuito integrado lm35 (ver 6.1.4) elcual es un sensor con una precision de 1 grado centıgrado, la salida es lineal y cada gradocentıgrado es equivalente a 10mV.

Figura 3.18. Sensor de Temperatura LM35.

Las principales caracterısticas que presenta este sensor son las siguientes:

Calibrado en grados Celsius

La tension de salida es proporcional a la temperatura

Alimentacion 4-30 V

Rango configurable

Velocidad de Respuesta 40 microsegundos

Bajo costo

De acuerdo a la conexion del sensor lm35 es posible configurar el rango. Para esteproyecto es necesario el rango completo que ofrece el sensor, es decir de -55 a 150 grados,por lo que se configuro de la siguiente manera.

38

Page 39: Prototipo Did actico de una Estaci on Meteorol ogica

3.1 Desarrollo del Hardware

Figura 3.19. Diagrama de configuracion para rango completo del sensor de temperatura

Donde R1 se calcula de la siguiente forma:

R =V cc

,00005A(3.1)

Sustituyendo valores

R =5

,00005A= 10000ohms (3.2)

Por lo tanto la resistencia adecuada para la configuracion deseada es de 10kilo ohms.

Figura 3.20. Configuracion del LM35 con un rango de -55 a 155 grados centıgrados.

Se implementaron en el proyecto dos sensores de temperatura esto con la finalidad detener una medicion mas precisa.

Las mediciones de la humedad se realizaron con el sensor HMZ433A (ver 6.1.3).

39

Page 40: Prototipo Did actico de una Estaci on Meteorol ogica

3 Desarrollo

Figura 3.21. Sensor de Humedad HMZ433A.

Este sensor de humedad posee las siguientes caracteristicas:

Alimentacion 5 V

Voltaje de Salida 0-3.3V

Rango 20-90 Humedad Relativa

El diseno de la tarjeta de circuito impreso para los sensores de temperatura y humedadse muestra en la figura 3.22.

Figura 3.22. Diseno de la tarjeta de circuito impreso del termometro e higrometro.

La tarjeta finalizada se muestra en la figura

40

Page 41: Prototipo Did actico de una Estaci on Meteorol ogica

3.1 Desarrollo del Hardware

Figura 3.23. Tarjeta para medir la humedad y temperatura.

3.1.4. Tarjeta Principal

Para realizar la conexion de las placas mostradas previamente se realizo el diseno deuna tarjerta de circuito impreso que permitiera la conexion de estas y su vez al microcon-trolador arduino.

El diseno de la tarjeta de circuito impreso se muestra en la figura 3.24

Figura 3.24. Diseno de la tarjeta de circuito impreso principal.

41

Page 42: Prototipo Did actico de una Estaci on Meteorol ogica

3 Desarrollo

La tarjeta terminada se muestra en la figura 3.25

Figura 3.25. Tarjeta principal.

3.1.5. Proteccion

El modulo de proteccion fue disenado con el objetivo de resguardar el microcontrolador,la tarjeta para medir la humedad y temperatura ası como tambien para resguardar elrouter.

Figura 3.26. Modulo de proteccion.

3.1.6. Base para la Estacion Meteorologica

La estacion meteorologica fue fijada a una base que posee por dimensiones 121x31cm. Es fundamental que la estacion meteorologica se encuentre nivelada para su buen

42

Page 43: Prototipo Did actico de una Estaci on Meteorol ogica

3.1 Desarrollo del Hardware

funcionamiento por lo que para conseguir esto se emplearon patas ajustables, ver figura3.27.

Figura 3.27. Patas Niveladoras.

Mediante las patas ajustables es posible balancear la tabla y con ayuda de 4 niveles deburbuja adheridos a la tabla es posible verificar que la estacion se encuentre en condicionesnecesarias para su buen funcionamiento.

Figura 3.28. Niveles de burbuja.

Se fijo a la base de la estacion meteorologica una brujula, debido a que para comenzara realizar las mediciones es indispensable que la veleta apunte al norte.

43

Page 44: Prototipo Did actico de una Estaci on Meteorol ogica

3 Desarrollo

Figura 3.29. Brujula.

44

Page 45: Prototipo Did actico de una Estaci on Meteorol ogica

3.2 Desarrollo del Software

3.2. Desarrollo del Software

El software desarrollado para el proyecto puede dividirse principalmente en tres com-ponentes:

Componente de Medicion. Software que se ejecuta en la plataforma Arduino encar-gado de realizar mediciones meteorologicas y reportarlas al componente de Servicios.

Componente de Servicios. Software que expone un conjunto de servicios para alma-cenar y consultar las mediciones meteorologicas a los otros dos componentes.

Componente de Interfaz de Usuario. Software que proporciona una interfaz graficaweb que muestra las mediciones meteorologicas.

3.2.1. Componente de Medicion

Este software esta implementado en el lenguaje de programacion C sobre la plataformaArduino. Su funcion es realizar mediciones periodicas de los sensores desarrollados. Demanera general, su flujo se muestra en la figura 3.30.

Figura 3.30. Diagrama de flujo del componente de medicion.

45

Page 46: Prototipo Did actico de una Estaci on Meteorol ogica

3 Desarrollo

3.2.2. Componente de Servicios

Este componente realiza dos funciones, en primer lugar proporciona servicios para alma-cenar y acceder a las mediciones, ademas, ejecuta un proceso que periodicamente calculay almacena un promedio de las mediciones ocurridas durante este lapso. La figura 3.31muestra el diagrama de clases de este componente.

Figura 3.31. Diagrama de clases resumido.

Base de Datos

El diseno de la base de datos se muestra en la figura 3.32.

Figura 3.32. Diagrama entidad relacion de la base de datos.

La funcion que cumplen las tablas es la siguiente:

measure. Almacena las mediciones que entregadas por el componente de Medicion.

normalized measure. Almacena un historial de promedios de mediciones. Cada pro-medio representa el conjunto de mediciones ocurridas cada 10 minutos.

Measure y MeasureDB son las clases que proporcionan acceso a la base de datos, sudiagrama de clases se muestra en el figura 3.33.

46

Page 47: Prototipo Did actico de una Estaci on Meteorol ogica

3.2 Desarrollo del Software

Figura 3.33. Diagrama de clases para el acceso a base de datos.

Interfaz de Servicios

Los siguientes servicios son expuestos utilizando una arquitectura REST y el formatoJSON:

Guardar medicion (URL/measure/save). Almacena una medicion en la tabla measure.

Listar mediciones (URL/list?s=inicio&e=fin). Lista las mediciones que ocurrieronentre inicio y fin.

Listar promedio de mediciones (URL/listNormalized?s=inicio&e=fin). Lista los pro-medios de medicionesgenerados entre inicio y fin.

47

Page 48: Prototipo Did actico de una Estaci on Meteorol ogica

3 Desarrollo

MeasureResource es la clase que proporciona el acceso a los servicios, su diagrama declases se muestra en el figura 3.34.

Figura 3.34. Diagrama de clases para el acceso a base de datos.

Proceso generador de promedios

El componente cuenta con un proceso que se ejecuta a intervalos periodicos, cada 10minutos de manera indefinida. En cada ejecucion el proceso realiza estas dos tareas:

Guardar medicion (URL/measure/save). Almacena una medicion en la tabla measure.

Listar mediciones (URL/list?s=inicio&e=fin). Lista las mediciones que ocurrieronentre inicio y fin.

Listar promedio de mediciones (URL/listNormalized?s=inicio&e=fin). Lista los pro-medios de medicionesgenerados entre inicio y fin.

ContextListener y NormalizedMeasureGenerator son las clases que proporciona estafuncionalidad, su diagrama de clases se muestra en el figura 3.35.

Figura 3.35. Diagrama de clases para el acceso a base de datos.

48

Page 49: Prototipo Did actico de una Estaci on Meteorol ogica

3.2 Desarrollo del Software

3.2.3. Componente de Interfaz de Usuario

Proporciona una pagina web interactiva que consta de dos pestanas en las que se mues-tran las mediciones. La primera pestana presenta las mediciones obtenidas en tiempo realdel hardware. En la figura 3.36 se muestra esta pestana.

.

Figura 3.36. Grafica de la temperatura en con mediciones de tiempo real.

En la parte inferior de la pestana se encuentran instrumentos que muestran los valorescorrespondientes a la medicion al presionar un punto sobre la grafica.

Figura 3.37. Instrumentos de medicion.

En la segunda pestana se presenta una grafica que muestra los promedios de las medi-ciones.

.

Figura 3.38. Grafica de promedios de temperatura.

49

Page 50: Prototipo Did actico de una Estaci on Meteorol ogica
Page 51: Prototipo Did actico de una Estaci on Meteorol ogica

4 Pruebas y resultados

En este apartado se muestran las pruebas y resultados realizados para comprobar lafiabilidad del proyecto.

4.1. Funcionamiento

El diagrama que muestra el funcionamiento del prototipo didactico de la estacion me-teorologica se puede observar en la figura 4.1

Figura 4.1. Funcionamiento del prototipo didactico de la estacion meteorologica monito-reado de forma remota.

El bloque de estacion es el encargado de medir las variables meteorologicas para despuesmediante el microcontrolador ser enviadas al servidor y posteriormente ser reportadas enla interfaz grafica.

51

Page 52: Prototipo Did actico de una Estaci on Meteorol ogica

4 Pruebas y resultados

4.2. Pruebas

Se realizo una comparativa entre las mediciones representativas generadas por el pro-totipo y mediciones de un servicio meteorologico publico llamado OpenWeatherMap.

En la figura 4.2 se muestra grafica comparativa de las mediciones de humedad.

Figura 4.2. Grafica comparativa de humedad.

La grafica en azul nos muestra las mediciones obtenidas por OpenWeatherMap mientrasque la grafica en rojo nos muestra las mediciones obtenidas de la estacion.

En la figura 4.3 se muestra grafica comparativa de las mediciones de temperatura.

Figura 4.3. Grafica comparativa de temperatura.

52

Page 53: Prototipo Did actico de una Estaci on Meteorol ogica

4.3 Estimacion de costos

En la figura 4.4 se muestra grafica comparativa de las mediciones de velocidad. De estafigura se puede observar que hay variaciones significativas en las mediciones de ambossistemas, esto debido a que se encuentran en lugares distintos.

Figura 4.4. Grafica comparativa de velocidad.

En las pruebas mencionadas anteriormente, se puede apreciar que las mediciones produ-cidas por el prototipo son confiables, ya que al comparar sus mediciones con las otorgadaspor el servicio meteorologico OpenWeatherMap son muy similares.

4.3. Estimacion de costos

El costo estimado del hardware del proyecto se resume mediante la siguiente tabla.

53

Page 54: Prototipo Did actico de una Estaci on Meteorol ogica

4 Pruebas y resultados

Figura 4.5. Tabla de costos para el Hardware.

Considerando que el sueldo de un ingeniero es aproximadamente de 30,000 pesos men-suales, realizando el calculo para obtener el ingreso por hora, resulta un aproximado de150 pesos.

Las horas dedicadas al desarrollo del proyecto fueron aproximadamente 500, conside-rando el anterior calculo se tiene el desarrollo de este proyecto tendrıa un costo de manode obra aproximado de 75,000 pesos.

Figura 4.6. Tabla de costo del proyeto.

54

Page 55: Prototipo Did actico de una Estaci on Meteorol ogica

5 Conclusiones

Una vez concluido el proyecto, los resultados que podemos sintetizar son los siguientes:

Fue posible disenar y construir componentes de hardware conformados por disposi-tivos mecanicos y tarjetas electronicas que pudieran producir medidas fiables de lasvariables meteorologicas propuestas.

Fue posible disenar e implementar un software para interactuar y registrar la infor-macion producida por los componentes de hardware de forma exitosa.

Fue posible disenar e implementar un software que por medio de un sitio web quepermite monitorear e interpretar de manera remota los resultados producidos porlos componentes de hardware.

Finalmente podemos concluir que fue posible alcanzar el objetivo general del proyecto,es decir, construir un prototipo de estacion meteorologica midiendo las cuatro variablespropuestas: humedad relativa, temperatura, direccion y velocidad del viento.

55

Page 56: Prototipo Did actico de una Estaci on Meteorol ogica
Page 57: Prototipo Did actico de una Estaci on Meteorol ogica

6 Anexos

6.1. Hardware

6.1.1. Especificaciones CNY70

57

Page 58: Prototipo Did actico de una Estaci on Meteorol ogica

CNY70www.vishay.com Vishay Semiconductors

Rev. 1.8, 30-Jul-12 1 Document Number: 83751

For technical questions, contact: [email protected] DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE. THE PRODUCTS DESCRIBED HEREIN AND THIS DOCUMENT

ARE SUBJECT TO SPECIFIC DISCLAIMERS, SET FORTH AT www.vishay.com/doc?91000

Reflective Optical Sensor with Transistor Output

DESCRIPTIONThe CNY70 is a reflective sensor that includes an infrared emitter and phototransistor in a leaded package which blocks visible light.

FEATURES• Package type: leaded

• Detector type: phototransistor

• Dimensions (L x W x H in mm): 7 x 7 x 6

• Peak operating distance: < 0.5 mm

• Operating range within > 20 % relative collector current: 0 mm to 5 mm

• Typical output current under test: IC = 1 mA

• Emitter wavelength: 950 nm

• Daylight blocking filter

• Lead (Pb)-free soldering released

• Material categorization: For definitions of compliance please see www.vishay.com/doc?99912

APPLICATIONS• Optoelectronic scanning and switching devices i.e., index

sensing, coded disk scanning etc. (optoelectronic encoder assemblies).

Notes(1) CTR: current transfere ratio, Iout/Iin(2) Conditions like in table basic charactristics/sensors

Note(1) MOQ: minimum order quantity

E D

Top view

Marking area

19158_1

21835

PRODUCT SUMMARY

PART NUMBERDISTANCE FOR

MAXIMUM CTRrel (1)

(mm)

DISTANCE RANGE FORRELATIVE Iout > 20 %

(mm)

TYPICAL OUTPUT CURRENT UNDER TEST (2)

(mA)

DAYLIGHT BLOCKING FILTER

INTEGRATED

CNY70 0 0 to 5 1 Yes

ORDERING INFORMATIONORDERING CODE PACKAGING VOLUME (1) REMARKS

CNY70 Tube MOQ: 4000 pcs, 80 pcs/tube -

ABSOLUTE MAXIMUM RATINGS (Tamb = 25 °C, unless otherwise specified)PARAMETER TEST CONDITION SYMBOL VALUE UNIT

COUPLER

Total power dissipation Tamb ≤ 25 °C Ptot 200 mW

Ambient temperature range Tamb - 40 to + 85 °C

Storage temperature range Tstg - 40 to + 100 °C

Soldering temperature Distance to case 2 mm, t £ 5 s Tsd 260 °C

INPUT (EMITTER)

Reverse voltage VR 5 V

Forward current IF 50 mA

Forward surge current tp ≤ 10 μs IFSM 3 A

Power dissipation Tamb ≤ 25 °C PV 100 mW

Junction temperature Tj 100 °C

Page 59: Prototipo Did actico de una Estaci on Meteorol ogica

CNY70www.vishay.com Vishay Semiconductors

Rev. 1.8, 30-Jul-12 2 Document Number: 83751

For technical questions, contact: [email protected] DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE. THE PRODUCTS DESCRIBED HEREIN AND THIS DOCUMENT

ARE SUBJECT TO SPECIFIC DISCLAIMERS, SET FORTH AT www.vishay.com/doc?91000

ABSOLUTE MAXIMUM RATINGS

Fig. 1 - Power Dissipation vs. Ambient Temperature

Notes(1) Measured with the “Kodak neutral test card”, white side with 90 % diffuse reflectance(2) Measured without reflecting medium

OUTPUT (DETECTOR)

Collector emitter voltage VCEO 32 V

Emitter collector voltage VECO 7 V

Collector current IC 50 mA

Power dissipation Tamb ≤ 25 °C PV 100 mW

Junction temperature Tj 100 °C

ABSOLUTE MAXIMUM RATINGS (Tamb = 25 °C, unless otherwise specified)PARAMETER TEST CONDITION SYMBOL VALUE UNIT

0

100

200

300

0

95 11071

P -

Pow

er D

issi

patio

n (m

W)

Tamb - Ambient Temperature (°C)

IR - diode

Coupled device

Phototransistor

25 50 75 100

BASIC CHARACTERISTICS (Tamb = 25 °C, unless otherwise specified)PARAMETER TEST CONDITION SYMBOL MIN. TYP. MAX. UNIT

COUPLER

Collector currentVCE = 5 V, IF = 20 mA, d = 0.3 mm (figure 1)

IC (2) 0.3 1.0 mA

Cross talk current VCE = 5 V, IF = 20 mA, (figure 2) ICX (3) 600 nA

Collector emitter saturation voltage

IF = 20 mA, IC = 0.1 mA, d = 0.3 mm (figure 1)

VCEsat (2) 0.3 V

INPUT (EMITTER)

Forward voltage IF = 50 mA VF 1.25 1.6 V

Radiant intensity IF = 50 mA, tp = 20 ms Ie 7.5 mW/sr

Peak wavelength IF = 100 mA λP 940 nm

Virtual source diameter Method: 63 % encircled energy d 1.2 mm

OUTPUT (DETECTOR)

Collector emitter voltage IC = 1 mA VCEO 32 V

Emitter collector voltage IE = 100 μA VECO 5 V

Collector dark current VCE = 20 V, IF = 0 A, E = 0 lx ICEO 200 nA

Page 60: Prototipo Did actico de una Estaci on Meteorol ogica

6 Anexos

6.1.2. Especificaciones HEF40106

60

Page 61: Prototipo Did actico de una Estaci on Meteorol ogica

1. General description

The HEF40106B provides six inverting buffers. Each input has a Schmitt trigger circuit. The inverting buffer switches at different points for positive-going and negative-going signals. The difference between the positive voltage (VT+) and the negative voltage (VT) is defined as hysteresis voltage (VH).

The HEF40106B may be used for enhanced noise immunity or to “square up” slowly changing waveforms.

It operates over a recommended VDD power supply range of 3 V to 15 V referenced to VSS (usually ground). Unused inputs must be connected to VDD, VSS, or another input.

2. Features and benefits

Schmitt trigger input discrimination

Fully static operation

5 V, 10 V, and 15 V parametric ratings

Standardized symmetrical output characteristics

Specified from 40 C to +125 C Complies with JEDEC standard JESD 13-B

3. Applications

Wave and pulse shapers

Astable multivibrators

Monostable multivibrators

4. Ordering information

HEF40106BHex inverting Schmitt triggerRev. 7 — 21 November 2011 Product data sheet

Table 1. Ordering informationAll types operate from 40 C to +125 C

Type number Package

Name Description Version

HEF40106BP DIP14 plastic dual in-line package; 14 leads (300 mil) SOT27-1

HEF40106BT SO14 plastic small outline package; 14 leads; body width 3.9 mm SOT108-1

HEF40106BTT TSSOP14 plastic thin shrink small outline package; 14 leads; body width 4.4 mm SOT402-1

Page 62: Prototipo Did actico de una Estaci on Meteorol ogica

HEF40106B All information provided in this document is subject to legal disclaimers. © NXP B.V. 2011. All rights reserved.

Product data sheet Rev. 7 — 21 November 2011 2 of 16

NXP Semiconductors HEF40106BHex inverting Schmitt trigger

5. Functional diagram

6. Pinning information

6.1 Pinning

Fig 1. Functional diagram Fig 2. Logic diagram (one inverting buffer)

mna204

1A 1Y1 2

2A 2Y3 4

3A 3Y5 6

4A 4Y9 8

5A 5Y11 10

6A 6Y13 12

mna025

A Y

Fig 3. Pin configuration

HEF40106B

1A VDD

1Y 6A

2A 6Y

2Y 5A

3A 5Y

3Y 4A

VSS 4Y

001aal174

1

2

3

4

5

6

7 8

10

9

12

11

14

13

Page 63: Prototipo Did actico de una Estaci on Meteorol ogica

6.1 Hardware

6.1.3. Especificaciones HMZ433A

63

Page 64: Prototipo Did actico de una Estaci on Meteorol ogica

CERAMIC CAPACITORSMA Series: Multilayer Surface MountHUMIDITY & TEMPERATURE MODULEHMZ-433A

•Wide humidity operation range•Linear DC output•Long term stability•Small and economical•Temperature sensing included•RoHS Compliant

FEATURESThe HMZ-433A is a humidity and temperature sensing module that can be installed in a wide range of applications. This module requires no additional engineering and has specified inputs and outputs.

INTRODUCTION

C7B03REV2006.09.13

APPLICATIONS•Airconditioner, Humidifier, Dehumidifier•Humidity Controller, Humidity transmitter•Hygrometer, Hygro-recorder•Copy machines, Data Equipment•Appliance•Weather forecast Equipment

ELECTRICAL CHARACTERISTICS

Humidity Output(At 25°C, Vin=5Vdc)*See Figure A

Sensing Element (Humidity) HMZ-433A, Ghitron HCZ-H6A

Supply Voltage (VIN)

Current Consumption

Operating Range

5Vdc+5%

Storage Range

5mA max (2mA average.)

0 to 60°C

Humidity Transmitting Range

Accuracy at 25°C(+0.5°C)

95% RH or Less

-20 to 60°C 95% RH or Less

30 to 90% RH

+5%RH (at 60%RH, Vin=5Vdc)

Temperature Response(50k¿+1% thermistor)*See Figure B

Temp (°C)Resistance (k¿

0160.56

1098.71

2062.32

2550

3040.3

4026.75

5018.8

6012.5

*Connector is 2317RJ-04 (4 pins, 2.5mm pitch)

DIMENSIONS

% RHVo

301.00

401.32

501.65

601.98

702.31

802.64

902.97

RFE International • Tel:(949) 833-1988 • Fax:(949) 833-1788 • E-Mail [email protected]

Page 65: Prototipo Did actico de una Estaci on Meteorol ogica

Thermistor R-T curve

0

20

40

60

80

100

120

140

160

180

0 5 10 15 20 25 30 35 40 45 50 55 60Temperature (C)

Re

sis

tan

ce

(Ko

hm

s)

C7B03REV2006.09.13

FIGURE B

HOW TO USE IN CIRCUIT

30% RH

40% RH

50% RH

60% RH

70% RH

80% RH

90% RH

15°C

1.23

1.39

1.65

2.01

2.28

2.47

2.82

20°C

1.09

1.32

1.65

2.00

2.21

2.46

2.77

25°C

1.02

1.30

1.64

1.98

2.25

2.45

2.73

30°C

0.94

1.20

1.60

1.97

2.22

2.41

2.71

35°C

0.83

1.14

1.58

1.94

2.15

2.42

2.70

40°C

0.78

1.13

1.62

1.95

2.16

2.42

2.67

HMZ Module Humidity Output 0~3.3V v.s. Temperature Characterisics

C>0.1uf

Humidity Circuit Block

Pin1

Pin2 Pin3

Power (+5V)

Humidity Output (DC:V) GND

Ou

tpu

tV

olta

ge

(V)

Relative Humidity (%RH)

FIGURE A

Humidity Output 0~3.3V characteristics

0.00

0.50

1.00

1.50

2.00

2.50

3.00

20 30 40 50 60 70 80 90 100

HUMIDITY & TEMPERATURE MODULEHMZ-433A

Thermistor

Circuit Block

Power (+5V)

GND Temperature Output (DC:V)

Pin1

Pin2 Pin3

Resistor

Pin4

RFE International • Tel:(949) 833-1988 • Fax:(949) 833-1788 • E-Mail [email protected]

Page 66: Prototipo Did actico de una Estaci on Meteorol ogica

6 Anexos

6.1.4. Especificaciones LM35

66

Page 67: Prototipo Did actico de una Estaci on Meteorol ogica

TL/H/5516

LM

35/LM

35A

/LM

35C

/LM

35C

A/LM

35D

Pre

cis

ion

Centig

rade

Tem

pera

ture

Sensors

December 1994

LM35/LM35A/LM35C/LM35CA/LM35DPrecision Centigrade Temperature SensorsGeneral DescriptionThe LM35 series are precision integrated-circuit tempera-

ture sensors, whose output voltage is linearly proportional to

the Celsius (Centigrade) temperature. The LM35 thus has

an advantage over linear temperature sensors calibrated in §Kelvin, as the user is not required to subtract a large con-

stant voltage from its output to obtain convenient Centi-

grade scaling. The LM35 does not require any external cali-

bration or trimming to provide typical accuracies of g(/4§Cat room temperature and g*/4§C over a full b55 to a150§Ctemperature range. Low cost is assured by trimming and

calibration at the wafer level. The LM35’s low output imped-

ance, linear output, and precise inherent calibration make

interfacing to readout or control circuitry especially easy. It

can be used with single power supplies, or with plus and

minus supplies. As it draws only 60 mA from its supply, it has

very low self-heating, less than 0.1§C in still air. The LM35 is

rated to operate over a b55§ to a150§C temperature

range, while the LM35C is rated for a b40§ to a110§Crange (b10§ with improved accuracy). The LM35 series is

available packaged in hermetic TO-46 transistor packages,

while the LM35C, LM35CA, and LM35D are also available in

the plastic TO-92 transistor package. The LM35D is also

available in an 8-lead surface mount small outline package

and a plastic TO-202 package.

FeaturesY Calibrated directly in § Celsius (Centigrade)Y Linear a 10.0 mV/§C scale factorY 0.5§C accuracy guaranteeable (at a25§C)Y Rated for full b55§ to a150§C rangeY Suitable for remote applicationsY Low cost due to wafer-level trimmingY Operates from 4 to 30 voltsY Less than 60 mA current drainY Low self-heating, 0.08§C in still airY Nonlinearity only g(/4§C typicalY Low impedance output, 0.1 X for 1 mA load

Connection DiagramsTO-46

Metal Can Package*

TL/H/5516–1

*Case is connected to negative pin (GND)

Order Number LM35H, LM35AH,

LM35CH, LM35CAH or LM35DH

See NS Package Number H03H

TO-92

Plastic Package

TL/H/5516–2

Order Number LM35CZ,

LM35CAZ or LM35DZ

See NS Package Number Z03A

SO-8

Small Outline Molded Package

TL/H/5516–21

Top View

N.C. e No Connection

Order Number LM35DM

See NS Package Number M08A

TO-202

Plastic Package

TL/H/5516–24

Order Number LM35DP

See NS Package Number P03A

Typical Applications

TL/H/5516–3

FIGURE 1. Basic Centigrade

Temperature

Sensor (a2§C to a150§C)

TL/H/5516–4

Choose R1 e bVS/50 mA

VOUTea1,500 mV at a150§Cea250 mV at a25§Ceb550 mV at b55§C

FIGURE 2. Full-Range Centigrade

Temperature Sensor

TRI-STATEÉ is a registered trademark of National Semiconductor Corporation.

C1995 National Semiconductor Corporation RRD-B30M75/Printed in U. S. A.

Page 68: Prototipo Did actico de una Estaci on Meteorol ogica

Absolute Maximum Ratings (Note 10)

If Military/Aerospace specified devices are required,

please contact the National Semiconductor Sales

Office/Distributors for availability and specifications.

Supply Voltage a35V to b0.2V

Output Voltage a6V to b1.0V

Output Current 10 mA

Storage Temp., TO-46 Package, b60§C to a180§CTO-92 Package, b60§C to a150§CSO-8 Package, b65§C to a150§CTO-202 Package, b65§C to a150§C

Lead Temp.:

TO-46 Package, (Soldering, 10 seconds) 300§CTO-92 Package, (Soldering, 10 seconds) 260§CTO-202 Package, (Soldering, 10 seconds) a230§C

SO Package (Note 12):

Vapor Phase (60 seconds) 215§CInfrared (15 seconds) 220§C

ESD Susceptibility (Note 11) 2500V

Specified Operating Temperature Range: TMIN to TMAX

(Note 2)

LM35, LM35A b55§C to a150§CLM35C, LM35CA b40§C to a110§CLM35D 0§C to a100§C

Electrical Characteristics (Note 1) (Note 6)

LM35A LM35CA

Parameter ConditionsTested Design Tested Design Units

Typical Limit Limit Typical Limit Limit (Max.)

(Note 4) (Note 5) (Note 4) (Note 5)

Accuracy TAea25§C g0.2 g0.5 g0.2 g0.5 §C(Note 7) TAeb10§C g0.3 g0.3 g1.0 §C

TAeTMAX g0.4 g1.0 g0.4 g1.0 §CTAeTMIN g0.4 g1.0 g0.4 g1.5 §C

Nonlinearity TMINsTAsTMAX g0.18 g0.35 g0.15 g0.3 §C(Note 8)

Sensor Gain TMINsTAsTMAX a10.0 a9.9, a10.0 a9.9, mV/§C(Average Slope) a10.1 a10.1

Load Regulation TAea25§C g0.4 g1.0 g0.4 g1.0 mV/mA

(Note 3) 0sILs1 mA TMINsTAsTMAX g0.5 g3.0 g0.5 g3.0 mV/mA

Line Regulation TAea25§C g0.01 g0.05 g0.01 g0.05 mV/V

(Note 3) 4VsVSs30V g0.02 g0.1 g0.02 g0.1 mV/V

Quiescent Current VSea5V, a25§C 56 67 56 67 mA

(Note 9) VSea5V 105 131 91 114 mA

VSea30V, a25§C 56.2 68 56.2 68 mA

VSea30V 105.5 133 91.5 116 mA

Change of 4VsVSs30V, a25§C 0.2 1.0 0.2 1.0 mA

Quiescent Current 4VsVSs30V 0.5 2.0 0.5 2.0 mA

(Note 3)

Temperature a0.39 a0.5 a0.39 a0.5 mA/§CCoefficient of

Quiescent Current

Minimum Temperature In circuit of a1.5 a2.0 a1.5 a2.0 §Cfor Rated Accuracy Figure 1, ILe0

Long Term Stability TJeTMAX, for g0.08 g0.08 §C1000 hours

Note 1: Unless otherwise noted, these specifications apply: b55§CsTJsa150§C for the LM35 and LM35A; b40§sTJsa110§C for the LM35C and LM35CA; and

0§sTJsa100§C for the LM35D. VSea5Vdc and ILOADe50 mA, in the circuit of Figure 2. These specifications also apply from a2§C to TMAX in the circuit of

Figure 1. Specifications in boldface apply over the full rated temperature range.

Note 2: Thermal resistance of the TO-46 package is 400§C/W, junction to ambient, and 24§C/W junction to case. Thermal resistance of the TO-92 package is

180§C/W junction to ambient. Thermal resistance of the small outline molded package is 220§C/W junction to ambient. Thermal resistance of the TO-202 package

is 85§C/W junction to ambient. For additional thermal resistance information see table in the Applications section.

2

Page 69: Prototipo Did actico de una Estaci on Meteorol ogica

Electrical Characteristics (Note 1) (Note 6) (Continued)

LM35 LM35C, LM35D

Parameter ConditionsTested Design Tested Design Units

Typical Limit Limit Typical Limit Limit (Max.)

(Note 4) (Note 5) (Note 4) (Note 5)

Accuracy, TAea25§C g0.4 g1.0 g0.4 g1.0 §CLM35, LM35C TAeb10§C g0.5 g0.5 g1.5 §C(Note 7) TAeTMAX g0.8 g1.5 g0.8 g1.5 §C

TAeTMIN g0.8 g1.5 g0.8 g2.0 §C

Accuracy, TAea25§C g0.6 g1.5 §CLM35D TAeTMAX g0.9 g2.0 §C(Note 7) TAeTMIN g0.9 g2.0 §C

Nonlinearity TMINsTAsTMAX g0.3 g0.5 g0.2 g0.5 §C(Note 8)

Sensor Gain TMINsTAsTMAX a10.0 a9.8, a10.0 a9.8, mV/§C(Average Slope) a10.2 a10.2

Load Regulation TAea25§C g0.4 g2.0 g0.4 g2.0 mV/mA

(Note 3) 0sILs1 mA TMINsTAsTMAX g0.5 g5.0 g0.5 g5.0 mV/mA

Line Regulation TAea25§C g0.01 g0.1 g0.01 g0.1 mV/V

(Note 3) 4VsVSs30V g0.02 g0.2 g0.02 g0.2 mV/V

Quiescent Current VSea5V, a25§C 56 80 56 80 mA

(Note 9) VSea5V 105 158 91 138 mA

VSea30V, a25§C 56.2 82 56.2 82 mA

VSea30V 105.5 161 91.5 141 mA

Change of 4VsVSs30V, a25§C 0.2 2.0 0.2 2.0 mA

Quiescent Current 4VsVSs30V 0.5 3.0 0.5 3.0 mA

(Note 3)

Temperature a0.39 a0.7 a0.39 a0.7 mA/§CCoefficient of

Quiescent Current

Minimum Temperature In circuit of a1.5 a2.0 a1.5 a2.0 §Cfor Rated Accuracy Figure 1, ILe0

Long Term Stability TJeTMAX, for g0.08 g0.08 §C1000 hours

Note 3: Regulation is measured at constant junction temperature, using pulse testing with a low duty cycle. Changes in output due to heating effects can be

computed by multiplying the internal dissipation by the thermal resistance.

Note 4: Tested Limits are guaranteed and 100% tested in production.

Note 5: Design Limits are guaranteed (but not 100% production tested) over the indicated temperature and supply voltage ranges. These limits are not used to

calculate outgoing quality levels.

Note 6: Specifications in boldface apply over the full rated temperature range.

Note 7: Accuracy is defined as the error between the output voltage and 10mv/§C times the device’s case temperature, at specified conditions of voltage, current,

and temperature (expressed in §C).

Note 8: Nonlinearity is defined as the deviation of the output-voltage-versus-temperature curve from the best-fit straight line, over the device’s rated temperature

range.

Note 9: Quiescent current is defined in the circuit of Figure 1.

Note 10: Absolute Maximum Ratings indicate limits beyond which damage to the device may occur. DC and AC electrical specifications do not apply when

operating the device beyond its rated operating conditions. See Note 1.

Note 11: Human body model, 100 pF discharged through a 1.5 kX resistor.

Note 12: See AN-450 ‘‘Surface Mounting Methods and Their Effect on Product Reliability’’ or the section titled ‘‘Surface Mount’’ found in a current National

Semiconductor Linear Data Book for other methods of soldering surface mount devices.

3

Page 70: Prototipo Did actico de una Estaci on Meteorol ogica

Typical Performance Characteristics

Thermal Resistance

Junction to Air Thermal Time Constant

Thermal Response

in Still Air

Thermal Response in

Stirred Oil Bath

Minimum Supply

Voltage vs. Temperature

Quiescent Current

vs. Temperature

(In Circuit ofFigure 1.)

TL/H/5516–17

Quiescent Current

vs. Temperature

(In Circuit ofFigure 2.)

Accuracy vs. Temperature

(Guaranteed)

Accuracy vs. Temperature

(Guaranteed)

TL/H/5516–18

Start-Up ResponseNoise Voltage

TL/H/5516–22

4

Page 71: Prototipo Did actico de una Estaci on Meteorol ogica

6.2 Codigos

6.2. Codigos

6.2.1. Clase Measure

package pdem.model;

import java.util.Date;

import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement

public class Measure {

public static final int ES = 0, NE = 1, NO = 2, NW = 3,

WE = 4, SW = 5, SO = 6, SE = 7;

private Date createdOn;

private int id;

private float relativeHumidity;

private float temperature;

private int windDirection;

private float windSpeed;

public Date getCreatedOn() {

return createdOn;

}

public int getId() {

return id;

}

public float getTemperature() {

return temperature;

}

public float getRelativeHumidity() {

return relativeHumidity;

}

public int getWindDirection() {

return windDirection;

}

public float getWindSpeed() {

return windSpeed;

71

Page 72: Prototipo Did actico de una Estaci on Meteorol ogica

6 Anexos

}

public void setId(int id) {

this.id = id;

}

public void setCreatedOn(Date createdOn) {

this.createdOn = createdOn;

}

public void setTemperature(float temperature) {

this.temperature = temperature;

}

public void setRelativeHumidity(float relativeHumidity) {

this.relativeHumidity = relativeHumidity;

}

public void setWindDirection(int windDirection) {

this.windDirection = windDirection;

}

public void setWindSpeed(float windSpeed) {

this.windSpeed = windSpeed;

}

}

6.2.2. Clase MeasureDB

package pdem.persistence;

import java.sql.Connection;

import java.text.DateFormat;

import java.text.SimpleDateFormat;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import java.util.ArrayList;

import java.util.Date;

import java.util.List;

import java.util.logging.Logger;

72

Page 73: Prototipo Did actico de una Estaci on Meteorol ogica

6.2 Codigos

import pdem.model.Measure;

public class MeasureDB {

private final static Logger log =

Logger.getLogger(MeasureDB.class.getName());

private static final String bd = "pdem";

private static final String user = "pdem";

private static final String pass = "pdem";

private static final String server = "jdbc:mysql://localhost/" + bd;

private static DateFormat sdf =

new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

private Connection cnx;

public void deleteBetweenDates(Date start, Date end) {

String sql = "delete from measure " +

"where created_on between ’%s’ and ’%s’";

sql = String.format(sql, sdf.format(start), sdf.format(end));

try {

openConection();

Statement stm = cnx.createStatement();

stm.executeUpdate(sql);

closeStatement(stm);

closeConection();

} catch (SQLException e) {

log.severe(e.getMessage());

}

}

public List<Measure> listBetweenDates(Date start, Date end) {

List<Measure> measures = new ArrayList<>();

String sql = "select * from measure " +

"where created_on between ’%s’ and ’%s’";

sql = String.format(sql, sdf.format(start), sdf.format(end));

try {

openConection();

Statement stm = cnx.createStatement();

ResultSet rst = stm.executeQuery(sql);

while (rst.next()) {

Measure m = new Measure();

m.setId(rst.getInt("id"));

m.setCreatedOn(rst.getTimestamp("created_on"));

73

Page 74: Prototipo Did actico de una Estaci on Meteorol ogica

6 Anexos

m.setRelativeHumidity(rst.getFloat("relative_humidity"));

m.setTemperature(rst.getFloat("temperature"));

m.setWindDirection(rst.getInt("wind_direction"));

m.setWindSpeed(rst.getFloat("wind_speed"));

measures.add(m);

}

closeResultSet(rst);

closeStatement(stm);

closeConection();

} catch (SQLException e) {

log.severe(e.getMessage());

}

return measures;

}

public List<Measure> listNormalizedBetweenDates(Date start, Date end) {

List<Measure> measures = new ArrayList<>();

String sql = "select * from normalized_measure " +

"where created_on between ’%s’ and ’%s’";

sql = String.format(sql, sdf.format(start), sdf.format(end));

try {

openConection();

Statement stm = cnx.createStatement();

ResultSet rst = stm.executeQuery(sql);

while (rst.next()) {

Measure m = new Measure();

m.setId(rst.getInt("id"));

m.setCreatedOn(rst.getTimestamp("created_on"));

m.setRelativeHumidity(rst.getFloat("relative_humidity"));

m.setTemperature(rst.getFloat("temperature"));

m.setWindDirection(rst.getInt("wind_direction"));

m.setWindSpeed(rst.getFloat("wind_speed"));

measures.add(m);

}

closeResultSet(rst);

closeStatement(stm);

closeConection();

} catch (SQLException e) {

log.severe(e.getMessage());

}

return measures;

}

public void save(Measure measure) {

74

Page 75: Prototipo Did actico de una Estaci on Meteorol ogica

6.2 Codigos

String sql = "insert into measure (created_on, relative_humidity," +

"temperature, wind_direction, wind_speed) " +

"values (’%s’, %f, %f, %d, %f)";

sql = String.format(sql, sdf.format(measure.getCreatedOn()),

measure.getRelativeHumidity(),measure.getTemperature(),

measure.getWindDirection(), measure.getWindSpeed());

try {

openConection();

Statement stm = cnx.createStatement();

stm.executeUpdate(sql);

closeStatement(stm);

closeConection();

} catch (SQLException e) {

log.severe(e.getMessage());

}

}

public void saveNormalized(Measure measure) {

String sql = "insert into normalized_measure (created_on, " +

"relative_humidity, temperature, wind_direction," +

"wind_speed) values (’%s’, %f, %f, %d, %f)";

sql = String.format(sql, sdf.format(measure.getCreatedOn()),

measure.getRelativeHumidity(),measure.getTemperature(),

measure.getWindDirection(), measure.getWindSpeed());

try {

openConection();

Statement stm = cnx.createStatement();

stm.executeUpdate(sql);

closeStatement(stm);

closeConection();

} catch (SQLException e) {

log.severe(e.getMessage());

}

}

private void openConection() {

try {

Class.forName("com.mysql.jdbc.Driver");

cnx = DriverManager.getConnection(server, user, pass);

} catch (Exception e) {

System.out.println("Conection failed");

log.severe(e.getMessage());

}

}

75

Page 76: Prototipo Did actico de una Estaci on Meteorol ogica

6 Anexos

private void closeResultSet(ResultSet rs) {

if (rs != null) {

try {

rs.close();

} catch (Exception e) {

System.err.print("Impossible to close the ResultSet");

log.severe(e.getMessage());

}

}

}

private void closeStatement(Statement stmt) {

if (stmt != null) {

try {

stmt.close();

} catch (Exception e) {

System.err.print("Impossible to close the Statement");

log.severe(e.getMessage());

}

}

}

private void closeConection() {

if (cnx != null) {

try {

cnx.close();

} catch (Exception e) {

System.err.print("Impossible to close the conection");

log.severe(e.getMessage());

}

}

}

public static void main(String[] args) {

testSave();

testListBetweenDates();

}

private static void testSave() {

Measure measure = new Measure();

76

Page 77: Prototipo Did actico de una Estaci on Meteorol ogica

6.2 Codigos

measure.setCreatedOn(new Date());

measure.setRelativeHumidity(88.0f);

measure.setTemperature(12.0f);

measure.setWindDirection(1);

measure.setWindSpeed(0.0f);

MeasureDB measureDB = new MeasureDB();

measureDB.save(measure);

}

private static void testListBetweenDates() {

SimpleDateFormat formatter =

new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

String startString = "2013-10-26 09:03:44";

//String endString = "2013-10-26 09:18:13";

try {

Date start=formatter.parse(startString);

//Date end = formatter.parse(endString);

Date end = new Date();

MeasureDB measureDB = new MeasureDB();

List<Measure> measures = measureDB.listBetweenDates(start, end);

for (Measure measure : measures) {

System.out.print(measure.getId() + " ");

System.out.print(measure.getCreatedOn() + " ");

System.out.print(measure.getRelativeHumidity() + " ");

System.out.print(measure.getTemperature() + " ");

System.out.print(measure.getWindDirection() + " ");

System.out.print(measure.getWindSpeed() + " ");

System.out.println();

}

} catch (Exception e) {

e.printStackTrace();

}

}

}

6.2.3. Clase MeasureDB

package pdem.persistence;

import java.sql.Connection;

77

Page 78: Prototipo Did actico de una Estaci on Meteorol ogica

6 Anexos

import java.text.DateFormat;

import java.text.SimpleDateFormat;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import java.util.ArrayList;

import java.util.Date;

import java.util.List;

import java.util.logging.Logger;

import pdem.model.Measure;

public class MeasureDB {

private final static Logger log =

Logger.getLogger(MeasureDB.class.getName());

private static final String bd = "pdem";

private static final String user = "pdem";

private static final String pass = "pdem";

private static final String server = "jdbc:mysql://localhost/" + bd;

private static DateFormat sdf =

new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

private Connection cnx;

public void deleteBetweenDates(Date start, Date end) {

String sql = "delete from measure " +

"where created_on between ’%s’ and ’%s’";

sql = String.format(sql, sdf.format(start), sdf.format(end));

try {

openConection();

Statement stm = cnx.createStatement();

stm.executeUpdate(sql);

closeStatement(stm);

closeConection();

} catch (SQLException e) {

log.severe(e.getMessage());

}

}

public List<Measure> listBetweenDates(Date start, Date end) {

78

Page 79: Prototipo Did actico de una Estaci on Meteorol ogica

6.2 Codigos

List<Measure> measures = new ArrayList<>();

String sql = "select * from measure " +

"where created_on between ’%s’ and ’%s’";

sql = String.format(sql, sdf.format(start), sdf.format(end));

try {

openConection();

Statement stm = cnx.createStatement();

ResultSet rst = stm.executeQuery(sql);

while (rst.next()) {

Measure m = new Measure();

m.setId(rst.getInt("id"));

m.setCreatedOn(rst.getTimestamp("created_on"));

m.setRelativeHumidity(rst.getFloat("relative_humidity"));

m.setTemperature(rst.getFloat("temperature"));

m.setWindDirection(rst.getInt("wind_direction"));

m.setWindSpeed(rst.getFloat("wind_speed"));

measures.add(m);

}

closeResultSet(rst);

closeStatement(stm);

closeConection();

} catch (SQLException e) {

log.severe(e.getMessage());

}

return measures;

}

public List<Measure> listNormalizedBetweenDates(Date start, Date end) {

List<Measure> measures = new ArrayList<>();

String sql = "select * from normalized_measure " +

"where created_on between ’%s’ and ’%s’";

sql = String.format(sql, sdf.format(start), sdf.format(end));

try {

openConection();

Statement stm = cnx.createStatement();

ResultSet rst = stm.executeQuery(sql);

while (rst.next()) {

Measure m = new Measure();

m.setId(rst.getInt("id"));

m.setCreatedOn(rst.getTimestamp("created_on"));

m.setRelativeHumidity(rst.getFloat("relative_humidity"));

m.setTemperature(rst.getFloat("temperature"));

m.setWindDirection(rst.getInt("wind_direction"));

79

Page 80: Prototipo Did actico de una Estaci on Meteorol ogica

6 Anexos

m.setWindSpeed(rst.getFloat("wind_speed"));

measures.add(m);

}

closeResultSet(rst);

closeStatement(stm);

closeConection();

} catch (SQLException e) {

log.severe(e.getMessage());

}

return measures;

}

public void save(Measure measure) {

String sql = "insert into measure (created_on, relative_humidity," +

"temperature, wind_direction, wind_speed) " +

"values (’%s’, %f, %f, %d, %f)";

sql = String.format(sql, sdf.format(measure.getCreatedOn()),

measure.getRelativeHumidity(),measure.getTemperature(),

measure.getWindDirection(), measure.getWindSpeed());

try {

openConection();

Statement stm = cnx.createStatement();

stm.executeUpdate(sql);

closeStatement(stm);

closeConection();

} catch (SQLException e) {

log.severe(e.getMessage());

}

}

public void saveNormalized(Measure measure) {

String sql = "insert into normalized_measure (created_on, " +

"relative_humidity, temperature, wind_direction," +

"wind_speed) values (’%s’, %f, %f, %d, %f)";

sql = String.format(sql, sdf.format(measure.getCreatedOn()),

measure.getRelativeHumidity(),measure.getTemperature(),

measure.getWindDirection(), measure.getWindSpeed());

try {

openConection();

Statement stm = cnx.createStatement();

stm.executeUpdate(sql);

closeStatement(stm);

80

Page 81: Prototipo Did actico de una Estaci on Meteorol ogica

6.2 Codigos

closeConection();

} catch (SQLException e) {

log.severe(e.getMessage());

}

}

private void openConection() {

try {

Class.forName("com.mysql.jdbc.Driver");

cnx = DriverManager.getConnection(server, user, pass);

} catch (Exception e) {

System.out.println("Conection failed");

log.severe(e.getMessage());

}

}

private void closeResultSet(ResultSet rs) {

if (rs != null) {

try {

rs.close();

} catch (Exception e) {

System.err.print("Impossible to close the ResultSet");

log.severe(e.getMessage());

}

}

}

private void closeStatement(Statement stmt) {

if (stmt != null) {

try {

stmt.close();

} catch (Exception e) {

System.err.print("Impossible to close the Statement");

log.severe(e.getMessage());

}

}

}

private void closeConection() {

if (cnx != null) {

try {

cnx.close();

} catch (Exception e) {

81

Page 82: Prototipo Did actico de una Estaci on Meteorol ogica

6 Anexos

System.err.print("Impossible to close the conection");

log.severe(e.getMessage());

}

}

}

public static void main(String[] args) {

testSave();

testListBetweenDates();

}

private static void testSave() {

Measure measure = new Measure();

measure.setCreatedOn(new Date());

measure.setRelativeHumidity(88.0f);

measure.setTemperature(12.0f);

measure.setWindDirection(1);

measure.setWindSpeed(0.0f);

MeasureDB measureDB = new MeasureDB();

measureDB.save(measure);

}

private static void testListBetweenDates() {

SimpleDateFormat formatter =

new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

String startString = "2013-10-26 09:03:44";

//String endString = "2013-10-26 09:18:13";

try {

Date start=formatter.parse(startString);

//Date end = formatter.parse(endString);

Date end = new Date();

MeasureDB measureDB = new MeasureDB();

List<Measure> measures = measureDB.listBetweenDates(start, end);

for (Measure measure : measures) {

System.out.print(measure.getId() + " ");

System.out.print(measure.getCreatedOn() + " ");

System.out.print(measure.getRelativeHumidity() + " ");

System.out.print(measure.getTemperature() + " ");

System.out.print(measure.getWindDirection() + " ");

System.out.print(measure.getWindSpeed() + " ");

82

Page 83: Prototipo Did actico de una Estaci on Meteorol ogica

6.3 C++ Arduino

System.out.println();

}

} catch (Exception e) {

e.printStackTrace();

}

}

}

6.3. C++ Arduino

#include <SPI.h>

#include <Ethernet.h>

const boolean DEBUG = false;

const boolean PRINT_MEASURE = false;

const boolean PRINT_REQUEST = false;

const boolean PRINT_RESPONSE = false;

const boolean SEND_REQUEST = true;

const unsigned long INTERVAL_MEASURE = 1 * 1000;

const unsigned long INTERVAL_MEASURE_WIND = 500;

const float REAL_INTERVAL = 2.0 * 1000.0 / INTERVAL_MEASURE_WIND;

const int NUMBER_OF_TICKS = 36;

const float RADIO_VANE = 0.47;

const float MEASURES_FOR_AVG = 100;

const String NEW_LINE = "\n";

// config for pins

const int PIN_RELATIVE_HUMIDITY = A13;

const int PIN_TEMPERATURE1 = A14;

const int PIN_TEMPERATURE2 = A15;

const int PIN_WIND_SPEED = 48;

const int PIN_ES = 40;

const int PIN_NE = 42;

const int PIN_NO = 44;

const int PIN_NW = 46;

const int PIN_WE = 22;

const int PIN_SW = 24;

const int PIN_SO = 26;

const int PIN_SE = 28;

// codes for directions

const int DIR_ES = 0;

83

Page 84: Prototipo Did actico de una Estaci on Meteorol ogica

6 Anexos

const int DIR_NE = 1;

const int DIR_NO = 2;

const int DIR_NW = 3;

const int DIR_WE = 4;

const int DIR_SW = 5;

const int DIR_SO = 6;

const int DIR_SE = 7;

byte MAC[] = {0x90,0xA2,0xDA,0x0E,0xAC,0x29};

//IPAddress SERVER(192, 168, 2, 113);

//IPAddress SERVER(192, 168, 2, 142);

IPAddress SERVER(192, 168, 1, 1);

//char SERVER[] = "bereland";

//char SERVER[] = "rlyeh";

const int PORT = 8080;

EthernetClient client;

// last time there was a successful send, in milliseconds

unsigned long lastSuccessfulSend = 0;

// variables for the measure

float relativeHumidity;

float temperature;

int windDirection;

float windSpeed;

void setup() {

// pin configuration

pinMode(PIN_RELATIVE_HUMIDITY, INPUT);

pinMode(PIN_TEMPERATURE1, INPUT);

pinMode(PIN_TEMPERATURE2, INPUT);

pinMode(PIN_WIND_SPEED, INPUT);

pinMode(PIN_ES, INPUT);

pinMode(PIN_NE, INPUT);

pinMode(PIN_NO, INPUT);

pinMode(PIN_NW, INPUT);

pinMode(PIN_WE, INPUT);

pinMode(PIN_SW, INPUT);

pinMode(PIN_SO, INPUT);

pinMode(PIN_SE, INPUT);

// start serial port

Serial.begin(9600);

// give the ethernet module time to boot up:

84

Page 85: Prototipo Did actico de una Estaci on Meteorol ogica

6.3 C++ Arduino

delay(1000);

if(SEND_REQUEST) {

// start the Ethernet connection

Ethernet.begin(MAC);

// print the Ethernet board/shield’s IP address:

print("Arduino ");

println(Ethernet.localIP());

println();

}

}

void loop() {

// response could return at any moment

if(PRINT_RESPONSE)

printResponse();

if(millis() - lastSuccessfulSend > INTERVAL_MEASURE) {

takeMeasure();

sendMeasure();

}

// WIND DIRECTION

detectWindDirection();

}

void takeMeasure() {

// RELATIVE HUMIDITY & TEMPERATURE

float avgRh = 0, avgT = 0;

for(int i = 0; i < MEASURES_FOR_AVG; i++) {

avgRh += analogRead(PIN_RELATIVE_HUMIDITY);

avgT += analogRead(PIN_TEMPERATURE1);

avgT += analogRead(PIN_TEMPERATURE2);

detectWindDirection();

}

relativeHumidity = (avgRh / MEASURES_FOR_AVG) * 500.0 / 3.3 / 1024;

temperature = (avgT / (2.0 * MEASURES_FOR_AVG)) * 500.0 / 1024;

// RELATIVE HUMIDITY & TEMPERATURE

//relativeHumidity = 60 + random(0, 100) / 100.0;

//temperature = 25 + random(0, 100) / 100.0;

// WIND SPEED

//measure.windSpeed = random(0, 10000) / 100.0;

int ticks = 0;

85

Page 86: Prototipo Did actico de una Estaci on Meteorol ogica

6 Anexos

boolean previousStatus = digitalRead(PIN_WIND_SPEED), currentStatus;

unsigned long start = millis();

while(millis() - start < INTERVAL_MEASURE_WIND) {

currentStatus = digitalRead(PIN_WIND_SPEED);

if(currentStatus != previousStatus) {

previousStatus = currentStatus;

ticks++;

// WIND DIRECTION

detectWindDirection();

}

}

float rps = (ticks * 4.0 / NUMBER_OF_TICKS) / REAL_INTERVAL;

//Serial.println(rps * 60);

windSpeed = 2 * 3.1416 * RADIO_VANE * rps / 0.2777;

}

void detectWindDirection() {

//windDirection = (int) random(0, 8);

if(digitalRead(PIN_ES))

windDirection = DIR_ES;

else if(digitalRead(PIN_NE))

windDirection = DIR_NE;

else if(digitalRead(PIN_NO))

windDirection = DIR_NO;

else if(digitalRead(PIN_NW))

windDirection = DIR_NW;

else if(digitalRead(PIN_WE))

windDirection = DIR_WE;

else if(digitalRead(PIN_SW))

windDirection = DIR_SW;

else if(digitalRead(PIN_SO))

windDirection = DIR_SO;

else if(digitalRead(PIN_SE))

windDirection = DIR_SE;

}

void sendMeasure() {

String request = buildRequest();

if(SEND_REQUEST) {

// if there’s a successful connection

println("connecting to server...");

if (client.connect(SERVER, PORT)) {

86

Page 87: Prototipo Did actico de una Estaci on Meteorol ogica

6.3 C++ Arduino

println("sending request");

// send the HTTP PUT request

if(PRINT_REQUEST)

println(request);

client.println(request);

// take the time of this send

lastSuccessfulSend = millis();

client.stop();

} else {

// if you couldn’t make a connection

println("connection failed, stopping");

client.stop();

}

} else {

lastSuccessfulSend = millis();

}

}

String buildRequest() {

// rouding to two decimals

relativeHumidity = floor(relativeHumidity * 100) / 100.0;

temperature = floor(temperature * 100) / 100.0;

windSpeed = floor(windSpeed * 100) / 100.0;

char relativeHumidityChar[8], temperatureChar[8], windSpeedChar[8];

dtostrf(relativeHumidity, 3, 2, relativeHumidityChar);

dtostrf(temperature, 3, 2, temperatureChar);

dtostrf(windSpeed, 3, 2, windSpeedChar);

String data = "{’measure’:{";

data += "’relativeHumidity’:" + String(relativeHumidityChar) + ",";

data += "’temperature’:" + String(temperatureChar) + ",";

data += "’windDirection’:" + String(windDirection) + ",";

data += "’windSpeed’:"+ String(windSpeedChar);

data += "}}";

if(PRINT_MEASURE)

println(data);

String req = "POST /pdem/measure/save HTTP/1.1" + NEW_LINE;

req += "Host: " + String(SERVER) + ":" + String(PORT) + NEW_LINE;

req += "User-Agent: Arduino/1.0" + NEW_LINE;

req += "Connection: close" + NEW_LINE;

req += "Content-Type: application/json;" + NEW_LINE;

req += "Content-Length: ";

87

Page 88: Prototipo Did actico de una Estaci on Meteorol ogica

6 Anexos

req += data.length();

req += NEW_LINE + NEW_LINE;

req += data;

req += NEW_LINE;

return req;

}

void printResponse() {

if(client.available()) {

println("response");

String res = "";

while(client.available())

res += (char) client.read();

print(res);

}

}

// wrappres for debug

void print(float f) { if(DEBUG) Serial.print(f); }

void print(int i) { if(DEBUG) Serial.print(i); }

void print(String s) { if(DEBUG) Serial.print(s); }

void println() { if(DEBUG) Serial.println(); }

void println(float f) { if(DEBUG) Serial.println(f); }

void println(int i) { if(DEBUG) Serial.println(i); }

void println(String s) { if(DEBUG) Serial.println(s); }

void println(IPAddress ip) { if(DEBUG) Serial.println(ip); }

88