Você está na página 1de 107

UNIVERSIDAD MIGUEL HERNNDEZ DE ELCHE

ESCUELA POLITCNICA SUPERIOR DE ORIHUELA


INGENIERO TCNICO EN INFORMTICA DE GESTIN

DESARROLLO E IMPLEMENTACIN DE
UNA ESTACIN METEOROLGICA
MEDIANTE LA PLATAFORMA
HARDWARE/SOFTWARE LIBRE
RASPBERRY PI
PROYECTO FIN DE CARRERA
Septiembre 2015

AUTOR: Alejandro Glvez Morgado


DIRECTOR/ES: M Carmen Perea Marco
Fulgencio Bermejo Navarro

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

RESUMEN
Este proyecto fin de carrera que se presenta, tiene como objetivo el desarrollo de un
sistema de monitoreo en tiempo real de temperatura y humedad del lugar donde se
encuentre dicha estacin, como por ejemplo: unas cmaras frigorficas, un
invernadero, un centro de datos, un campo de cultivo o una huerta con la
posibilidad de poder acceder a esos datos desde cualquier parte del mundo donde
se tenga conexin a internet con el mnimo presupuesto posible y utilizando
tecnologas open source.
El principal objetivo del proyecto es permitir el guardado y la gestin de los datos
(humedad y temperatura) recogidos por los sensores as como mostrar los
resultados en diferentes grficas para de este modo tener un seguimiento exhaustivo
de las variaciones climticas del entorno monitoreado. Adems, se har especial
hincapi en la facilidad de uso de la herramienta, hacindola accesible a usuarios sin
conocimientos tcnicos.
Con el fin de alcanzar dicho objetivo, se analizarn y evaluarn una serie de placas y
sensores entre los cuales elegiremos los ms ptimos para nuestro proyecto.
En el presente proyecto nos introduciremos en el actual y de gran futuro, mundo de
las placas de bajo coste que actan como mini-ordenadores, en nuestro caso
concreto sobre RaspBerry Pi. Describiremos sus diferentes modelos y usos actuales.
A nivel de implementacin realizaremos la instalacin y configuracin del sistema
operativo, sensores, drivers de sensores, servidor web, base de datos, acceso
inalmbrico mediante un adaptador WiFi usb, instalacin y configuracin del CMS
WordPress para la presentacin de los datos en forma de grficas.
Por ltimo, destacar que las herramientas y tecnologas utilizadas durante el
desarrollo son gratuitas y de cdigo libre, con lo que no requieren el pago de
licencias, abaratando as el coste del proyecto.

ii

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

AGRADECIMIENTOS
Primero agradecer a mi familia todo el apoyo y comprensin que me han dado a lo
largo de esta carrera y por haberme dado la oportunidad de tener unos estudios. Sin
ellos no podra ver terminado este proyecto. Gracias por creer en m cuando en
algunas ocasiones ni si quiera yo crea en m mismo.
Tambin me gustara agradecer a Daniel, Sergio, Alfredo, Jos Manuel, Elisabet y
Manolo el haberme metido caa, animado y apoyado en todo momento en la
finalizacin de la carrera. No me puedo olvidar de Jordi, Guirao, Julio, Canario,
Claudio, Javi, Sandra, Marietta, Po, Hurtado, Alfredo, Amancio, Ana, Cristina, Jos,
Lufi, Rubn... y dems compaeros de clase que me han soportado durante todos
los aos de la carrera.

iii

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

INDICE

1. INTRODUCCION......................................................................................................3
1.1. Introduccin e importancia.................................................................................3
1.2. Conceptos iniciales.............................................................................................4
1.2.1. Qu es RaspBerry Pi?...................................................................................4
1.2.2. Hardware RaspBerry Pi...................................................................................5
1.2.3. Software RaspBerry PI....................................................................................9
1.3. Sensor de humedad y Temperatura.................................................................16
2. ANTECEDENTES, ESTADO DE LA CUESTION....................................................24
2.1 Conocimientos adquiridos previos PFC............................................................24
2.2 Antecedentes. Single Board Computers SBC...................................................25
2.2.1 Arduino............................................................................................................26
2.2.2 Cubieboard.....................................................................................................27
2.2.3 BeagleBone Black..........................................................................................29
2.3 Conocimientos adquiridos de la investigacin bibliogrfica..............................31
2.4 Problemas existentes........................................................................................31
2.5 Anlisis posibilidades uso de la RaspBerry Pi..................................................32
3. OBJETIVOS DEL TRABAJO/PROYECTO.............................................................36
4. HIPOTESIS DE TRABAJO......................................................................................40
5. METODOLOGIA Y RESULTADOS.........................................................................44
iv

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

5.1 Introduccin.......................................................................................................44
5.2 Planificacin.......................................................................................................45
5.3 Diagramas UML.................................................................................................47
5.3.1 Diagrama de casos de uso.............................................................................47
5.4 Implementacin.................................................................................................52
Configuracin de Raspbian.....................................................................................57
Configuracin de nuestra red WiFi..........................................................................69
Instalacin Servidor web.........................................................................................80
Instalacin del sensor de humedad y temperatura DHT22.....................................90
Instalacin del CMS WordPress..............................................................................97
6. CONCLUSIONES Y PROPUESTAS.....................................................................104
7. BIBLIOGRAFIA.....................................................................................................108
8. ANEXOS................................................................................................................112
8.1 Aplicacin Mvil...............................................................................................112

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

INDICE DE FIGURAS
Ilustracin 1 RaspBerry Pi Modelo B............................................................................5
Ilustracin 2 Nmero de pines segn el modelo de RaspBerry Pi...............................8
Ilustracin 3 Menu de instalacin de NOOBS...............................................................9
Ilustracin 4 Men instalacin de BerryBoot...............................................................10
Ilustracin 5 Escritorio Raspbian.................................................................................11
Ilustracin 6 Logo de Pidora........................................................................................11
Ilustracin 7 Acceso SSH de Moebius........................................................................11
Ilustracin 8 Escritorio de Arch Linux..........................................................................12
Ilustracin 9 Logotipo de arkOS..................................................................................12
Ilustracin 10 Entorno grfico de OpenELEC.............................................................13
Ilustracin 11 PiMAME, distribucin orientada a juegos retro....................................13
Ilustracin 12 Entorno grfico de xBian......................................................................14
Ilustracin 13 Entorno grfico de RaspBMC...............................................................14
Ilustracin 14 Risc OS.................................................................................................14
Ilustracin 15 Sensor DHT11

Ilustracin 16 Sensor DHT22.............................16

Ilustracin 17 Comunicacin con el sensor................................................................18


Ilustracin 18 Transmisin de la informacin..............................................................19
Ilustracin 19 Placa Arduino Uno................................................................................27
Ilustracin 20 Placa Cubieboard.................................................................................28
Ilustracin 21 BeagleBone Black................................................................................30
Ilustracin 22 Diagrama de Gantt inicial.....................................................................45
vi

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

Ilustracin 23 Diagrama de Gantt real........................................................................45


Ilustracin 24 Diagrama de Casos de Uso.................................................................47
Ilustracin 25 Pgina oficial de RaspBian...................................................................52
Ilustracin 26 Pgina de descarga de Win32 Disk Imager.........................................53
Ilustracin 27 Proceso de instalacin de Win32DiskImager.......................................54
Ilustracin 28 Raspbian arrancando por primera vez.................................................56
Ilustracin 29 Adaptador WiFi.....................................................................................69
Ilustracin 30 Terminal de Raspbian...........................................................................71
Ilustracin 31 Acceso SSH mediante PuTTY..............................................................74
Ilustracin 32 Men del Router NetGear....................................................................76
Ilustracin 33 Entorno de configuracin PuTTY.........................................................78
Ilustracin 34 Configuracin usuario root de MySQL.................................................83
Ilustracin 35 Instalacin de MySQL...........................................................................85
Ilustracin 36 Pgina de acceso a PhpMyAdmin........................................................88
Ilustracin 37 Men general de PhpMyAdmin............................................................89
Ilustracin 38 Esquema del circuito del sensor...........................................................90

vii

CAPTULO 1
INTRODUCCIN

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

1. INTRODUCCION
1.1. Introduccin e importancia.
El proyecto fin de carrera es una tarea obligatoria para todo aquel alumno que desee
obtener el ttulo de ingeniero tcnico. Pretende enfrentar al alumno a una actividad
de complejidad superior a la habitualmente realizada en laboratorios y prcticas de
la carrera, obligndole a un estudio bibliogrfico, a la obtencin de unos resultados y
a una evaluacin cuantitativa de su esfuerzo.
Conlleva un enorme esfuerzo y dedicacin, ya que se tiene que recoger una gran
cantidad de informacin y con ella desarrollar la aplicacin. Hay que tener en cuenta
siempre lo aprendido durante la carrera, ya que servir de gran ayuda para la
consecucin de los objetivos del proyecto. Adems, se debe de investigar para
mejorar siempre los conocimientos obtenidos.
Como se introduca en el resumen, la idea de partida para el desarrollo del proyecto
se basa en el diseo de una plataforma de control y monitoreo de la temperatura y
humedad por medio de una aplicacin web. La intencin desde un principio era
llegar a montar nuestra propia estacin meteorolgica, a travs de la cual
pudisemos llegar a llevar un control a distancia de la humedad y temperatura de
una zona dada y, dependiendo del caso, predecir cambios climticos que se
pudieran dar.

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

1.2. Conceptos iniciales


