Herramientas de usuario

Herramientas del sitio


acemu:proyectos:ema:meteorologia:estacion_fq

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Próxima revisión
Revisión previa
acemu:proyectos:ema:meteorologia:estacion_fq [2014/07/12 16:57] – creado kennethacemu:proyectos:ema:meteorologia:estacion_fq [2014/07/13 17:04] (actual) kenneth
Línea 1: Línea 1:
 ====== Prototipo de Estación Terrena: Estación AGUADA ====== ====== Prototipo de Estación Terrena: Estación AGUADA ======
  
-Para demostrar la factibilidad del proyecto, una vez que se armó el ciruito de microcnotrolador (Arduino Nano) + sensores (temperatura, presión, humedad), se decidió montar una estación terrena que recolectara los datos que emitía el microcontrolador y los publicara de alguna manera en internet.+Para demostrar la factibilidad del proyecto, una vez que se armó el ciruito de microcontrolador (Arduino Nano) + sensores (temperatura, presión, humedad), se decidió montar una estación terrena que recolectara los datos que emitía el microcontrolador y los publicara de alguna manera en internet.
  
 Para ello se colocó el microcontrolador y los sensores en un tubo de PVC tal como se ve en la siguiente foto: Para ello se colocó el microcontrolador y los sensores en un tubo de PVC tal como se ve en la siguiente foto:
  
-{{ :acemu:proyectos:ema:meteorologia:sensores_arduino_raspberry.jpg?400 |Sensores y microcrontrolador Arduino Nano, conectado via RS-232 con el servidor Raspberry Pi}}+{{ :acemu:proyectos:ema:meteorologia:sensores_arduino_raspberry_etiquetado.jpg?400 |Sensores y microcrontrolador Arduino Nano, conectado via RS-232 con el servidor Raspberry Pi}}
  
-Para protección y se lo tapó con una cobertura y tapa de PVC aislada con espuma plast y todo el conjunto se afirmó con un soporte a una rejilla exterior a a le vantana de una oficina:+Para proteger la estación se la tapó con una cobertura y tapa de PVC aislada con espuma plast y todo el conjunto se afirmó con un soporte a una rejilla exterior a la ventana de una oficina:
  
 {{ :acemu:proyectos:ema:meteorologia:estacion_aguada_3.png?400 |}} {{ :acemu:proyectos:ema:meteorologia:estacion_aguada_3.png?400 |}}
  
-La estación propiamente dicha se conectó, mediante un cable serial RS-232 al servidor de datos, en este caso una Raspberry Pi. En la siguiente foto se observa el adaptador RS-232 a USB que se empleó para que el computador pudiese leer los datos seriales+La estación propiamente dicha se conectó, mediante un cable serial RS-232 al servidor de datos, en este caso una Raspberry Pi. En la siguiente foto se observa el adaptador RS-232 a USB que se empleó para que el computador pudiese leer los datos seriales, junto a la Raspberry Pi que se empleó como servidor de datos:
  
 {{ :acemu:proyectos:ema:meteorologia:frambuesa.png?400 |servidor frambuesa.fq.edu.uy}} {{ :acemu:proyectos:ema:meteorologia:frambuesa.png?400 |servidor frambuesa.fq.edu.uy}}
  
-En una primer versión del programa de microcontrolador, éste recoge datos de temperatura, presión, humedad y punto de rocío cada 2 segundos y los publica por la interfase serial RS-232. Del lado del servidor raspberry pi, un programa escrito en python lee esos datos que llegan por el puerto USB (luego del conversor RS-232 a USB)+En una primer versión del programa de microcontrolador, éste recoge datos de temperatura, presión, humedad y punto de rocío cada 2 segundos y los envía por la interfase serial RS-232. Del lado del servidor Raspberry Pi, un programa escrito en python lee esos datos que llegan por el puerto USB (luego del conversor RS-232 a USB), donde será procesados y/o almacenados.
  
 ===== Servicio de datos meteorológicos ===== ===== Servicio de datos meteorológicos =====
  
