Está en la página 1de 47

ESTACIN

METEOROLGICA CON
RASPBERRY PI 2
INTRODUCCIN

La funcin de la estacin meteorolgica ser la de


medir: temperatura, humedad, presin atmosfrica,
velocidad del viento, direccin del viento, cantidad de
precipitacin y luminosidad
Componentes Electrnicos
Raspberry Pi 2
Transformador 5,5V
Conversor analgico digital MCP 3008
Sensor de presin atmosfrica VMP 180
Sensor de temperatura y humedad DHT 11
Pluvimetro (sensor de lluvia)
Anemmetro (sensor de la velocidad del viento)
Veleta (sensor de direccin del viento)
Foto resistor RDL
Plaqueta multiuso
8 interruptores magnticos
2 sensores efecto hold
Raspberry pi es una placa simple de circuito integrado con conectores
externos, desarrollado en Reino Unido por la fundacin raspberry pi, con el
objetivo de estimular la enseanza de ciencias de la computacin en las
escuelas
En el ao 2006 el Dr. Eben Upton y sus colaboradores del laboratorio de informtica de la
Universidad de Cambridge, estaban preocupados por el retroceso de los conocimientos y
habilidades de los estudiantes que entraban en informtica en comparacin con los
estudiantes de anteriores cursos, Por este motivo, el Dr. Eben Upton decidi crear un equipo
barato
El Pi nunca fue pensado como una empresa de hacer dinero, sino ms bien un trabajo de
amor. Esto llev a la 'La Fundacin Raspberry Pi' se fund en 2008, con el fin de apoyar y
desarrollar el Pi.
La Fundacin fue creada para ayudar a promover la enseanza de la informtica en el
mbito escolar y hacer divertido y accesible informtica.
Los primeros diseos del Pi se modelaron en el Atmel ATMega644 - un microcontrolador ya
existente. Los diseos originales eran poco prcticos debido a que sus componentes
cuestan demasiado y no proporcionan suficiente energa
El primer prototipo de utilizar la arquitectura ARM actual se muestra fuera en 2011, y era del
tamao de un lpiz de memoria USB estndar; con un puerto HDMI en un extremo y un
puerto USB de la otra.
Modelos de raspberry pi
Raspberry pi modelo A+
broadcom BCM2835 Almacenamiento a
SoC full HD con travs de tarjeta SD
procesador ARM
Salida de video HDMI
1176JZF-S (ARM 11
utiliza ncleo de Salida de audio
arquitectura ARMv6) conector 3,5 mm
a 700 MHz
No tiene
Basada en la conectividad a red
arquitectura
ARMv6 (32-bit) 600mA de consumo
de energa (2,5W)
GPU: Co-procesador
multimedia dual Fuente de
Core videocore IV alimentacin de 5V
va micro USB o GPIO
Memoria RAM de 250
MB SDRAM
compartido con la
GPU
1 puerto USB 2.0
Raspberry pi B
broadcom BCM2835 Salida de video HDMI
SoC full HD con vdeo
procesador ARM compuesto ( RCA)
1176JZF-S (ARM 11
Salida de audio
utiliza ncleo de
conector 3,5 mm
arquitectura ARMv6)
a 700 MHz 10/100 Ethernet
(RJ.45) via hub USB
GPU: Co-procesador
multimedia dual Core 700mA de consumo
videocore IV de energa (3,5W)
Memoria RAM 512 MB Fuente de
compartida con la alimentacin de 5V
GPU va micro USB o GPIO
2 puertos USB 2.0 20 pines GPIO
Almacenamiento a
travs de tarjeta SD
Raspberry pi modelo B+
Chipset broadcom Salida de video
BCM2835 SoC full HD HDMI
con procesador
Salida de audio
ARM 1176JZF-S (ARM
conector 3,5 mm
11 utiliza ncleo de
arquitectura ARMv6) 10/100 Ethernet
a 700 MHz (RJ.45) via hub USB
GPU: Co-procesador 600mA de consumo
multimedia dual de energa (3W)
Core videocore IV
Fuente de
Memoria RAM 512 alimentacin de 5V
GB compartida con va micro USB o
la GPU GPIO
4 puertos USB 2.0 40 pines GPIO
Almacenamiento a
travs de tarjeta
microSD
Raspberry pi 2