1.2.1. Qu es RaspBerry Pi?
Raspberry Pi es una placa de computacin (SBC) de bajo coste desarrollada en
Reino Unido por la Fundacin Raspberry Pi, con el objetivo de estimular la
enseanza de ciencias de la computacin en las escuelas.
En realidad, se trata de una diminuta placa base de 85 x 54 milmetros (del tamao
aproximado de una tarjeta de crdito) en el que se aloja un chip Broadcom
BCM2835 con procesador ARM hasta a 1 GHz de velocidad (modo Turbo haciendo
overclock), GPU VideoCore IV y 512 Mbytes de memoria RAM (Las primeras placas
contaban con slo 256MB de RAM).
Raspberry Pi utiliza tarjetas de memoria SD o microSD como medio de
almacenamiento necesario para su funcionamiento. Adems es necesario conectarlo
a la corriente utilizando cualquier cargador microUSB de al menos 1000mah para las
placas antiguas y de al menos 2000mah para las modernas, y si lo deseamos,
guardarlo todo utilizando una carcasa para que todo quede a buen recaudo y su
apariencia sea ms esttica.
En funcin del modelo que escojamos, dispondremos de ms o menos opciones de
conexin, aunque siempre dispondremos de al menos un puerto de salida de video
HDMI y otro de tipo RCA, minijack de audio y un puerto USB 2.0 (modelos A y A+, B
dispone de dos USB y B+ y Raspberry Pi 2 disponen de 4 USB) al que conectar un
teclado y ratn.

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

En cuanto a la conexin de red, disponemos de un puerto Ethernet (los modelos A y


A+ no disponen de puerto Ethernet) para enchufar un cable RJ-45 directamente al
router o podemos recurrir a utilizar cualquier adaptador inalmbrico WiFi compatible.
En este caso, eso s, conviene que nos decantemos por la Raspberry Pi que
incorpora dos puertos USB, ya que de lo contrario, no podremos conectar el teclado
y el ratn.

Ilustracin 1 RaspBerry Pi Modelo B

1.2.2. Hardware RaspBerry Pi.


Con unas dimensiones de placa de 8.5 por 5.3 cm, en el modelo B nos encontramos
con unas caractersticas muy interesantes. En su corazn nos encontramos con un
chip integrado Broadcom BCM2835, que contiene un procesador ARM11 con varias
frecuencias de funcionamiento y la posibilidad de subirla (haciendo overclocking)
hasta 1 GHz sin perder la garanta, un procesador grfico VideoCore IV, y 512MB de
memoria RAM. La ltima Raspberry Pi 2 cuenta con 1GB de memoria RAM. Todo
ello equivale en la prctica a un ordenador con unas capacidades grficas similares
a la XBOX de Microsoft y con la posibilidad de reproducir vdeo en 1080p.
En la placa nos encontramos adems con una salida de vdeo y audio a travs de un
conector HDMI, con lo que conseguiremos conectar la tarjeta tanto a televisores
como a monitores que cuenten con dicha conexin. En cuanto a vdeo se refiere,
4

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

tambin cuenta con una salida de vdeo compuesto y una salida de audio a travs
de un minijack. Posee una conexin ethernet 10/100 y, si bien es cierto que podra
echarse en falta una conexin Wi-Fi, gracias a los dos puertos USB incluidos
podremos suplir dicha carencia con un adaptador WIFI si lo necesitamos.
Los puertos tienen una limitacin de corriente, por lo que si queremos conectar
discos duros u otro dispositivos habr que hacerlo a travs de un hub USB con
alimentacin. En su parte inferior cuenta con un lector de tarjetas SD (microSD para
los modelos A+, B+ y Pi 2), lo que abarata enormemente su precio y da la posibilidad
de instalar un sistema operativo en una tarjeta de memoria de 4 GB o ms (clase 4 o
clase 10). De esta forma tenemos tambin la posibilidad de minimizar el espacio que
necesitamos para tener todo un ordenador en un volumen mnimo.

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

Precio *
SoC
Fabricante
CPU
Instrucciones
Cores
Velocidad **
RAM
Almacenamiento
GPU

Conexiones

Raspberry Pi
Compute Module

Raspberry Pi
Model A+

$25 USD
BCM2835
Broadcom
ARM1176JZF-S
ARMv6
Single-core
700MHz
512MB
4GB eMMC flash
internos
250MHz Broadcom
VideoCore IV

$20 USD
BCM2835
Broadcom
ARM1176JZF-S
ARMv6
Single-core
700MHz
256MB
MicroSD slot

Raspberry Pi 2
Model B

$25 USD
BCM2835
Broadcom
ARM1176JZF-S
ARMv6
Single-core
700MHz
512MB
MicroSD slot

$35 USD
BCM2836
Broadcom
ARM Cortex-A7
ARMv7
Quad-core
900MHz
1GB (1024MB)
MicroSD slot

250MHz
Broadcom
VideoCore IV
HDMI

250MHz
Broadcom
VideoCore IV
HDMI

4x USB2 ports

4x USB2 ports

40 GPIO pins

10/100 Ethernet

10/100 Ethernet

MIPI camera
connector

40 GPIO pins

40 GPIO pins

MIPI camera
connector

MIPI camera
connector

MIPI display DSI

MIPI display DSI


Vdeo compuesto
(PAL y NTSC) va
3.5 mm TRRS jack
compartido con
audio estreo
Largo: 8.6cm

250MHz
Broadcom
VideoCore IV
200-pin tipo DDR2 HDMI
SO-DIMM
1x USB2 port

MIPI display DSI


Vdeo compuesto
(PAL y NTSC) va
3.5 mm TRRS jack
compartido con
audio estreo

Alimentacin

Raspberry Pi
Model B+

2015

Largo: 6.8cm

Largo: 6.5cm

Vdeo compuesto
(PAL y NTSC) va
3.5 mm TRRS jack
compartido con
audio estreo
Largo: 8.6cm

Ancho: 3cm

Ancho: 5.7cm

Ancho: 5.7cm

Ancho: 5.7cm

Peso: 7g

Peso: 23g

Peso: 45g

Peso: 45g

5 V a 2A micro USB 5 V a 2A micro


5 V a 2A micro
USB
USB
Tabla 1 Comparativa de modelos RaspBerry Pi

5 V a 2A micro
USB

* Precio oficial antes de impuestos ** Velocidad oficial sin overclocking

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

GPIO (General Purpose Input/Output)


Uno de los atractivos que tiene la Raspberry Pi es el bus de expansin GPIO, 26
pines para los modelos A y B y 40 pines para el resto de modelos.
El puerto GPIO (General Purpose Input/Output) permite a la Raspberry Pi
comunicarse con el exterior tanto para activar elementos como para leer el estado
de los mismos. La tensin de trabajo del puerto es de 3,3v para un uno y 0v para un
0. Adems, la corriente mxima que puede suministrar es de 16 mA.
Hay que tener bastante cuidado al trabajar y manipular los pines GPIO. Los chips y
circuitos de nuestra Raspberry Pi funcionan con 3.3 voltios. Si conectamos un
sensor que envie seal a 5V a travs de los GPIO es probable que despus nuestra
Raspberry Pi slo sirva como pisapapeles.
Todos los pines GPIO se pueden gestionar directamente a travs de cdigo, ya sea
para poner un valor o leer un valor de un elemento externo.
Adems, se pueden configurar interfaces complejos de entrada/salida por lo que
algunos pines pasan a ser gestionados directamente por el chip del procesador
Pines GPIO de los distintos modelos:

Ilustracin 2 Nmero de pines segn el modelo de RaspBerry Pi

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

1.2.3. Software 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. Tenemos dos opciones, la primera es descargarnos
desde la pgina oficial, de la Fundacin Raspberry Pi, todo el software necesario
para la instalacin en la tarjeta, o bien recurrir a algn programa que haga esto por
nosotros.
Entre estos programas encontramos BerryBoot, un programa que se encarga de
todo el trabajo de instalacin del software desde la propia Raspberry Pi. Una vez
copiados los archivos a la tarjeta SD / microSD, la introducimos en nuestra
Raspberry Pi y BerryBoot te permitir elegir el Sistema Operativo descargndolo
desde internet.
Otra opcin tambin muy interesante es Noobs, una aplicacin que facilita la
instalacin de diversas distribuciones Linux. Noobs hace innecesario el acceso a
Internet durante la instalacin en su versin Full. Tan slo tendremos que descargar
Noobs y descomprimirlo en una tarjeta SD / MicroSD de al menos 4GB de
capacidad. Al hacerlo se nos dar la opcin de instalar soluciones como Raspbian,
Arch Linux, RaspBMC, Pidora u OpenELEC sin problemas.

NOOBS es un acrnimo de New Out Of


Box Software y bsicamente consiste en el
instalador que podis ver en la imagen ms
abajo. El software se instala en cualquier
tarjeta SD / microSD con un mnimo de 4
GB de espacio y no necesita conexin a
Internet para ser utilizado. La eleccin que
se haga se instalar automticamente en el
espacio libre de la tarjeta y ya solo es
cuestin de reiniciar y usar.

Ilustracin 3 Menu de instalacin de NOOBS

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

Como podis observar en la imagen, se puede elegir entre varios Sistemas


Operativos tales como Debian, Arch Linux, Fedora (Pidora) y un par de versiones del
centro multimedia XBMC. Pero eso no es todo. NOOBS incluye tambin un mtodo
de edicin rpida de la configuracin del nuevo sistema, un navegador web
preinstalado (Arora) para consultar en el momento cualquier informacin en lnea y,
atencin porque esto es lo ms interesante, un modo de recuperacin por lnea de
comandos a partir de una particin de rescate que se crea automticamente.

BerryBoot es un gestor de arranque


Open Source desarrollado en Qt que
permite ser instalado adems de en la
Raspberry

Pi

en

otras

tarjetas

de

desarrollo embebido basadas en micros