-No alcanza con disponer de sensores y un microcontrolador que lea los datos. Tampoco alcanza con un que uncomptador lea esos datos del microcontrolador a los simples efectos de almacenarlos. La idea es disponede algún mecanismo de publicación y/o difusión de esos datos.+No alcanza con disponer de sensores y un microcontrolador que lea los datos. Tampoco alcanza con que un computador lea esos datos del microcontrolador a los simples efectos de almacenarlos. La idea es disponer de algún mecanismo de publicación y/o difusión de esos datos.
  
-Para ello se recurrió al protocolo [[wiki>mqtt|MQTT (MQ Telemetry Transport)]], en particular a la implementación de este protocolo en el paquete [[http://mosquitto.org/|mosquitto]] y su biblioteca para Python ([[http://mosquitto.org/documentation/python/|python-mosquitto]]).+Para ello se recurrió al protocolo [[wp>mqtt|MQTT (MQ Telemetry Transport)]], en particular a la implementación de este protocolo en el paquete [[http://mosquitto.org/|mosquitto]] y su biblioteca para Python ([[http://mosquitto.org/documentation/python/|python-mosquitto]]).
  
-En ese sentido se instaló en el computador raspberry pi el demonio sel servicio MQTT y empleando la bilbioteca python-mosquitto se implementó en el programa que lee los datos de la estación la posibilidad de publicar estos datos a través del servidor MQTT.+En ese sentido se instaló en el servidor Raspberry Pi el demonio del servicio MQTT y empleando la biblioteca python-mosquitto se incluyó, en el programa que lee los datos de la estaciónla posibilidad de publicar estos datos a través del servidor MQTT.
  
-El servidor MQTT brinda un servicio de publicación y suscripción, que permite a diferentes clientes en internet ya sea publicar datos bajo un cierto "tema" o suscribirse a dicho "tema" y recibir los datos que se pulbiquen allí. Eso elimina completamente la programación de un servicio cliente servidor, ya que el demonio MQTT se encarga de toda esa operación de manera transparente y sencilla.+El servidor MQTT brinda un servicio de publicación y suscripción, que permite a diferentes clientes en internet ya sea publicar datos identificados o etiquetados bajo un cierto "tema" o suscribirse a dicho "tema" y recibir los datos que se publiquen allí. Eso elimina completamente la necesidad de programar un servicio cliente/servidor, ya que el demonio MQTT se encarga de toda esa operación de manera transparente y sencilla.
  
-Es así que es posible, empleando cualquier cliente MQTT, conectarse al servidor meteorolígoco y recibir los datos que levanta la estación.+Es así que es posible, empleando cualquier cliente MQTT, conectarse al servidor meteorológico y recibir los datos que levanta la estación.
  
-Hay clientes MQTT para diferentes plataformas: Linux, Android, OS-X, etc.+Hay clientes MQTT para diferentes plataformas: Linux, Android, OS-X, etc. que son muy fáciles de instalar y emplear.
  
 ==== Ejemplo de acceso a datos meteorológicos ==== ==== Ejemplo de acceso a datos meteorológicos ====
Línea 37: Línea 37:
   mosquitto_sub -h frambuesa.fq.edu.uy -t "acemu_tiempo"   mosquitto_sub -h frambuesa.fq.edu.uy -t "acemu_tiempo"
  
-Inemdiatamente el cliente se conctará via Internet, mediante el protocolo MQTT al servidor de la estación terrena y recibirá un stream de datos similar al siquiente:+El cliente se conecta via Internet, mediante el protocolo MQTTal servidor de la estación terrena y recibe periódicamente un flujo de datos similar al siguiente:
  
 <code> <code>
 ACEMU-AGUADA,2014-7-12,20:45,18.0,1017.94,74.0,15.24 ACEMU-AGUADA,2014-7-12,20:45,18.0,1017.94,74.0,15.24
-ACEMU-AGUADA,2014-7-12,20:45,18.0,1017.95,74.0,15.24 +ACEMU-AGUADA,2014-7-12,20:46,18.1,1017.95,74.0,15.23 
-ACEMU-AGUADA,2014-7-12,20:45,18.0,1017.94,74.0,15.24 +ACEMU-AGUADA,2014-7-12,20:47,18.0,1017.94,74.0,15.24 
-ACEMU-AGUADA,2014-7-12,20:45,18.0,1017.96,74.0,15.24+ACEMU-AGUADA,2014-7-12,20:48,18.2,1017.98,73.5,15.22
 ... ...
 </code> </code>
Línea 56: Línea 56:
   * punto de rocío (°C)   * punto de rocío (°C)
  
-El formato de los registros es CSV que es un estándar, por lo que esta información es fácilmente transferible a una planilla electrónica una base de datos.+El formato de los registros es CSV ([[wp>Comma-separated_values| comma separated value]]) que es un estándar muy empleado, por lo que es cómodamente transferible a una planilla electrónicauna base de datos o alguna otra alternativa de almacenamiento o procesamiento de información.
  
-==== Publicación gráfica de datos: RRD Tools ====+==== Publicación gráfica de datos meteorológicos: RRD Tools ====
  
-Como encionábamos anteriormente, se puede emplear un cliente MQTT para recolectar estos datos y posteriormente procesarlos. Puede ser interesante recoger datos de un período extenso y publicar gráficos de los mismos.+Como mencionamos anteriormente, desde cualquier otra computadora se puede emplear un cliente MQTT para recolectar estos datos y posteriormente procesarlos. Una opción de procesamiento interesante puede ser el recoger datos correspondiente a período extenso y publicar en internet gráficos de los mismos.
  
-A continuación mostramos una posible solución "out of the box" disponible para cualquier plataforma libre: [[http://oss.oetiker.ch/rrdtool/index.en.html|RRD Tool de Tobias Oiteker]]+A continuación mostramos una posible solución //"out of the box"// disponible en cualquier plataforma libre: [[http://oss.oetiker.ch/rrdtool/index.en.html|RRD Tool de Tobias Oiteker]]
  
-Esta herramienta es muy conocida entre administradores de redes pues es el desarrollo posterior al MRTG ([[http://oss.oetiker.ch/mrtg/|Multi Router Trafic Grapher]]).+Esta herramienta es muy conocida entre administradores de redes pues es el resultado de un desarrollo posterior al MRTG ([[http://oss.oetiker.ch/mrtg/|Multi Router Traffic Grapher]]).
  
-Este paquete permite recolectar series temporales de datos y almacenarlas en una //"Round Robin Database"//. Esto no es más que una base de datos en la que se ha predefinido cuantos datos se almacenarán cuando se llena, simplemente los nuevos datos sustituyen los datos más viejos, de allí su nombre.+**Rrdtool** permite recolectar series temporales de datos y almacenarlas en una **//"Round Robin Database"//**. Esto no es más que una base de datos en la que se han predefinido cuantos datos se almacenarán de manera que cuando ésta se llena, los nuevos datos simplemente sustituyen los datos más viejos, de allí su nombre.
  
-Luego, la misma herramienta permite generar gráficos de diferentes períodos. Lo usual es generar gráficos de los datos recolectados el último día, la última semana, el último mes y el último año.+El propio **rrdtool** permite generar gráficos para diferentes períodos. Lo usual es generar gráficos de los datos recolectados el último día, la última semana, el último mes y el último año.
  
-A continuación mostramos algunos gráficos generados en un período de una semana, de temperatura, presi{on y humedad relativa ambiente:+A continuación mostramos algunos gráficos generados en un período aproximado de una semana (desde el jueves 3 de julio al viernes 11 de julio de 2014), de temperatura, presión y humedad relativa ambiente:
  
 {{ :acemu:proyectos:ema:meteorologia:temperatura.png?600 |Temperatura}}  {{ :acemu:proyectos:ema:meteorologia:temperatura.png?600 |Temperatura}} 
 {{ :acemu:proyectos:ema:meteorologia:presion.png?600 |Presión}}  {{ :acemu:proyectos:ema:meteorologia:presion.png?600 |Presión}} 
 {{ :acemu:proyectos:ema:meteorologia:humedad.png?600 |Humedad}}  {{ :acemu:proyectos:ema:meteorologia:humedad.png?600 |Humedad}} 
- 
- 
- 
- 
  
acemu/proyectos/ema/meteorologia/estacion_fq.1405209421.txt.gz · Última modificación: 2014/07/12 16:57 por kenneth