Chipset broadcom Salida de audio


BCM2836 procesador conector 3,5 mm
ARMv7 ARM Cortex-
10/100 Ethernet
A7 de 4 ncleos con
(RJ.45)
una frecuencia de
trabajo 900 MHz 40 pines GPIO
GPU videocore IV Consumo de energa
doble ncleo 800mA (4,0W)
memoria RAM de 1 Fuente de
GB compartido con alimentacin de 5 V
la GPU a travs de micro USB
4 puertos USB
Salida de video HDMI
Almacenamiento
microSD
Raspberry pi 3

Procesador Chipset Salida de audio


Broadcom BCM2387 de3,5 mm
de 1,2 GHz de
40 Pines GPIO
cuatro ncleos ARM
Cortex-A53 Almacenamiento
MicroSD
GPU co-procesador
Dual Core VideoCore 4 puertos USB
IV Multimedia
Consumo de energa
Memoria RAM de 1 de 800mA (4,0W)
GB
Un puerto micro USB
Ethernet 10/10 y 2,4 para la alimentacin
GHz de wi-fi
Salida de vdeo HDMI
rev 1.3 y 1.4 ,RCA
Raspberry pi zero

processador micro-USB
Broadcom
Salida de audio
BCM2835 con1Ghz
mini-HDMI
ARM 1176JZF-S
40 pines GPIO
512 MB de
memoria RAM Consumo de
LPDDR2 energa 160mA
(8W)
GPU video Core IV
doble ncleo Fuente de
alimentacin de
ranura para tarjeta
5V a travs de un
Micro-SD
micro USB
salida de vdeo
mini-HDMI a 1080p
1 conectores
Software de la raspberry pi
La placa Raspberry Pi se entrega sin ningn Sistema Operativo; ste
deberemos descargarlo e instalarlo sobre una tarjeta SD / microSD que
introduciremos en la ranura de la Raspberry Pi.
La Raspberry Pi utiliza principalmente Raspbian , una Debian -
basado Linux sistema operativo. Otros sistemas operativos de
terceros disponibles a travs de la pgina web oficial
incluyen Ubuntu MATE , Snappy Ubuntu Core , Windows 10 IO
Core , RISC OS y distribuciones especializadas para la Kodi centro
multimedia y la gestin del aula.
Diferencias entre arduino y raspberry pi
Las dos placas son muy pequeas y parecen casi idnticas: la placa de Arduino es bsicamente un
microcontrolador con el que podemos conectar nuestro ordenador directamente y programar diferentes
funciones para sus sensores. En cambio, la placa de Raspberry Pi es un microprocesador o, lo que es lo
mismo, un ordenador que dispone de 256 o 512 MB de memoria RAM.
Arduino no tiene un sistema operativo propio, en cambio Raspberry Pi viene con un sistema operativo de
Linux, el ms comn es Raspbian.
Otra de las principales diferencias entre Raspberry Pi y Arduino es que, ste ltimo no se puede
conectar a Internet necesita shield para acceso a internet Todo lo contrario que Raspberry Pi que adems de
tener una salida para Ethernet, tiene varias salidas de Usb y HDMI.
Arduino es muy prctico a la hora de aprender electrnica y es excelente para crear diferentes proyectos de
robtica porque cuenta con diferentes salidas para conectar un sinfn de sensores y actuadores de forma
clara y sencilla. Por otro lado, Raspberry Pi se utiliza, normalmente, para los curiosos de la programacin
mas que de la electrnica, si que es cierto que a travs de GPIO de Raspberry Pi se pueden conectar
diferentes componentes electrnicos o perifricos extra como puede ser la cmara de Raspberry Pi.
El arduino esta pensado para la educacin electrnica en cambio la raspberry pi para la educacin de la
informatica
La velocidad de la placa es superior en Raspberry Pi, ya que cuenta con 700MHz mientras que en Arduino
la velocidad es de 16MHz.
Conversor analgico digita MCP 3008
Antes de ponernos a explicar el resto de sensores analgicos, debemos hacer
un alto para solucionar un problema de la Raspberry Pi, se trata de la
carencia de puertos de entradas analgicas tal y como existen en otros
dispositivos
Para solucionar este problema deberemos usar un conversor analgico-digital
(ADC) que sea capaz de leer un valor de tensin analgico y convertirlo a un
valor digital
Con el fin de conectar sensores de naturaleza analgica utilizaremos el
conversor analgico-digital MCP3008, se trata de un conversor de 8 canales
con 10 bits de resolucin, su principal caracterstica es que tiene bajo coste y
es muy fcil de conectar, ya que no requiere ningn componente adicional.
Adicionalmente otra ventaja que nos supone la utilizacin de este conversor
ADC es que utiliza el bus SPI, el cual se encuentra soportado por la Raspberry
Pi, por lo que nos facilitara mucho la comunicacin entre la Raspberry Pi y el
conversor ADC.
Sensor de temperatura y humedad DTH 11
Con el fin de medir los fenmenos fsicos de temperatura y humedad se va utilizar el sensor
digital DHT22, se elige este sensor ya que es uno de los pocos que es capaz medir
temperatura y humedad. Entre las caracterstica ms importante a destacar es que la
seal de salida es digital lo que permite conectarlo a dispositivos digitales como es la
Raspberry Pi, esto es posible ya que el DHT22 dispone de un microcontrolador interno para
hacer el tratamiento de la seal.
El sensor est compuesto de un sensor capacitivo para la medicin de la humedad y de
un termistor para la medicin de la temperatura. Ambos sensores se encuentran
calibrados en laboratorio proporcionando una buena fiabilidad. Estos sensores nos
proporcionan unos rangos de medicin de 0 a 100% en medida de humedad relativa y de
-40C a 80C en medida de temperatura. En lo que se refiere a precisin es del 2% en la
medida de humedad relativa y menor a 0.5 C en medicin de la temperatura. Por
ltimo la resolucin del sensor es de 0.1% en la medida de humedad relativa y de 0.1C en
la medicin de la humedad relativa
La alimentacin de sensor admite un rango de 3,3V a 6V y un consumo de corriente de
2,5mA. En nuestro caso alimentaremos el sensor con 3,3V
El tiempo de respuesta del sensor es de 2s, con ello se indica que cada 2 segundos
podremos tener una medida de temperatura y humedad,
Pluvimetro (sensor de lluvia)
La cantidad de precipitacin se va medir mediante la utilizacin de un sensor analgico,
concretamente se trata de un sensor pasivo el cual se encuentra basado en un sensor
electromecnico.
se trata de un sensor analgico, aunque su comportamiento lo podremos caracterizar como
digital. Se trata de un sensor electromecnico basado en un embudo para dirigir la
precipitacin hacia un colector donde se recoge y puede medirse. El colector es muy similar a
una balanza con 2 cuencos, uno en cada extremo del pluvimetro, por lo que este smil de
balanza tendr dos posiciones, o con el cuenco nmero uno a la espera de agua, o con el
cuenco nmero 2 a la espera de agua, por lo que cuando el cuenco que est recibiendo el
agua se llena la balanza cambia de posicin debido al peso que ejerce el agua acumulada.
Cuando las bsculas se encuentran en esttico el sensor se comporta como un interruptor
abierto, mientras que cuando deja de estar esttico y la balanza se mueve hacia uno de los
dos lados, es en ese instante cuando el sensor se comporta como un interruptor cerrado
al comportarse en sensor como un interruptor podremos observar los pulsos cada vez que hay
una transicin de las bsculas internas del sensor, cada paso de 0 a 1 implicara que la
precipitacin es de 0,2794 mm. Por tanto si queremos saber la precipitacin solo deberemos la
cantidad pulsos que se han producido durante un da y multiplicar por el factor indicado.
Anemmetro
(sensor de la velocidad de viento)
La medicin de la velocidad del viento se va a realizar mediante la utilizacin de un
sensor analgico, concretamente se trata de un sensor pasivo el cual se encuentra
basado en un sensor de efecto Hall
El funcionamiento del sensor es muy sencillo, est basado en que cada vez que el
anemmetro de una vuelta este se comportara como un interruptor que se abre y se
cierra. Por tanto, si pensamos en un interruptor y construimos un circuito como el que
se muestra figura, podremos observar como en el voltmetro lo que veremos sern pul
Cada uno de los pulsos equivale a 2,4 Km/h, por tanto si contamos los pulsos que hay
en un segundo y lo multiplicamos por el factor que nos indica el Datasheet,
obtendremos la velocidad del viento cada vez que el interruptor se abre y se cierra.
Veleta (sensor de direccin del viento)