ARM como la Cubieboard. BerryBoot
permite

instalar

Sistemas

Operativos

tanto en la tarjeta SD / microSD como en


una unidad externa (USB o disco duro).
Adems de los Sistemas Operativos que

Ilustracin 4 Men instalacin de BerryBoot

incluye por defecto, ofrece la posibilidad de instalar cualquier otra distribucin,


permite la instalacin remota mediante un cliente VNC. Slo hay que aadir una
nueva lnea en el fichero cmdline.txt indicando la IP local para nuestra Raspberry Pi,
mscara de red y puerta de enlace. Si tu televisin dispone del protocolo CEC
puedes utilizar el mando a distancia para moverte por los mens de la instalacin.
Adems BerryBoot tambin permite clonar particiones y realizar copias de seguridad
de los sistemas instalados.

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

Sistemas Operativos
Raspbian es, quizs, la distribucin Linux
ms conocida para Raspberry Pi; un
Sistema Operativo basado en Debian que
nos ofrece un entorno tanto en modo
consola como en escritorio con el que
podremos programar o jugar. A travs de
la Pi Store, la tienda de aplicaciones de
Raspberry Pi, podremos acceder a

Ilustracin 5 Escritorio Raspbian

mltiples aplicaciones tanto gratuitas como


de pago y, por ejemplo, podremos instalar LibreOffice.
Pidora se trata de una versin de Fedora para microprocesadores ARM. As que
puede ser una buena alternativa a la anterior, aunque no cuenta con tanto apoyo.

Moebius es otra distribucin de propsito general que podemos encontrar para


Raspberry

Pi.

extremadamente

Se

caracteriza

ligera,

lo

cual

por

ser

es

de

agradecer, y tambin por otro detalle curioso:


tiene el servicio SSH activado por defecto.

Ilustracin 6 Acceso SSH de Moebius

Arch Linux ARM es una conocida


distribucin Linux que tambin puede
instalarse bajo plataformas ARM. Cuenta
con mucho apoyo, aunque no est tan
optimizada para el hardware de la
Raspberry Pi. Es ideal si en tu equipo
porttil o de sobremesa ya trabajas con

Ilustracin 7 Escritorio de Arch Linux

10

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

Arch. Se apoya sobre el gestor de paquetes Pacman (creado por Judd Vinet para
gestionar los paquetes binarios) y su sistema de actualizacin es Rolling Release
Model (con actualizaciones peridicas, en vez de cambios bruscos).

arkOS es una distribucin que ha nacido


gracias al crowdfunding con el objetivo
de ofrecernos todas las herramientas
necesarias para desplegar un servidor
privado para nuestros archivos. Con
arkOS solamente necesitaremos una
Raspberry

Pi,

una

unidad

de

almacenamiento USB (un disco duro

Ilustracin 8 Logotipo de arkOS

externo, por ejemplo) y, por supuesto, una tarjeta SD con la distribucin. Este
proyecto acaba de arrancar y, por ahora, Genesis (que es el nombre de su primera
versin) nos ofrece un servidor de base de datos MariaDB, un gestor de descargas
de torrents, un firewall y una utilidad para crear un almacenamiento en red basado
en SAMBA pero, con el tiempo, aspiran a integrar Tor, Dispora e, incluso,
calendarios compartidos.

OpenELEC

(Open

Entertainment

Embedded

Center)

es

Linux
una

distribucin muy ligera con la que


podremos implementar un media center
sobre nuestra Raspberry Pi. Teniendo
en cuenta que Raspberry Pi posee una
salida HDMI, la idea es conectarla a
nuestro

televisor

para

usarla

como

Ilustracin 9 Entorno grfico de OpenELEC

reproductor multimedia de bajo coste con una distribucin especialmente optimizada


para este tipo de tareas y con un interfaz orientado tambin a hacernos sencillo su
manejo.
11

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

PiMAME

es

una

distribucin

2015

que

transformar nuestra Raspberry Pi en


una mquina arcade; concretamente,
esta

distribucin

nos

ofrece

emuladores como MAME y algunos


otros emuladores de consolas clsicas

Ilustracin 10 PiMAME, distribucin

como Neo Geo, PlayStation, Super NES

orientada a juegos retro.

o Atari 2600. La distribucin se apoya en Raspbian pero, cara al usuario, pone las
cosas muy sencillas e implementa un servidor FTP para que nos sea fcil llevar las
ROMs de los juegos a la tarjeta SD del computador. Por cierto, un detalle interesante
es que soporta el gamepad de la consola Xbox 360 (que es USB).

XBian es, al igual que OpenELEC, una


distribucin orientada a media center
que

nos

permite

conectar

nuestra

Raspberry Pi a la televisin y disfrutar


de series y pelculas. XBian se apoya
sobre

XBMC

para

desarrollar

una

distribucin especialmente optimizada


para las funcionalidades de media

Ilustracin 11 Entorno grfico de xBian

center y de la que se han eliminado cosas

superfluas o que no se van a usar en este tipo de escenario.

RaspBMC es una distribucin que se


apoya en dos pilares bsicos, Debian y
XBMC. Asi podrs tener un Media
Center en tu TV o transformar tu tele en

12
Ilustracin 12 Entorno grfico de RaspBMC

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

una flamante smartTV con acceso a contenidos multimedia, juegos, aplicaciones e


Internet.

Risc OS, menos recomendable que el


resto. Este sistema fue creado por
Acorn Computer, la misma compaa
que desarroll los ARM. Por eso est
especialmente creado y optimizado para
esta arquitectura. Es bastante rpido,
pero por el contrario no cuenta con tanto
Ilustracin 13 Risc OS.

software y apoyo.

Esta es una lista no oficial de Sistemas Operativos que funcionan, se han portado, o
estn en proceso de ser portados a Raspberry Pi:
-

AROS
Android
Arch Linux ARM
Debian Whezzy Soft-Float, versin de Debian sin soporte para coma flotante
por hardware
Firefox OS
Gentoo Linux
Google Chromium OS
Open webOS
PiBang Linux , distribucin Linux derivada de Raspbian con diferente
escritorio y aplicaciones
Pidora, versin Fedora Remix optimizada
QtonPi, distribucin linux con un framework de aplicaciones multiplataforma
basado en Qt framework
Raspbian, versin de Debian Wheezy para ARMv6 con soporte para coma
flotante por hardware
Slackware ARM, tambin conocida como ARMedslack
Plan 9 from Bell Labs
RISC OS 5
FreeBSD
NetBSD
13

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi
-

2015

Moebius, distribucin ligera ARM HF basada en Debian que usa el repositorio


de Raspbian y que cabe en una tarjeta SD de 1GB, usa pocos servicios y est
optimizada para usar poca memoria
Squeezed Arm Puppy, una versin de Puppy Linux (Puppi) para ARMv6
(sap6) especficamente para Raspberry Pi
Instant WebKiosk, sistema operativo con solo un navegador
IPFire
OpenELEC
Raspbmc
Xbian
Windows 10
Snappy Ubuntu Core

1.3. Sensor de humedad y Temperatura.


Vamos a centrarnos en los sensores DHT11 o DHT22. Elegimos ste modelo porque
con un nico sensor podemos medir temperatura y humedad.
Una particularidad de estos sensores es que la seal de salida es digital, por lo
tanto, lo tendremos que conectar a pines digitales.
Llevan un pequeo microcontrolador interno para hacer el tratamiento de seal.
Los DHT11 y DHT22 se componen de un sensor capacitivo para medir la humedad y
de un termistor.
La principal diferencia entre ambos es que el ciclo de operacin es menor en el
DHT11 que en el DHT22, sin embargo, el DHT22 tiene rangos de medida ms
amplios y mayor resolucin, a cambio de resultar algo ms caro.
Ambos sensores estn calibrados en laboratorio y tienen una buena fiabilidad.

14

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

Ilustracin 14 Sensor DHT11

2015

Ilustracin 15 Sensor DHT22

Caractersticas de cada uno de los sensores:


Parmetro

DHT11

DHT22

Alimentacin

3Vdc Vcc 5Vdc

3.3Vdc Vcc 6Vdc

Seal de Salida

Digital

Digital

Rango de medida
Temperatura

De 0 a 50 C

De -40C a 80 C

Precisin Temperatura

2 C

<0.5 C

Resolucin Temperatura

0.1C

0.1C

Rango de medida Humedad De 20% a 90% RH

De 0 a 100% RH

Precisin Humedad

4% RH

2% RH

Resolucin Humedad

1%RH

0.1%RH

Tiempo de respuesta

1s

2s

Tamao

12 x 15.5 x 5.5mm

14 x 18 x 5.5mm

Tabla 2 Comparativa Sensores DHT11 DHT22

En nuestro caso utilizaremos el sensor AM2302 (DHT22) por su mayor precisin y


mayor rango de medidas de humedad y temperatura, a parte que me permite utilizar
decimales.
Formato de datos de un solo bus para la comunicacin y sincronizacin entre MCU y
el sensor. El proceso de comunicacin es de 4 ms aproximadamente.
15

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

Ilustracin 16 Comunicacin con el sensor

Una transmisin de datos completa es de 40 bits. Donde obtenemos la temperatura


y la humedad.
Los 5 bytes recibidos sern los siguientes:
Byte1: parte entera de humedad relativa
Byte2: parte decimal de humedad relativa
Byte3: parte entera de temperatura
Byte4: parte decimal de temperatura
Byte5: checksum
El checksum se utiliza para confirmar que la informacin recibida es correcta, y se
calcula sumando los 4 bytes anteriores y quedndonos slo con los 8 bits menos
significativos del resultado. Cada uno de los bits se enva siguiendo esta estructura.
Cuando el sensor va a enviar un bit, siempre tira la lnea abajo durante 50us, y luego
la levanta durante 26-28us para sealizar un 0, o durante 70us si quiere enviar un
1.