Ante la necesidad de conocer la direccin del viento, es necesaria la utilizacin de


una veleta. La veleta es un dispositivo giratorio que consta de una placa que gira
libremente y un sealador que indica la direccin del viento, mediante el uso de
resistencias el sensor es capaz de indicarnos con qu punto cardinal coincide con la
direccin de la que viene el viento
Tal y como se ha comentado la estructura interna del sensor est formada por unas
resistencias las cuales nos indican la direccin del viento, pero tambin hemos de
tener en cuenta una muesca que encontramos en el exterior del sensor la cual tiene
que apuntar hacia el norte, con el fin de que el sensor tenga una referencia correcta.
Sensor de luminosidad LDR

Con el fin de medir la luminosidad de manera cualitativa se va a utilizar un LDR, sus siglas
vienen de Light Dependent Resistor. Los LDR tienen una resistencia muy elevada, la cual
disminuye al ser expuesta a la luz. Este dispositivo se encuentra fabricado a base de sulfuro
de cadmio, material que contiene pocos o ningn electrones libres, si se mantiene en
completa oscuridad, por lo que su resistencia es elevada. Al absorber luz, se liberan un
cierto nmero de electrones por lo que hace aumentar la conductividad del material,
cuando cesa la iluminacin los electrones son recapturado
El LDR que vamos a utilizar es el GL7516 del fabricante ARISTON, el cual en su hoja de
caractersticas nos indica que tiene resistencia con total oscuridad (Dark Resistance) de 0,5
M, mientras que en el caso opuesto con la mxima luminosidad, su resistencia (Light
Resistance) es de 4 a 10 K. El rango de temperatura de funcionamiento va de los -30C a
los +70C, s a sus posiciones originales
Al tratarse de un sensor analgico el cual vara su resistencia dependiendo de la
luminosidad y por tanto hace variar la tensin en sus extremos, con el fin de obtener estas
variaciones a travs de la Raspberry Pi, deberemos utilizar un conversor analgico digital,
ya que la Raspberry Pi no dispone de puertos analgicos.
Diseo del software para la adquisicin de datos
Software adquisicin datos termmetro e higrmetro

La adquisicin de datos de temperatura y humedad relativa se realiza mediante el


sensor DHT22 el cual est conectado al puerto GPIO 4 de la Raspberry Pi. La
comunicacin entre la Raspberry Pi y este sensor se simplifica mucho mediante la
utilizacin de la librera Adafruit, la cual ya tiene las especificaciones para realizar la
comunicacin, por lo que primero instalaremos la librera Adafruit en la Raspberry y
luego proseguiremos con la lectura de datos de temperatura y humedad relativa.
Software adquisicin de presin atmosfrica

La adquisicin de datos de presin atmosfrica se est realizando a travs del sensor BMP180,
este sensor utiliza el bus I2C para la comunicacin con la Raspberry Pi. Pero igual que en el
caso del sensor de temperatura del anterior apartado, la utilizacin de una librera facilita mucho
la obtencin de datos, por tanto lo primero que realizaremos ser describir los pasos que se
tienen que seguir para la instalacin de la librera y luego realizaremos la funcin la cual nos
proporcionara los datos necesarios
Software adquisicin datos Anemmetro
Los datos de velocidad del viento se van adquirir con un anemmetro el cual es analgico
en esencia, ya que este genera un pulso cada 2,4 km/h, por tanto la adquisicin de datos
de velocidad del viento consistir en contar el nmero de pulsos que crea el anemmetro
en un segundo. Para ello en el momento de la lectura deberemos estar pendiente del
puerto de la Raspberry Pi, tomando nota de los estados lgicos que toma la entrada.

Al tratarse de un contador de pulsos y teniendo en cuenta que la Raspberry Pi no


dispone de interrupciones, la funcin que se va realizar ser aquella que mire el
estado del puerto GPIO 26, puerto donde se ha conectado el anemmetro. El cdigo
en s, consistir en detectar que hay un pase de 0 a 1, es en ese instante cuando el
sistema tiene que aumentar el contador en una unidad, todo este proceso se har
durante el tiempo que fijemos, mediante una variable la cual recibir el nombre de
muestras.
Software adquisicin datos Pluvimetro