16

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

Ilustracin 17 Transmisin de la informacin

Ejemplo40 bits recibidos


0000 0010

1001 0010

0000 0001

High humidity 8 Low humidity 8 High temp. 8

0000 1101

1010 0010

Low temp. 8

Parity bit

Clculo
0000 0010+1001 0010 +0000 0001+0000 1101= 1010 0010Parity bit
Datos recibidos correctamente
Humedad0000 0010 1001 0010 = 0292H (Hexadecimal)= 2256 + 916 + 2 = 658
=> Humidity= 65.8%RH
Temp.0000 0001 0000 1101 = 10DH(Hexadecimal) = 1256 + 016 + 13 = 269
=> Temp.= 26.9C

17

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

18

2015

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

CAPTULO 2
ESTADO DE LA
CUESTIN

19

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

20

2015

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

2. ANTECEDENTES, ESTADO DE LA CUESTION


2.1 Conocimientos adquiridos previos PFC
Para la realizacin de este Proyecto detallo a continuacin los conocimientos
adquiridos a lo largo de la carrera y que me facilitaron el desarrollo de este.
1) Conocimientos de informtica de usuario
2) Conocimientos de Linux
3) Conocimientos de Redes
4) Conocimiento de Software a nivel general
5) Conocimiento de Hardware a nivel general
6) Conocimiento de Suites Ofimticas
7) Conocimientos de diseo y edicin grfica
8) Conocimientos de entornos web
9) Conocimientos de sistemas operativos engeneral
10)Conocimientos en seguridad web
11) Aptitudes en el tratamiento y obtencin documental de la informacin en
entornos informticos.

Asignaturas cursadas como Sistemas Operativos, Redes de Computadores,


Administracin de Servidores Web, Metodologa de la programacin, Ingeniera del
software, entre otras, han permitido adquirir estos conocimientos y aptitudes que me
han facilitado el desarrollo de este proyecto de fin de carrera.

21

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

2.2 Antecedentes. Single Board Computers SBC


Cuando hablamos de un Single Board Computer (SBC) nos referimos a una
plataforma de computo basada en un microprocesador o microcontrolador que est
presentada en una sola tarjeta con lo indispensable para su funcionamiento
autnomo, como la memoria de programa, la memoria de datos y diversos
dispositivos de entrada/salida.
Inicialmente se utilizaban como sistemas de desarrollo, sistemas de pruebas,
demostraciones y para fines acadmicos. Ms adelante se comenzaron a utilizar
como sistemas de cmputo empotrados presentes en lugares con necesidades de
menor potencia, mayor versatilidad y menor volumen. El ejemplo ms directo de uso
es el desarrollo inmediato de aplicaciones por parte del programador, incluso el no
experimentado en algunos casos, debido a que la tarjeta es completamente
funcional y autnoma.
Se

pueden

apreciar

algunas

diferencias

entre

la

SBC

basadas

en

microprocesadores y las basadas en microcontroladores. Las ltimas carecen de


una interfaz de usuario de propsito general y de dispositivos de almacenamiento
masivo, aunque esto ltimo ya est actualmente resuelto. Las tarjetas basadas en
microcontroladores enfatizan el control y la adquisicin de datos o medidas a travs
de entradas y salidas analgicas/digitales, mientras que el sistema con
microprocesadores suele apoyarse ms en la implementacin interna o de
ejecucin, ms que en las funciones externas. Los sistemas microcontrolados
poseen generalmente multitud de entradas y salidas para el control de magnitudes
fsicas, reas de prototipo para conexiones de otros dispositivos y la posibilidad de
conectar otras tarjetas de expansin mediante protocolos de comunicacin
configurables por el usuario. Sin embargo es complejo realizar tareas que con los
sistemas microprocesadores actuales es tarea sencilla gracias a la utilizacin de
Linux. Una plataforma de microcontrolados de renombre es Arduino. Algunas de las
arquitecturas ms utilizadas en estas tarjetas son: Intel 8048, Atmel AVR, PIC y
ARM. Hoy en da, tras la irrupcin de la Raspberry Pi, los sistemas
microprocesadores son baratos y de relativa facilidad de uso para el pblico en
general, gracias en buena parte a diversos proyectos Open Source donde el usuario
22

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

puede acudir a consultar la documentacin disponible sin ningn coste. Tambin hay
que destacar que, gracias a la compatibilidad con Linux y con los lenguajes de
programacin de alto nivel facilitan enormemente la abstraccin del hardware por
parte del usuario, llegando a ser transparente para poder centrar sus esfuerzos en
plasmar sus ideas. Todas estas caractersticas mencionadas contribuyen a que este
tipo de tarjetas se estn convirtiendo en unas plataformas muy atractivas para los
desarrolladores, atrayendo incluso a colectivos ajenos a la programacin como
artistas, diseadores y entusiastas.
Actualmente existen multitud de SBC microprocesadores con distintos niveles de
potencia y, por lo tanto, precios. Algunas de estas son: Raspberry Pi, Cubieboard,
Gooseberry, etc.
2.2.1 Arduino
Arduino es una plataforma de prototipos electrnica de cdigo abierto (open-source)
basada en hardware y software flexibles y fciles de usar. Est pensado para
artistas, diseadores, como hobby y para cualquiera interesado en crear objetos o
entornos interactivos.
Arduino puede sentir el entorno mediante la recepcin de entradas desde una
variedad de sensores y puede afectar a su alrededor mediante el control de luces,
motores y otros artefactos. El microcontrolador de la placa se programa usando
el Arduino Programming Language (basado en Wiring) y el Arduino Development
Environment (basado en Processing). Los proyectos de Arduino pueden ser
autnomos o se pueden comunicar con software en ejecucin en un ordenador (por
ejemplo con Flash, Processing, MaxMSP, etc.).
Las placas se pueden ensamblar a mano o encargarlas preensambladas; el software
se puede descargar gratuitamente. Los diseos de referencia del hardware (archivos
CAD) estn disponibles bajo licencia open-source, por lo que eres libre de
adaptarlas a tus necesidades.
Arduino recibi una mencin honorfica en la seccin Digital Communities del Ars
Electronica Prix en 2006.

23

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

Ilustracin 18 Placa Arduino Uno

2.2.2 Cubieboard
Se trata tambin de un sistema SBC (Single Board Computer). Estas son sus
caractersticas principales:

Procesador ARM Allwinner A10/Cortex-A8, a 1 Ghz y 256 KB de cach L2

Tarjeta grfica Mali 400 Open GL ES

1 GB de memoria RAM DDR3 a 480 Mhz

2 puertos USB

1 puerto Ethernet 10/100

1 conector SATA

1 sensor de infrarrojos

Salida de vdeo HDMI de 1080p

Memoria flash interna de 4 GB

Lector de tarjetas micro SD


24

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

Sus 10 x 6 centmetros de tamao dan para mucho. El procesador Allwinner A10


est basado en la arquitectura ARM, como el de la Raspberry, pero es mucho ms
potente que el de sta (un 120% ms, aproximadamente); incorpora 1 GB de
memoria RAM, frente a los 512 MB de la otra placa; lleva integrada una memoria
flash de 4 GB con el sistema operativo Android preinstalado; adems aade algo
nico en estas miniplacas, un puerto SATA para conectar discos duros; y por ltimo,
incluye un sensor de infrarrojos.

Ilustracin 19 Placa Cubieboard

Aunque lleva el sistema Android preinstalado, es posible instalar tambin otros


sistemas operativos basados en Linux: Linaro (una versin de Ubuntu), Debian,
OpenELEC, Puppy, RasoRazor, Sugar, Arch Linux, etc. Al estar basada en un
procesador de la familia ARM, al igual que la Raspberry Pi, puede usar tambin el
software disponible para sta.
2.2.3 BeagleBone Black
Caractersticas.

Procesador: AM335x 1GHz ARM Cortex-A8


25

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

Memoria RAM: 512MB DDR3

Tarjeta Grfica: SGX530 aceleradora 3D

Vdeo: 1280 x 1024

Salida de Vdeo:

por HDMI

Tarjeta de red:

mini HDMI

Salida de Audio:

2015

Ethernet 10/100Mbps conexin RJ-45 Jack

USB:

1 entradas USB 2.0 de tamao estndar para conectar perifricos y


almacenamiento. Tipo USB Host

1 entrada USB 2.0 de tamao micro USB para alimentacin y


programacin. Tipo Client Port

Almacenamiento: memoria interna de 2GB eMMC y ampliable por el puerto USB


o por tarjeta micro SD

Alimentacin: por mini USB o por conexin tipo jack de 5V y 210mA o 460mA

Sistemas Operativos oficialmente soportados:

Angstrom Linux incluido de serie en la memoria interna

Android

Ubuntu

Extras:

botones de encendido, reset y boot

inclye cable USB a miniUSB

incluye 2 unidades programables de control tipo PRU

2 x 46 E/S de tipo: 65 digitales, 7 analgicas, 4 serie, 2 SPI, 2 I2C, 8


PWM, 4 timers,

Caja: sin caja

Tamao de la placa base: 86 x 53 mm (3.4 x 2.1)


26

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

Precio: 45$ + gastos envo

Ilustracin 20 BeagleBone Black

2.3 Conocimientos adquiridos de la investigacin bibliogrfica


Los conocimientos adquiridos en la investigacin bibliogrfica han sido muy
variados. Desde las mltiples posibilidades que tiene la placa RaspBerry Pi,
conocimiento de sus mltiples sistemas operativos, la gran cantidad de proyectos
basados en esta placa, utilizacin montaje y funcionamiento de diferentes tipos de
sensores, hasta la creacin de diferentes scripts en diferentes lenguajes.

2.4 Problemas existentes.


Los problemas actuales de las estaciones meteorolgicas radican en que son
bastante caras, son un sistema cerrado (por lo que no sabemos su funcionamiento
27

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

interno, no podemos elegir los tipos de sensores, si se estropea hay que cambiar el
sistema entero), hay que estar presentes en el mismo lugar de la estacin
meteorolgica para conocer los datos obtenidos.
Con la RaspBerry Pi podemos obtener los datos que los sensores que nosotros
deseemos nos proporcionen y usarlos y mostrarlos de la forma que nos plazca
debido a las grandes posibilidades que nos brinda la RaspBerry Pi.
Este tipo de sistema para montar una estacin meteorolgica tambin nos facilita la
obtencin de piezas de repuesto incluso la ampliacin modular de la misma, ya que
somos nosotros los que controlamos todo el Hardware de la estacin. Podemos ir
amplindole gradualmente el nmero y el tipo de sensores, incluso tener varias
estaciones meteorolgicas y que se comuniquen entre ellas.
Con respecto a los problemas o limitaciones de la Raspberry Pi es que aunque se
puede acceder remotamente a ella, en su instalacin se hace imprescindible
disponer de un monitor o televisor con entrada HDMI, un ratn y un teclado.
Hablar de RaspBerry Pi es hablar de RaspBian, el sistema operativo basado en
Debian. Por tanto para sacarle el mximo provecho a nuestra placa estaremos
limitados al uso de este sistema operativo ya que no disponemos de otro software
compatible con RaspBerry Pi que desempee una funcin ms especfica para
nuestros intereses.
Otro punto negativo es el limitado nmero de puertos de nuestro modelo de placa.

2.5 Anlisis posibilidades uso de la RaspBerry Pi.


Las posibilidades del uso de este tipo de placas son innumerables debido a que son
un mini-ordenador con el que tenemos una variedad muy amplia de acciones y
procesos que podramos realizar. A todo esto hay que sumarle su pequeo tamao,
su bajo consumo elctrico, su autonoma, su acceso wifi

28

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

Su potencial no est slo en el producto sino en el precio, lo que permite que llegue
a ms gente sin distincin por temas econmicos, lo que implica una mayor
comunidad y, por tanto un mayor nmero de ideas. De hecho, el gran punto fuerte de
la RaspBerry Pi es su comunidad de usuarios, una comunidad que cada vez es ms
amplia y crece de forma exponencial.
Este aumento en nmero de usuarios tambin est implicando un mayor nmero de
empresas que se dedican a desarrollar software o hardware para esta plataforma,
por lo que cada vez hay mayor nmero de perifricos.

29

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

CAPTULO 3
OBJETIVOS DEL
PROYECTO

30

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

3. OBJETIVOS DEL TRABAJO/PROYECTO.

El objetivo del proyecto es construir una estacin meteorolgica para llevar


una monitorizacin en tiempo real de la humedad y temperatura de la zona
donde se encuentre el dispositivo.

Instalacin sencilla. La instalacin del sistema no debe requerir de un


personal altamente cualificado para su puesta en funcionamiento. As mismo
se debe procurar la sencillez y rapidez de puesta en marcha.

Posibilidad de conexin de varios sensores simultneos. Un nico sistema


centralizado debe permitir la recopilacin y monitorizacin de datos de
mltiples sensores.

Posibilidad de pre-procesar datos. Las magnitudes recogidas podrn y


debern ser tratadas antes de ser mostradas y almacenadas. Deberemos
verificar que las lecturas son correctas.

Capacidad de representacin posterior de los datos obtenidos. Con los datos


obtenidos regularmente el usuario tiene que poder visualizar en tiempo real
las medidas y tambin acotar el historial de medidas a lo largo de un intervalo
de tiempo representando tanto grficamente como en tablas de datos, para
as tener una visin ms global de las variaciones de temperatura.

31

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

CAPTULO 4
HIPTESIS DE TRABAJO.

32

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

4. HIPOTESIS DE TRABAJO
En este apartado detallamos el entorno de trabajo en el que se llevar a cabo el
proyecto fin de carrera tanto dispositivos hardware como aplicaciones o SSOO.
Hardware:

Porttil Asus A53S

Televisor Haier LT26K1 26 pulgadas con HDMI

RaspBerry Pi Modelo B

Teclado y Ratn USB

UHB usb de Microsoft

Tarjeta SD de 8Gb

Cable de Red RJ-45

Cargador micro-usb 5V-2000mA

Cable HDMI

Adaptador usb WiFi

Sensor de temperatura y humedad DHT22

Placa Board EIC102

Kit puentes placa board (70)

Resistencia W

33

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi
Software

Windows 7

Linux lite (basado en Ubuntu)

Ms-Word

Putty

RaspBian

Win32Disckimager

Notepad++

PeaZip (descompresor de archivos)

Toms Planner (Diagramas de Gantt)

Lenguajes de programacin.

ShellScript

Lenguajes C y Python.

PHP

MySQL

HTML y CSS

34

2015

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

CAPTULO 5

METODOLOGA Y
RESULTADOS

35

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

5. METODOLOGIA Y RESULTADOS
5.1 Introduccin
A continuacin explicaremos paso a paso tanto la metodologa como la
implementacin del desarrollo a nivel prctico del Proyecto Final de Carrera.
La metodologa utilizada es el Proceso Unificado de Desarrollo de software mediante
UML. El Proceso Unificado es un marco de desarrollo iterativo e incremental
compuesto de cuatro fases denominadas Inicio, Elaboracin, Construccin y
Transicin. Cada una de estas fases es a su vez dividida en una serie de iteraciones
(la de inicio puede incluir varias iteraciones en proyectos grandes). Estas iteraciones
ofrecen como resultado un incremento del producto desarrollado que aade o
mejora las funcionalidades del sistema en desarrollo.
Cada una de estas iteraciones se divide a su vez en una serie de disciplinas que
recuerdan a las definidas en el ciclo de vida clsico o en cascada: Anlisis de
requisitos, Diseo, Implementacin y Prueba. Aunque todas las iteraciones suelen
incluir trabajo en casi todas las disciplinas, el grado de esfuerzo dentro de cada una
de ellas vara a lo largo del proyecto.
Comenzaremos con la planificacin, que indica el alcance del proyecto. Se usar el
diagrama de Gantt, mediante el cual se representar de una forma clara y concisa
las distintas etapas por las que se ha pasado para la consecucin de este proyecto.
Posteriormente, en la parte de diseo conceptual, se usar el lenguaje UML. El
lenguaje UML (Unified Modeling Language) o en castellano lenguaje LUM (Lenguaje
Unificado de Modelado) es el lenguaje de modelado ms conocido de la actualidad.
Es un lenguaje grfico para visualizar, especificar, construir y documentar un
sistema.
Por ltimo, tras la finalizacin de las fases anteriores, se proceder con el desarrollo
e implementacin del proyecto.
36

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

5.2 Planificacin
Como hemos comentado anteriormente, la planificacin de un proyecto nos expone
el alcance del mismo y las fases por las que pasa. La herramienta que usaremos
para exponer la planificacin del proyecto es el diagrama de Gantt.
El diagrama de Gantt es una til herramienta grfica cuyo objetivo es exponer el
tiempo de dedicacin previsto para diferentes tareas o actividades a lo largo de un
tiempo total determinado. A pesar de esto, el Diagrama de Gantt no indica las
relaciones existentes entre actividades.
En el proyecto, como bien se puede observar en la figura siguiente, se podra
especificar 7 fases

Ilustracin 21 Diagrama de Gantt inicial

Este era el diagrama de Gantt planificado con los tiempos previstos para cada tarea,
pero las estimaciones no fueron del todo acertadas en su totalidad. En el siguiente
diagrama se observa el diagrama de Gantt que se sigui realmente.

Ilustracin 22 Diagrama de Gantt real

El comienzo del proyecto se efecta el 13-05-2015.


37

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

La planificacin del proyecto ha requerido de unos 9 das en los que se


propuso una serie de etapas y de pautas con sus respectivos tiempos, que se
ha intentado cumplir.

La bsqueda de informacin ha sido constante debido a que era la primera


vez que trataba con diferentes tipos de sensores y placas, y el mtodo
heurstico seguido de ensayo y error (o prueba y error) hacan de la bsqueda
de informacin algo cotidiano.

El anlisis de los requisitos empieza tras haber estudiado las posibilidades


con las que se cuenta para el desarrollo del sistema, as como sus
limitaciones. Su duracin ha sido de unos 6 das.

El diseo conceptual comienza tras finalizar los anlisis de requisitos. Nos


llevar aproximadamente unos 3 das.

La implementacin del proyecto. Esta fase comienza al llegar a la conclusin


el diseo conceptual. Se proceder con la instalacin y cableado de los
sensores, montaje de la RaspBerry Pi, Instalacin del sistema operativo
Rasbian, drivers, programacin de scrips, instalacin del servidor web y Base
de datos, WordPress... Es una fase realmente extensa y ocupar unos 60
das.

El periodo de pruebas se ha realizado casi paralelamente con la


implementacin del proyecto, debido a que cuando se localizaban errores, se
proceda a la reprogramacin y resolucin de dicho fallo. Su duracin es de
unos 20 das aproximadamente (el principio de la implementacin no tuvo
muchos problemas).

La documentacin es una fase que no me esperaba que fuese tan larga y


tediosa. Coincide con la fase de pruebas e implementacin para poder
realizar las capturas necesarias de estos procesos. La documentacin ha
ocupado unos 60 das.