La adquisicin de datos de precipitacin se realizara mediante la utilizacin de


interrupciones, esto es debido a que estamos trabajando con un sensor analgico el cual
cada vez que capta 0,2794 mm de precipitacin enva un pulso al puerto GPIO. Por lo que
deberemos contar cada uno de estos pulsos, con el fin de conocer la precipitacin cada.
El uso de las interrupciones facilita mucho la tarea de detectar cambios de estado en el
puerto GPIO, ya que de esta manera, cada vez que la Raspberry detecte automticamente
un cambio de estado en el puerto, interrumpir la ejecucin del cdigo para saltar hacia una
funcin que hayamos predeterminado.
La funcin que deberemos construir es un contador de pulsos el cual cuente el nmero de
pulsos que entrega el sensor al puerto GPIO de la Raspberry. Por lo que configuraremos la
interrupcin y cada vez que se produzca deber incrementar en una unidad el contador. La
cantidad de precipitacin ser el producto entre el nmero de pulsos por el factor 0,2794.
Software de adquisicin de datos del
conversor analgico digital MCP3008

En el anterior capitulo se coment que debido al uso de sensores analgicos se


deba utilizar un conversor analgico digital concretamente el MCP3008, es por
ello que en este apartado nos vamos a dedicar a configurar e instalar las partes
necesarias para obtener los datos del conversor analgico digital.
El MCP3008 se comunica con las Raspberry Pi a travs del bus de
comunicaciones SPI, por tanto en una primera parte deberemos habilitar y
configurar el bus SPI. En una segunda parte, instalaremos una librera en la
Raspberry Pi, la cual facilitara la adquisicin de datos.
Software de adquisicin de datos de la veleta

En los captulos anteriores, hemos visto que la veleta es un sensor analgico el cual
varia su resistencia provocando que la tensin en los extremos de la veleta vare, la
direccin la sabremos mediante la tabla que se ha creado en el captulo anterior. Por
lo tanto, cada que queramos conocer la direccin del viento deberemos obtener los
datos del conversor analgico-digital, concretamente deberemos adquirir los datos
por el canal 1 del MCP3008.
La funcin que debemos crear es aquella que obtenga el valor de tensin del
conversor analgico-digital y la compare con los valores de la tabla del captulo
anterior, con ello obtendremos la direccin del viento, para iniciar la creacin de la
funcin lo primero que vamos hacer es realizar un diagrama de bloques el cual nos
ayudara a crear luego la funcin en Python.
Software de adquisicin de datos de luminosidad

El sensor que se est utilizando para adquirir datos de luminosidad es un LDR, si


recordamos del anterior capitulo el LDR varia su resistencia dependiendo de la
luminosidad que capte por su superficie. Esta

variacin de resistencia implicara una variacin proporcional de tensin la cual


mediremos mediante la utilizacin del conversor analgico-digital.
La funcin que debemos crear es aquella que lee el valor de tensin mediante la
utilizacin de la librera del conversor analgico-digital, una vez se ha ledo el valor
de la tensin debemos asignarla en uno de los rangos de luminosidad que se han
definido: ALTA, MEDIA y BAJA. En la siguiente figura se puede observar el
diagrama de bloques de la funcin.
Software de adquisicin de datos global

Una vez ya tenemos todas las funciones creadas de cada uno de los diferentes sensores, es
el momento de crear una funcin la cual debe agrupar a todas las funciones de los diferentes
sensores, por lo que deber darnos datos temperatura, humedad, presin atmosfrica,
velocidad del viento, cantidad de precipitacin, direccin del viento y luminosidad.

A continuacin vamos a realizar un diagrama de bloques con el fin de que ayude a creacin
del cdigo Python, si se observa el diagrama de bloques se podr observar cmo se hace
una llamada a cada una de las funciones creadas en los apartados anteriores, hemos de
tener en cuenta una excepcin, es el caso del pluvimetro el cual est en constante ejecucin
ya que est funcionando a travs de interrupciones y por lo tanto deberemos configurar la
interrupcin en la funcin principal con el fin de un correcto funcionamiento.

También podría gustarte