38

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

5.3 Diagramas UML


5.3.1 Diagrama de casos de uso
Un requisito funcional define el comportamiento interno del software: clculos,
detalles tcnicos, manipulacin de datos y otras funcionalidades especficas que
muestran como los casos de uso sern llevados a la prctica. En ingeniera del
software, un caso de uso es una tcnica para la captura de requisitos potenciales de
un nuevo sistema o una actualizacin de software. Cada caso de uso proporciona
uno o ms escenarios que indican cmo debera interactuar el sistema con el
usuario o con otro sistema para conseguir un objetivo especfico.

Ilustracin 23 Diagrama de Casos de Uso

Definicin de Actores
Tabla 3 Casos de uso de Ingeniero Software

Actor-01

Ingeniero Sofware

Descripci
n

Actor que accede al sistema operativo de la estacin meteorolgica a


travs de acceso remoto por SSH
39

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi
Comentario

2015

Con este tipo de acceso el usuario puede revisa, y testear el estado


de los sensores, base de datos, modificar las tareas cron, modificar
credenciales del Actor-02...

Tabla 4 Casos de uso de Administrador web

Actor-02

Administrador web

Descripci
n

Este actor representa al administrador del CMS WordPress, que para


acceder como tal, se tiene que identificar en el back-end de la
aplicacin web.

Comentario

Con este tipo de acceso, se puede cambiar casi cualquier aspecto de


la web, desde idiomas soportados, SEO, tema de la pgina, tipos de
grficas.. as como la gestin total de las publicaciones.

Tabla 5 Casos de uso de Usuario web

Actor-03

Usuario web

Descripci
n

Este actor representa a los usuarios que visitan la pgina online de la


estacin meteorolgica pero no se han identificado.

Comentario

Con este tipo de credenciales, los usuarios solo podrn ver los
diagramas de temperatura y humedad.

40

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

Casos de uso del sistema.


Tabla 6 Descripcin de requisitos Encender estacin

Sistema
Caso de uso
Actores
Descripcin
Estmulo
Respuesta
Comentarios

Estacin meteorolgica
Encender estacin
Ingeniero Software
El sistema (la Raspberry Pi) es conectada a una fuente de alimentacin .
Estar apagada.
Se carga el sistema operativo y con l toda la estacin meteorolgica
No procede.

Tabla 7 Descripcin de requisitos Apagar estacin

Sistema
Caso de uso
Actores
Descripcin

Estacin meteorolgica
Apagar estacin
Ingeniero Software
El sistema (la Raspberry Pi) es apagado mediante acceso remoto con el
comando shutdown .
Estmulo
Estar encendida.
Respuesta
Se apaga la RaspBerry Pi y con ella toda la estacin meteorolgica
Comentarios No procede.

Tabla 8 Descripcion de requisitos Reconfigurar

Sistema
Caso de uso
Actores
Descripcin

Estacin meteorolgica
Reconfigurar
Ingeniero Software
El ingeniero Software cambia la configuracin de los parmetros de los
sensores, base de datos, script o de cualquier archivo que crea oportuno .
Estmulo
Necesitar una reparacin o mejora.
Respuesta
Mejora del sistema
Comentarios No procede.

41

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

Tabla 9 Descripcin de requisitos Acceso

Sistema
Caso de uso
Actores
Descripcin
Estmulo
Respuesta
Comentarios

Estacin meteorolgica
Acceso remoto
Ingeniero Software
Se accede a la RaspBerry Pi desde internet .
Estar conectado a internet.
Se le permite acceso o no a todo el sistema operativo de la RaspBerry
No procede.

Tabla 10 Descripcin de requisitos Testear


Sistema
Caso de uso
Actores
Descripcin
Estmulo
Respuesta
Comentarios

Estacin meteorolgica
Testear
Ingeniero Software
Se ejecutan diferentes scripts para testear el estado de la estacin .
Conectarse a la estaccin.
Indicar si est todo correcto o falla algo.
No procede.

Tabla 11 Descripcin de requisitos Cambiar Diseo

Sistema
Caso de uso
Actores
Descripcin

Estacin meteorolgica
Cambiar diseo web
Administrador web
El administrador accede al back office de WordPress desde donde puede
realizar los cambios pertinentes
Estmulo
Tener acceso al BackOffice
Respuesta
Cambia el diseo
Comentarios No procede.

Tabla 12 Descripcin de requisitos Publictar Grfica

Sistema
Caso de uso
Actores
Descripcin
Estmulo
Respuesta
Comentarios

Estacin meteorolgica
Publicar Grfica
Administrador web
El Administrador web puede publicar nuevas grficas de diferentes das .
Acceder al BackOffice.
Aparecen nuevas grficas
No procede.

42

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

Tabla 13 Descripcin de requisitos Editar Grfica

Sistema
Caso de uso
Actores
Descripcin
Estmulo
Respuesta
Comentarios

Estacin meteorolgica
Editar Grfica
Administrador web
El Administrador web puede editar grficas ya creadas .
Acceder al BackOffice.
Cambian las grficas
No procede.

Tabla 14 Descripcin de requisitos Testear

Sistema
Caso de uso
Actores
Descripcin

Estacin meteorolgica
Testear
Administrador web
Desde el BackOffice tiene todas las herramientas para comprobar y cambiar el
estado de la web .
Estmulo
Acceder al BackOffice.
Respuesta
Mejora la web.
Comentarios No procede.

Tabla 15 Descripcin de requisitos Ver Grficas

Sistema
Caso de uso
Actores
Descripcin

Estacin meteorolgica
Ver diferentes grficas
Usuario web
Cualquier usuario (a menos que no lo cambie el administrador web) tiene
acceso a las grficas .
Estmulo
Acceder a la url de la web
Respuesta
Observar las grficas
Comentarios No procede.

43

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

5.4 Implementacin
Despus de planificar todo el proceso y definir conceptualmente la aplicacin,
pasaremos a la fase de implementacin de la estacin meteorolgica.
Descargamos el sistema operativo Raspbian desde la seccin de descargas de la
web oficial de la fundacin RaspBerry Pi, https://www.raspberrypi.org/ ya que es el
sistema operativo soportado oficialmente por la fundacin. En nuestro caso
descargamos la ltima versin, 2015-05-05-raspbian-wheezy.zip, que data de mayo
del 2015.

Ilustracin 24 Pgina oficial de RaspBian

44

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

Una vez descargado el archivo, lo descomprimimos para tener la imagen ISO de la


distribucin Raspbian.

Ahora descargamos el programa Win32 Disk Imager desde sourceforge.net


(http://sourceforge.net/projects/win32diskimager/files/latest/download).

Ilustracin 25 Pgina de descarga de Win32 Disk Imager

45

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

Una vez descargado el programa Win32 Disk Imager, lo instalamos aceptando la


licencia del programa (GPL v2 and LGPL v2.1).

Ilustracin 26 Proceso de instalacin de Win32DiskImager

Estando ya instalado el programa, introducimos una tarjeta SD en el ordenador de


un tamao de 4Gb como mnimo y ejecutamos el programa Win32 Disk Imager.
En el programa seleccionaremos la imagen de RaspBian, la unidad donde se
encuentra nuestra tarjeta SD y pincharemos en el botn Write para grabar la
imagen en la tarjeta SD.

46

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

Ya tenemos el sistema operativo listo en la tarjeta SD.


Ahora introducimos la tarjeta SD en la Raspberry Pi y esta la conectamos por HDMI
a un monitor o televisor. Le conectamos un teclado en unos de los usb y lo
conectamos a internet mediante un cable de red. En nuestro caso le hemos
agregado un hub usb al que hemos conectado el teclado y un ratn y as tener un
puerto usb libre para conectar posteriormente un adaptador wifi. Una vez montado
todo, conectamos el cargador micro-usb.

47

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

Conectamos la fuente de alimentacin, se enciende la Raspberry Pi y se inicia por


primera vez Raspbian, entrando automticamente en raspi-config, para proceder a
su configuracin.

Ilustracin 27 Raspbian arrancando por primera vez

Configuracin de Raspbian.

Expandimos la particin de Rasbian hasta ocupar la capacidad de la SD con la


primera opcin que nos aparece en el men de configuracin (raspi-config).
Expand Filesystem: La tarjeta SD tendr dos particiones: una de boot (arranque)
que hace las veces de BIOS y que es visible poniendo la tarjeta en un PC con
Windows o Mac y otra principal, donde est instalado Raspbian y que solo es visible
en un PC con Linux. Como las imgenes por defecto que se usan como base para
48

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

instalar Raspbian son de 2GB, si se ha usado una SD ms grande, 8 GB en ste


caso, el resto del espacio estar sin utilizar. Al usar esta opcin del men de
configuracin Raspbian aprovechar todo el espacio restante de la tarjeta.

En la segunda opcin cambiamos la contrasea del usuario pi. Esto es muy


recomendable ya que vamos a exponer la RaspBerry Pi a internet y podran acceder
a ella fcilmente.

En la tercera opcin elegimos de qu modo queremos que se inicie Raspbian.


Elegimos la opcin de escritorio grfico.

49

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

En la cuarta opcin es donde elegimos nuestro idioma y nuestra localizacin.


Aqu se configura el idioma de Raspbian, la hora y el teclado.

Seleccionamos los tres idiomas es-ES con la barra espaciadora.

50

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

Ahora elegimos la zona horaria.

51

2015

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

52

2015

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

En la configuracin del teclado seleccionamos Other > Spanish > Spanish.

53

2015

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

54

2015

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

Ahora configuramos algunas teclas del teclado.

En la opcin 8 tendremos las opciones avanzadas de configuracin.


55

2015

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

En la segunda opcin le pondremos a la RaspBerry el nombre con la que aparecer


en nuestra red.

56

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

Muy importante es activar el acceso SSH.

57

2015

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

58

2015

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi
Por ltimo reiniciamos la RaspBerry Pi

Despus de unos minutos nos aparecer el escritorio de Raspbian.

Ahora conectamos el adaptador wifi, y desconectamos el cable de red.

59

2015

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

Ilustracin 28 Adaptador WiFi

Configuracin de nuestra red WiFi.


Nos conectamos a nuestra red WiFi.

Introducimos la contrasea de la wifi ypara poder conectarnos a ella.

Como podemos observar, nos hemos conectado sin problema a internet.

60

2015

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

El siguiente paso es abrir una terminal para averiguar cual es nuestra IP local.

61

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

Ilustracin 29 Terminal de Raspbian

Ahora nos podremos conectar desde cualquier ordenador que est en la misma red
local con el protocolo SSH.
Desde windows usaremos el Putty.
El PuTTY es un cliente SSH y telnet. Nos descargamos el PuTTY desde su web
oficial http://www.putty.org/

62

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

Y nos descargamos el archivo.

Y lo guardamos en el escritorio por ejemplo.

Una vez descargado lo ejecutamos.


63

2015

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

En Host Name pondremos la IP de la Raspberry Pi, Port 22, Connection type: SSH y
pulsamos en el botn Open.

Nos aparecer un mensaje de alerta, lo aceptamos y se nos abrir una ventana


donde nos solicitarn el usuario y la contrasea para acceder a la RaspBerry Pi.
El usuario ser pi y la contrasea ser la que pusimos al instalar Raspbian. Si no la
cambiamos en su momento, la contrasea seguir siendo raspberry.

Ilustracin 30 Acceso SSH mediante PuTTY

Ahora vamos a poner la IP esttica para que el router le d siempre la misma IP a la


RaspBerry Pi. Para poder definir si la IP es esttica o dinmica hay que editar el
archivo "interfaces", este se encuentra en /etc/network .
sudo nano /etc/network/interfaces

64

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

Y le aadimos:
auto wlan0
iface wlan0 inet static
address 192.168.1.88
#192.168.1.XX donde XX es un n entre 2 y 255
gateway 192.168.1.1
netmask 255.255.255.0
wpa-ssid Upaljen
#Pongo el nombre de la WiFi
wpa-psk LaTortillaDePatatasSiempreEsRedonda #Contrasea de la WiFi

Una vez modificado el archivo pulsamos Ctrl+X para salir del editor. Nos preguntara
si queremos guardar los cambios y le damos a yes. Luego el directorio para
guardarlo y le damos a enter. En estos momentos ya tenemos la Raspberry
configurada y la reiniciamos con sudo reboot. Al reiniciarse perderemos la conexin
ssh. Volvemos a conectarnos con el PuTTY y esta vez tendremos que usar la nueva
IP: 192.168.1.88 . Ya tenemos una IP local fija (necesaria para redireccionar
puertos).

65

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

Para acceder a la Raspberry Pi desde cualquier ordenador, no slo desde nuestra


propia LAN, tendremos que redireccionar puertos en nuestro router. En nuestro caso
debemos acceder a nuestro router y redireccionar el puerto 22 externo de nuestro
router al mismo puerto 22 y a la IP que hemos escogido para nuestra RaspBerry.
Esta configuracin es similar en todos los routers pero a la vez casi siempre el men
es diferente. Para acceder al router ponemos en el navegador http://192.168.1.1/ ,
nos pedir un susario y contrasea que suele venir escrita en el mismo router. En
nuestro router, un Netgear genie CG3100D tendremos que ir a Avanzado >
Configuracin avanzada > Reenvio de puertos / Activacin de puertos. Desde ah
podremos realizar el redireccionamiento del puerto de acceso SSH.

Ilustracin 31 Men del Router NetGear

Ahora nos dirigimos a http://www.yougetsignal.com/tools/open-ports/ para comprobar


que tenemos correctamente abierto el puerto. La misma pgina nos dice cual es
nuestra IP externa del router.

66

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

Despus de esto podremos acceder desde cualquier ordenador poniendo en el


PuTTY nuestra IP externa. Si nuestra IP vara cada vez que reiniciamos el router,
usaremos un servicio de DNS dinmico gratuito. En este caso hemos usado
https://www.noip.com

Nos daremos de alta en la pgina. Para ello necesitaremos un correo electrnico,


nombre de usuario, contrasea y nombre del dominio que deseemos darle a nuestra
IP pblica, elegiremos una de las extensiones gratuitas. Luego pinchamos en Free
Sing Up.

67

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

Ahora activaremos nuestra cuenta pinchando en Activate Account, nos saldr un


mensaje indicando que ya la tenemos activada y pasos opcionales a seguir.

Ya podremos manejar nuestros Hosts.

Ahora podremos acceder desde cualquier Linux o Mac escribiendo en consola:


ssh pi@meteoraspi.ddns.net
O escribiendo meteoraspi.ddns.net en el apartado host del PuTTY

68

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

Ilustracin 32 Entorno de configuracin PuTTY

Para comprobar que se tiene acceso desde cualquier equipo, ahora nos
conectaremos por ssh desde un equipo con una distribucin Linux (Linux Lite).
Abrimos la consola y ponemos ssh pi@meteoraspi.ddns.net

69

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

Actualizamos todo el sistema con sudo apt-get update y sudo apt-get


upgrade -y

Instalacin Servidor web.


Teniendo ya configurada la IP esttica empezaremos a instalar el servidor Web
Crearemos el grupo www-data con los comandos:
sudo groupadd www-data
sudo usermod -a -G www-data www-data
Ahora instalamos Apache con:
sudo apt-get install apache2

70

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

Despus de esto comprobamos que todo ha funcionado correctamente abriendo el


navegador y, en la barra de direcciones introduciremos la IP de nuestra Raspberry
Pi. Debera salirnos un mensaje como este:

71

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

Ahora instalaremos PHP para poder crear contenido dinmico en nuestra web. Para
ello ejecutaremos el siguiente comando:
sudo apt-get install php5
A continuacin instalaremos unos paquetes que nos podran hacer falta en un futuro.
sudo apt-get install libapache2-mod-php5 libapache2-mod-perl2
php5 php5-cli php5-common php5-curl php5-dev php5-gd php5-imap
php5-ldap php5-mhash php5-mysql php5-odbc
Tras esto reiniciamos nuestra Raspberry Pi:
sudo reboot
Una vez que reiniciemos haremos una prueba con PHP
sudo nano /var/www/info.php
Escribiremos el siguiente cdigo dentro del documento
<?php
phpinfo();
?>

72

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

Abriremos el navegador e introduciremos IPRASPBERRY/info.php (por ejemplo:


192.168.1.88/info.php) o localhost si estamos en la Raspberry Pi. Deber salir
algo como la siguiente imagen:

Ahora instalaremos MySQL. Durante la instalacin nos pedir datos que deberemos
apuntar ya que los necesitaremos posteriormente. Para su instalacin ejecutaremos:
sudo apt-get install mysql-server mysql-client php5-mysql

73

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

Ilustracin 33 Configuracin usuario root de MySQL

Reiniciamos de nuevo la Raspberry Pi y, tras reiniciarse abriremos un terminal e


iniciamos MySQL.
sudo service mysql start
Ahora comprobaremos que funciona MySQL mediante el siguiente comando:
mysql -u root -p
74

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

Podemos dejar el parmetro -p vacio y luego nos preguntar la contrasea o poner


la contrasea junto a este parmetro para que no la pida. Si todo ha ido bien debera
salir algo parecido a esto:

Para salir pulsamos CTRL+C y seguiremos trabajando en el terminal.


Ahora instalaremos phpMyAdmin para manejar fcilmente las bases de datos de
MySQL. Para ello ejecutaremos el siguiente comando:
sudo apt-get install libapache2-mod-auth-mysql php5-mysql
phpmyadmin

75

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

Durante la instalacin nos preguntar qu tipo de servidor tenemos; marcaremos


Apache (con la barra espaciadora) y continuaremos.

Ilustracin 34 Instalacin de MySQL

Despus nos preguntar si queremos configurar una base de datos; le diremos que
s y nos pedira que introduzcamos la contrasea de MySQL y nos pedir de nuevo
que introduzcamos una contrasea para phpMyAdmin.

76

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

Al finalizar editaremos el siguiente fichero:


sudo nano /etc/php5/apache2/php.ini
Aadiremos lo siguiente.
extension=mysql.so

77

2015

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

Guardaremos el fichero y a travs del navegador


introduciremos http://IPRASPBERRY/phpmyadmin/ . Deberia salir phpmyadmin. El
usuario sera root y la contrasea sera la que hayamos elegido anteriormente.

78

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

Ilustracin 35 Pgina de acceso a PhpMyAdmin

Si no llegara a funcionar ejecutaremos estos 2 comandos:


sudo ln -s /etc/phpmyadmin/apache.conf
/etc/apache2/conf.d/phpmyadmin.conf
sudo /etc/init.d/apache2 reload

79

2015

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

Ilustracin 36 Men general de PhpMyAdmin

Desde MySQL creamos nuestra base de datos que la llamaremos MeteoDatos

Instalacin del sensor de humedad y temperatura DHT22.


80

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

Conectaremos el sensor de humedad y temperatura a la RaspBerry Pi. Para no


tener que realizar soldaduras, utilizaremos una placa board donde montaremos el
circuito siguiendo el siguiente esquema.

Ilustracin 37 Esquema del circuito del sensor

Una vez creada la Base de Datos y completado el cableado de la estacin


crearemos los scripts especficos para nuestro sensor que obtendrn las lecturas de
temperatura y humedad y las almacenarn en la tabla temperaturas dentro de
nuestra base de datos.
Para utilizar el script en Python de nuestro sensor necesitaremos instalar algunas
cosas para que funcione correctamente. Teclearemos en la terminal:
sudo apt-get install python python-dev libmysqlclient-dev

81

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

Tambin deberemos instalar easy_install para instalar los mdulos de python sin
problemas. Lo haremos con:
sudo apt-get install python-setuptools
Ahora actualizamos easy_install con:
easy_install -U distribute
Despus de esto ya podremos instalar el mdulo que se encargar de guardar la
informacin de la lectura a la base de datos. Escribiremos
easy_install MySQL-python
Este mdulo es indispensable para la lectura de los datos del sensor, de lo contrario
el script no iniciar nunca.
Llegados a este punto, vamos a utilizar una combinacin de python y de cdigo C.
Este ltimo lee los valores del sensor DHT22 y los manda al script en python. A
veces se necesita un par de intentos (uno o dos como mximo) antes de que los
valores se lean. Despus de esto, python guarda estos valores en la base de datos
MeteoDatos en la tabla de temperatures. Cuando el script se ejecuta por primera
vez, se crea automticamente esta tabla.
Descargamos el script en Python desde github.com con
git clone https://github.com/peterkodermac/RaspberryWeather.git

82

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

Tendremos una carpeta en el directorio raz llamada Raspberry-Weather

Dentro de esta carpeta hay varios archivos y una carpeta. El directorio bcm2835-1.8
tiene el cdigo C, que se encarga de la obtencin de informacin del sensor de
temperatura. El script python getInfo.py se encarga de eso y tambin actualiza su
base de datos con la temperatura y la humedad. Al principio, tambin utiliza los
createTable.sql para crear la tabla temperatures que almacena estos valores.

Tendremos que hacer que la carpeta Raspberry-Weather sea ejecutable para que el
script en python sea capaz de ejecutarse. Esto lo conseguiremos con:
chmod +x /home/pi/Raspberry-Weather/
Ahora editamos el script getInfo.py tecleando
nano /home/pi/Raspberry-Weather/getInfo.py

83

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

Introducimos nuestros datos en el apartado databasePassword y databaseName.

Antes de probarlo deberemos de construir la biblioteca de C que viene con el


paquete, para ello escribimos las siguientes lneas por consola
cd bcm2835-1.8
./configure
sudo make install
gcc Adafruit_DHT.c -l bcm2835 -std=gnu99 -o Adafruit_DHT
Ahora suba de nivel de directorio con cd .. y ejecute el script con sudo python
getInfo.py

84

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

Lo ejecutamos varias veces y nos dirigimos a phpMyAdmin para comprobar que se


han guardado los datos.
http://192.168.1.88/phpmyadmin

85

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

Observamos las inserciones que hemos ido realizando.

Vista de los datos almacenados en la tabla temperatures.

La humedad vara de forma drstica porque le he soplado al sensor para observar


las variaciones de humedad que se generaban.
86

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

Ahora crearemos una tarea cron para que el script se ejecute cada x tiempo. Por
ejemplo cada 30 minutos. Para ello ejecutaremos crontab donde introduciremos la
tarea cron que queremos realizar.
crontab e
Se nos abre el crontab e introduciremos una lnea nueva al final del documento que
contendr lo siguiente:
0,30 * * * * /usr/bin/python /home/pi/RaspberryWeather/getInfo.py

87

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

Instalacin del CMS WordPress.


Para el sitio web vamos a utilizar WordPress ya que es una muy buena decisin
debido a lo fcilmente personalizable que es y a la gran cantidad de plugins y temas
que ofrece.
Descargamos y extraemos el paquete de WordPress desde
http://wordpress.org/download/ , para ello nos dirigimos al directorio de nuestro
servidor web cd /var/www, y desde la consola ponemos:
wget http://wordpress.org/latest.tar.gz
tar -xzvf latest.tar.gz
El paquete de WordPress se ha extrado en un directorio llamado wordpress.
Movemos todo su contenido a /var/www.
Creamos en PhpMyAdmin una base de datos para WordPress y le creamos un
usuario nuevo.

Ahora configuramos el archivo wp-config-sample.php


88

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

// ** Configuracin de MySQL ** //
define('DB_NAME', 'MeteoDatos');
// El nombre de la base de datos
define('DB_USER', 'root');
// Tu usuario de MySQL
define('DB_PASSWORD', 'password'); // ...tu contrasea
define('DB_HOST', 'localhost');
// 99% de la veces no necesitas
// cambiar este valor

Y lo guardamos como wp-config.php


Ahora comenzamos con la instalacin del CMS WordPress desde un navegador
visitando la url http://192.168.1.88/wp-admin/install.php y nos
aparecer unos campos a rellenar:

Despus de unos minutos nos aparecer el mensaje de que ha sido instalado y


podremos identificarnos para acceder a nuestro panel de control de WordPress.

89

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

Dentro del Dashboard pinchamos en Plugins y en Add New. En el buscador


pondremos Raspberry Weather plugin, ahora quedara instalarlo y activarlo.

90

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

Una vez activado vamos a editar un post nuevo, y nos aparecer un botn que al
pincharle nos agregar el cdigo que representar la grfica.

91

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi
Publicamos el post y observamos al visitar la pgina que aparece la grfica.

92

2015

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

CAPTULO 6
CONCLUSIONES Y
PROPUESTAS

93

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

6. CONCLUSIONES Y PROPUESTAS
En este proyecto se ha tratado de aplicar muchos conocimientos, adquiridos a lo
largo de la carrera, para crear un sistema sensorial completo.
En primer lugar se sientan las bases elctricas y electrnicas para conocer la
envergadura que se puede alcanzar. As mismo, este estudio sirve para poder crear
otros proyectos que requieran longitudes elevadas con bajo consumo y coste. Se ha
realizado un estudio de sensores que pueden abarcar tanto sistemas sensoriales
industriales como domticos tanto en oficinas como en casas particulares.
En segundo lugar se deja un sistema compacto con todas las herramientas
necesarias para monitorizar, vigilar y realizar informes de todo lo que acontece en el
entorno donde se encuentre ubicada la estacin.
Este sistema puede adaptar de forma sencilla otros tipos de sensores. Los
conocimientos adquiridos y desarrollados en este proyecto abren un abanico amplio
de posibilidades para futuros desarrollos con un bajo coste de adquisicin y con
facilidad de implementacin.

94

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

95

2015

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

CAPTULO 7
BIBLIOGRAFA

96

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

7. BIBLIOGRAFIA
[1] http://www.raspberryshop.es/ // Raspberry Pi en espaol // Visitas: Mayo 2015.
[2] http://www.omniblug.com/index.php/blog/115-sensor-dht11 // Visitas: Mayo 2015.
[3] http://akizukidenshi.com/download/ds/aosong/AM2302.pdf // Funcionamiento
sensor dht22 // Visitas: Mayo 2015, Junio 2015.
[4] http://arduino.cl/que-es-arduino/ // Qu es Arduino? // Junio 2015
[5] http://www.uroboros.es/cubieboard/ // Qu es Cubieboard? // Junio 2015
[6] https://es.wikipedia.org/wiki/Diagrama_de_Gantt/ // Diagrama de Gantt // Julio
2015
[7] http://blog.zoogon.net/2013/01/acceder-desde-internet-tu-raspberry-pi.html // IPs
dinmicas, puertos, DNS // Julio 2015
[8] https://geekytheory.com/tutorial-raspberry-pi-crear-servidor-web/ // Instalacin del
servidor web // Julio 2015
[9] http://www.raspberryweather.com/python-script/ // Python script y cdigo para
DHT22 // Agosto 2015
[10] https://codex.wordpress.org/es:Instalando_Wordpress // Instalando WordPress //
Septiembre 2015
[11]
http://bibing.us.es/proyectos/abreproy/12213/fichero/Proyecto+fin+de+carrera.pdf //
Estructura de la documentacin. // Septiembre 2015.
[12] Proyecto fin de carrera Raspberry Pi y Camera Board Raspi en entorno Web
(Marzo 2015) // Autor: Antonio Ramn Martnez Jara. // Agosto 2015.

97

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

98

2015

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

CAPTULO 8
ANEXOS

99

Desarrollo e implementacionn de una estacionn meteorolongica mediante la


plataforma hardware/software libre Raspberry Pi

2015

8. ANEXOS
8.1 Aplicacin Mvil
Disponemos en el Market de Android (Google Play) una aplicacin desde donde
poder ver nuestros reportes de humedad y temperatura. La aplicacin se llama
Raspberry Weather y se puede descargar desde
https://play.google.com/store/apps/details?id=com.raspberryweather
Para que esta aplicacin muestre nuestros datos deberemos de conectarnos a la
Raspberry Pi, dirigirnos a la carpeta Raspberry-Weather con cd /root/RaspberryWeather

y descargar el cdigo con wget

https://raw.githubusercontent.com/peterkodermac/My-weather-stationgenerator/master/createXml.py

Ahora haremos ejecutable el script con chmod +x createXml.py (el archivo


createXml.py tiene que estar en el mismo directorio que getInfo.py)
Tendremos que modificar el archivo getInfo.py con nano getInfo.py y aadiremos a
la ltima lnea subprocess.call(os.path.dirname(os.path.realpath(__file__))
+"/createXml.py %s %s %s" % (databaseUsername,databasePassword,
databaseName), shell=True)

Este script lo que crea es un archivo (output.xml) con los datos de la base de datos
en formato XML en el directorio /var/www/ que es el que leer la aplicacin.

100