SlideShare una empresa de Scribd logo
1 de 107
Descargar para leer sin conexión
UNIVERSIDAD MIGUEL HERNÁNDEZ DE ELCHE
ESCUELA POLITÉCNICA SUPERIOR DE ORIHUELA
INGENIERO TÉCNICO EN INFORMÁTICA DE GESTIÓN
“DESARROLLO E IMPLEMENTACIÓN DE
UNA ESTACIÓN METEOROLÓGICA
MEDIANTE LA PLATAFORMA
HARDWARE/SOFTWARE LIBRE
RASPBERRY PI”
PROYECTO FIN DE CARRERA
Septiembre – 2015
AUTOR: Alejandro Gálvez 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 estación, como por ejemplo: unas cámaras frigoríficas, 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 conexión a internet con el mínimo presupuesto posible y utilizando
tecnologías open source.
El principal objetivo del proyecto es permitir el guardado y la gestión de los datos
(humedad y temperatura) recogidos por los sensores así como mostrar los
resultados en diferentes gráficas para de este modo tener un seguimiento exhaustivo
de las variaciones climáticas del entorno monitoreado. Además, se hará especial
hincapié en la facilidad de uso de la herramienta, haciéndola accesible a usuarios sin
conocimientos técnicos.
Con el fin de alcanzar dicho objetivo, se analizarán y evaluarán una serie de placas y
sensores entre los cuales elegiremos los más ó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 actúan como mini-ordenadores, en nuestro caso
concreto sobre RaspBerry Pi. Describiremos sus diferentes modelos y usos actuales.
A nivel de implementación realizaremos la instalación y configuración del sistema
operativo, sensores, drivers de sensores, servidor web, base de datos, acceso
inalámbrico mediante un adaptador WiFi usb, instalación y configuración del CMS
WordPress para la presentación de los datos en forma de gráficas.
Por último, destacar que las herramientas y tecnologías utilizadas durante el
desarrollo son gratuitas y de código 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 comprensión que me han dado a lo
largo de esta carrera y por haberme dado la oportunidad de tener unos estudios. Sin
ellos no podría ver terminado este proyecto. Gracias por creer en mí cuando en
algunas ocasiones ni si quiera yo creía en mí mismo.
También me gustaría agradecer a Daniel, Sergio, Alfredo, José Manuel, Elisabet y
Manolo el haberme metido caña, animado y apoyado en todo momento en la
finalización de la carrera. No me puedo olvidar de Jordi, Guirao, Julio, Canario,
Claudio, Javi, Sandra, Marietta, Pío, Hurtado, Alfredo, Amancio, Ana, Cristina, José,
Lufi, Rubén... y demás compañeros de clase que me han soportado durante todos
los años 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. Introducción 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 investigación bibliográfica..............................31
2.4 Problemas existentes........................................................................................31
2.5 Análisis 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 Introducción.......................................................................................................44
5.2 Planificación.......................................................................................................45
5.3 Diagramas UML.................................................................................................47
5.3.1 Diagrama de casos de uso.............................................................................47
5.4 Implementación.................................................................................................52
Configuración de Raspbian.....................................................................................57
Configuración de nuestra red WiFi..........................................................................69
Instalación Servidor web.........................................................................................80
Instalación del sensor de humedad y temperatura DHT22.....................................90
Instalación del CMS WordPress..............................................................................97
6. CONCLUSIONES Y PROPUESTAS.....................................................................104
7. BIBLIOGRAFIA.....................................................................................................108
8. ANEXOS................................................................................................................112
8.1 Aplicación Móvil...............................................................................................112
v
Desarrollo e implementacionn de una estacionn meteorolongica mediante la
plataforma hardware/software libre Raspberry Pi
2015
INDICE DE FIGURAS
Ilustración 1 RaspBerry Pi Modelo B............................................................................5
Ilustración 2 Número de pines según el modelo de RaspBerry Pi...............................8
Ilustración 3 Menu de instalación de NOOBS...............................................................9
Ilustración 4 Menú instalación de BerryBoot...............................................................10
Ilustración 5 Escritorio Raspbian.................................................................................11
Ilustración 6 Logo de Pidora........................................................................................11
Ilustración 7 Acceso SSH de Moebius........................................................................11
Ilustración 8 Escritorio de Arch Linux..........................................................................12
Ilustración 9 Logotipo de arkOS..................................................................................12
Ilustración 10 Entorno gráfico de OpenELEC.............................................................13
Ilustración 11 PiMAME, distribución orientada a juegos retro....................................13
Ilustración 12 Entorno gráfico de xBian......................................................................14
Ilustración 13 Entorno gráfico de RaspBMC...............................................................14
Ilustración 14 Risc OS.................................................................................................14
Ilustración 15 Sensor DHT11 Ilustración 16 Sensor DHT22.............................16
Ilustración 17 Comunicación con el sensor................................................................18
Ilustración 18 Transmisión de la información..............................................................19
Ilustración 19 Placa Arduino Uno................................................................................27
Ilustración 20 Placa Cubieboard.................................................................................28
Ilustración 21 BeagleBone Black................................................................................30
Ilustración 22 Diagrama de Gantt inicial.....................................................................45
vi
Desarrollo e implementacionn de una estacionn meteorolongica mediante la
plataforma hardware/software libre Raspberry Pi
2015
Ilustración 23 Diagrama de Gantt real........................................................................45
Ilustración 24 Diagrama de Casos de Uso.................................................................47
Ilustración 25 Página oficial de RaspBian...................................................................52
Ilustración 26 Página de descarga de Win32 Disk Imager.........................................53
Ilustración 27 Proceso de instalación de Win32DiskImager.......................................54
Ilustración 28 Raspbian arrancando por primera vez.................................................56
Ilustración 29 Adaptador WiFi.....................................................................................69
Ilustración 30 Terminal de Raspbian...........................................................................71
Ilustración 31 Acceso SSH mediante PuTTY..............................................................74
Ilustración 32 Menú del Router NetGear....................................................................76
Ilustración 33 Entorno de configuración PuTTY.........................................................78
Ilustración 34 Configuración usuario root de MySQL.................................................83
Ilustración 35 Instalación de MySQL...........................................................................85
Ilustración 36 Página de acceso a PhpMyAdmin........................................................88
Ilustración 37 Menú general de PhpMyAdmin............................................................89
Ilustración 38 Esquema del circuito del sensor...........................................................90
vii
CAPÍTULO 1
INTRODUCCIÓN
Desarrollo e implementacionn de una estacionn meteorolongica mediante la
plataforma hardware/software libre Raspberry Pi
2015
1. INTRODUCCION
1.1. Introducción e importancia.
El proyecto fin de carrera es una tarea obligatoria para todo aquel alumno que desee
obtener el título de ingeniero técnico. Pretende enfrentar al alumno a una actividad
de complejidad superior a la habitualmente realizada en laboratorios y prácticas de
la carrera, obligándole a un estudio bibliográfico, a la obtención de unos resultados y
a una evaluación cuantitativa de su esfuerzo.
Conlleva un enorme esfuerzo y dedicación, ya que se tiene que recoger una gran
cantidad de información y con ella desarrollar la aplicación. Hay que tener en cuenta
siempre lo aprendido durante la carrera, ya que servirá de gran ayuda para la
consecución de los objetivos del proyecto. Además, se debe de investigar para
mejorar siempre los conocimientos obtenidos.
Como se introducía en el resumen, la idea de partida para el desarrollo del proyecto
se basa en el diseño de una plataforma de control y monitoreo de la temperatura y
humedad por medio de una aplicación web. La intención desde un principio era
llegar a montar nuestra propia estación meteorológica, a través de la cual
pudiésemos llegar a llevar un control a distancia de la humedad y temperatura de
una zona dada y, dependiendo del caso, predecir cambios climáticos que se
pudieran dar.
2
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 computación (SBC) de bajo coste desarrollada en
Reino Unido por la Fundación Raspberry Pi, con el objetivo de estimular la
enseñanza de ciencias de la computación en las escuelas.
En realidad, se trata de una diminuta placa base de 85 x 54 milímetros (del tamaño
aproximado de una tarjeta de crédito) 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 sólo 256MB de RAM).
Raspberry Pi utiliza tarjetas de memoria SD o microSD como medio de
almacenamiento necesario para su funcionamiento. Además 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 más estética.
En función del modelo que escojamos, dispondremos de más o menos opciones de
conexión, 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 ratón.
3
Desarrollo e implementacionn de una estacionn meteorolongica mediante la
plataforma hardware/software libre Raspberry Pi
2015
En cuanto a la conexión 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 inalámbrico 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 ratón.
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 características muy interesantes. En su corazón 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 garantía, un procesador gráfico VideoCore IV, y 512MB de
memoria RAM. La última Raspberry Pi 2 cuenta con 1GB de memoria RAM. Todo
ello equivale en la práctica a un ordenador con unas capacidades gráficas similares
a la XBOX de Microsoft y con la posibilidad de reproducir vídeo en 1080p.
En la placa nos encontramos además con una salida de vídeo y audio a través de un
conector HDMI, con lo que conseguiremos conectar la tarjeta tanto a televisores
como a monitores que cuenten con dicha conexión. En cuanto a vídeo se refiere,
4
Ilustración 1 RaspBerry Pi Modelo B
Desarrollo e implementacionn de una estacionn meteorolongica mediante la
plataforma hardware/software libre Raspberry Pi
2015
también cuenta con una salida de vídeo compuesto y una salida de audio a través
de un minijack. Posee una conexión ethernet 10/100 y, si bien es cierto que podría
echarse en falta una conexión Wi-Fi, gracias a los dos puertos USB incluidos
podremos suplir dicha carencia con un adaptador WIFI si lo necesitamos.
Los puertos tienen una limitación de corriente, por lo que si queremos conectar
discos duros u otro dispositivos habrá que hacerlo a través de un hub USB con
alimentación. 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 más (clase 4 o
clase 10). De esta forma tenemos también la posibilidad de minimizar el espacio que
necesitamos para tener todo un ordenador en un volumen mínimo.
5
Desarrollo e implementacionn de una estacionn meteorolongica mediante la
plataforma hardware/software libre Raspberry Pi
2015
Raspberry Pi
Compute Module
Raspberry Pi
Model A+
Raspberry Pi
Model B+
Raspberry Pi 2
Model B
Precio * $25 USD $20 USD $25 USD $35 USD
SoC BCM2835 BCM2835 BCM2835 BCM2836
Fabricante Broadcom Broadcom Broadcom Broadcom
CPU ARM1176JZF-S ARM1176JZF-S ARM1176JZF-S ARM Cortex-A7
Instrucciones ARMv6 ARMv6 ARMv6 ARMv7
Cores Single-core Single-core Single-core Quad-core
Velocidad ** 700MHz 700MHz 700MHz 900MHz
RAM 512MB 256MB 512MB 1GB (1024MB)
Almacenamiento 4GB eMMC flash
internos
MicroSD slot MicroSD slot MicroSD slot
GPU 250MHz Broadcom
VideoCore IV
250MHz
Broadcom
VideoCore IV
250MHz
Broadcom
VideoCore IV
250MHz
Broadcom
VideoCore IV
Conexiones 200-pin tipo DDR2
SO-DIMM
HDMI
1x USB2 port
40 GPIO pins
MIPI camera
connector
MIPI display DSI
Vídeo compuesto
(PAL y NTSC) vía
3.5 mm TRRS jack
compartido con
audio estéreo
HDMI
4x USB2 ports
10/100 Ethernet
40 GPIO pins
MIPI camera
connector
MIPI display DSI
Vídeo compuesto
(PAL y NTSC) vía
3.5 mm TRRS jack
compartido con
audio estéreo
HDMI
4x USB2 ports
10/100 Ethernet
40 GPIO pins
MIPI camera
connector
MIPI display DSI
Vídeo compuesto
(PAL y NTSC) vía
3.5 mm TRRS jack
compartido con
audio estéreo
Largo: 6.8cm
Ancho: 3cm
Peso: 7g
Largo: 6.5cm
Ancho: 5.7cm
Peso: 23g
Largo: 8.6cm
Ancho: 5.7cm
Peso: 45g
Largo: 8.6cm
Ancho: 5.7cm
Peso: 45g
Alimentación 5 V a 2A micro USB 5 V a 2A micro
USB
5 V a 2A micro
USB
5 V a 2A micro
USB
Tabla 1 Comparativa de modelos RaspBerry Pi
* Precio oficial antes de impuestos ** Velocidad oficial sin overclocking
6
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 expansión 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 tensión de trabajo del puerto es de 3,3v para un uno y 0v para un
0. Además, la corriente máxima 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 señal a 5V a través de los GPIO es probable que después nuestra
Raspberry Pi sólo sirva como pisapapeles.
Todos los pines GPIO se pueden gestionar directamente a través de código, ya sea
para poner un valor o leer un valor de un elemento externo.
Además, 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:
Ilustración 2 Número de pines según el modelo de RaspBerry Pi
7
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 ningún 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 página oficial, de la Fundación Raspberry Pi, todo el software necesario
para la instalación en la tarjeta, o bien recurrir a algún programa que haga esto por
nosotros.
Entre estos programas encontramos BerryBoot, un programa que se encarga de
todo el trabajo de instalación 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 descargándolo
desde internet.
Otra opción también muy interesante es Noobs, una aplicación que facilita la
instalación de diversas distribuciones Linux. Noobs hace innecesario el acceso a
Internet durante la instalación en su versión Full. Tan sólo tendremos que descargar
Noobs y descomprimirlo en una tarjeta SD / MicroSD de al menos 4GB de
capacidad. Al hacerlo se nos dará la opción de instalar soluciones como Raspbian,
Arch Linux, RaspBMC, Pidora u OpenELEC sin problemas.
NOOBS es un acrónimo de New Out Of
Box Software y básicamente consiste en el
instalador que podéis ver en la imagen más
abajo. El software se instala en cualquier
tarjeta SD / microSD con un mínimo de 4
GB de espacio y no necesita conexión a
Internet para ser utilizado. La elección que
se haga se instalará automáticamente en el
espacio libre de la tarjeta y ya solo es
cuestión de reiniciar y usar.
8
Ilustración 3 Menu de instalación de NOOBS
Desarrollo e implementacionn de una estacionn meteorolongica mediante la
plataforma hardware/software libre Raspberry Pi
2015
Como podéis 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 también un método
de edición rápida de la configuración del nuevo sistema, un navegador web
preinstalado (Arora) para consultar en el momento cualquier información en línea y,
atención porque esto es lo más interesante, un modo de recuperación por línea de
comandos a partir de una partición de rescate que se crea automáticamente.
BerryBoot es un gestor de arranque
Open Source desarrollado en Qt que
permite ser instalado además 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).
Además de los Sistemas Operativos que
incluye por defecto, ofrece la posibilidad de instalar cualquier otra distribución,
permite la instalación remota mediante un cliente VNC. Sólo hay que añadir una
nueva línea en el fichero cmdline.txt indicando la IP local para nuestra Raspberry Pi,
máscara de red y puerta de enlace. Si tu televisión dispone del protocolo CEC
puedes utilizar el mando a distancia para moverte por los menús de la instalación.
Además BerryBoot también permite clonar particiones y realizar copias de seguridad
de los sistemas instalados.
9
Ilustración 4 Menú instalación de BerryBoot
Desarrollo e implementacionn de una estacionn meteorolongica mediante la
plataforma hardware/software libre Raspberry Pi
2015
Sistemas Operativos
Raspbian es, quizás, la distribución Linux
más 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 través de
la Pi Store, la tienda de aplicaciones de
Raspberry Pi, podremos acceder a
múltiples aplicaciones tanto gratuitas como
de pago y, por ejemplo, podremos instalar LibreOffice.
Pidora se trata de una versión de Fedora para microprocesadores ARM. Así que
puede ser una buena alternativa a la anterior, aunque no cuenta con tanto apoyo.
Moebius es otra distribución de propósito general que podemos encontrar para
Raspberry Pi. Se caracteriza por ser
extremadamente ligera, lo cual es de
agradecer, y también por otro detalle curioso:
tiene el servicio SSH activado por defecto.
Arch Linux ARM es una conocida
distribución Linux que también 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
portátil o de sobremesa ya trabajas con
10
Ilustración 5 Escritorio Raspbian
Ilustración 6 Acceso SSH de Moebius
Ilustración 7 Escritorio de Arch Linux
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 actualización es Rolling Release
Model (con actualizaciones periódicas, en vez de cambios bruscos).
arkOS es una distribución 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
externo, por ejemplo) y, por supuesto, una tarjeta SD con la distribución. Este
proyecto acaba de arrancar y, por ahora, Genesis (que es el nombre de su primera
versión) 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, Diáspora e, incluso,
calendarios compartidos.
OpenELEC (Open Embedded Linux
Entertainment Center) es una
distribución 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
reproductor multimedia de bajo coste con una distribución especialmente optimizada
para este tipo de tareas y con un interfaz orientado también a hacernos sencillo su
manejo.
11
Ilustración 8 Logotipo de arkOS
Ilustración 9 Entorno gráfico de OpenELEC
Desarrollo e implementacionn de una estacionn meteorolongica mediante la
plataforma hardware/software libre Raspberry Pi
2015
PiMAME es una distribución que
transformará nuestra Raspberry Pi en
una máquina arcade; concretamente,
esta distribución nos ofrece
emuladores como MAME y algunos
otros emuladores de consolas clásicas
como Neo Geo, PlayStation, Super NES
o Atari 2600. La distribución se apoya en Raspbian pero, cara al usuario, pone las
cosas muy sencillas e implementa un servidor FTP para que nos sea fácil 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
distribución orientada a media center
que nos permite conectar nuestra
Raspberry Pi a la televisión y disfrutar
de series y películas. XBian se apoya
sobre XBMC para desarrollar una
distribución especialmente optimizada
para las funcionalidades de media
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 distribución que se
apoya en dos pilares básicos, Debian y
XBMC. Asi podrás tener un Media
Center en tu TV o transformar tu tele en
12
Ilustración 10 PiMAME, distribución
orientada a juegos retro.
Ilustración 11 Entorno gráfico de xBian
Ilustración 12 Entorno gráfico 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 compañía
que desarrolló los ARM. Por eso está
especialmente creado y optimizado para
esta arquitectura. Es bastante rápido,
pero por el contrario no cuenta con tanto
software y apoyo.
Esta es una lista no oficial de Sistemas Operativos que funcionan, se han portado, o
están en proceso de ser portados a Raspberry Pi:
- AROS
- Android
- Arch Linux ARM
- Debian Whezzy Soft-Float, versión de Debian sin soporte para coma flotante
por hardware
- Firefox OS
- Gentoo Linux
- Google Chromium OS
- Open webOS
- PiBang Linux , distribución Linux derivada de Raspbian con diferente
escritorio y aplicaciones
- Pidora, versión Fedora Remix optimizada
- QtonPi, distribución linux con un framework de aplicaciones multiplataforma
basado en Qt framework
- Raspbian, versión de Debian Wheezy para ARMv6 con soporte para coma
flotante por hardware
- Slackware ARM, también conocida como ARMedslack
- Plan 9 from Bell Labs
- RISC OS 5
- FreeBSD
- NetBSD
13
Ilustración 13 Risc OS.
Desarrollo e implementacionn de una estacionn meteorolongica mediante la
plataforma hardware/software libre Raspberry Pi
2015
- Moebius, distribución 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 versión de Puppy Linux (Puppi) para ARMv6
(sap6) específicamente 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 señal de salida es digital, por lo
tanto, lo tendremos que conectar a pines digitales.
Llevan un pequeño microcontrolador interno para hacer el tratamiento de señal.
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 operación es menor en el
DHT11 que en el DHT22, sin embargo, el DHT22 tiene rangos de medida más
amplios y mayor resolución, a cambio de resultar algo más caro.
Ambos sensores están calibrados en laboratorio y tienen una buena fiabilidad.
14
Desarrollo e implementacionn de una estacionn meteorolongica mediante la
plataforma hardware/software libre Raspberry Pi
2015
Ilustración 14 Sensor DHT11 Ilustración 15 Sensor DHT22
Características de cada uno de los sensores:
Parámetro DHT11 DHT22
Alimentación 3Vdc ≤ Vcc ≤ 5Vdc 3.3Vdc ≤ Vcc ≤ 6Vdc
Señal de Salida Digital Digital
Rango de medida
Temperatura
De 0 a 50 °C De -40°C a 80 °C
Precisión Temperatura ±2 °C <±0.5 °C
Resolución Temperatura 0.1°C 0.1°C
Rango de medida Humedad De 20% a 90% RH De 0 a 100% RH
Precisión Humedad 4% RH 2% RH
Resolución Humedad 1%RH 0.1%RH
Tiempo de respuesta 1s 2s
Tamaño 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 precisión 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 comunicación y sincronización entre MCU y
el sensor. El proceso de comunicación es de 4 ms aproximadamente.
15
Desarrollo e implementacionn de una estacionn meteorolongica mediante la
plataforma hardware/software libre Raspberry Pi
2015
Ilustración 16 Comunicación con el sensor
Una transmisión de datos completa es de 40 bits. Donde obtenemos la temperatura
y la humedad.
Los 5 bytes recibidos serán 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 información recibida es correcta, y se
calcula sumando los 4 bytes anteriores y quedándonos sólo con los 8 bits menos
significativos del resultado. Cada uno de los bits se envía siguiendo esta estructura.
Cuando el sensor va a enviar un bit, siempre tira la línea abajo durante 50us, y luego
la levanta durante 26-28us para señalizar 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
Ilustración 17 Transmisión de la información
Ejemplo:40 bits recibidos:
0000 0010 1001 0010 0000 0001 0000 1101 1010 0010
High humidity 8 Low humidity 8 High temp. 8 Low temp. 8 Parity bit
Cálculo:
0000 0010+1001 0010 +0000 0001+0000 1101= 1010 0010(Parity bit)
Datos recibidos correctamente:
Humedad:0000 0010 1001 0010 = 0292H (Hexadecimal)= 2×256 + 9×16 + 2 = 658
=> Humidity= 65.8%RH
Temp.:0000 0001 0000 1101 = 10DH(Hexadecimal) = 1×256 + 0×16 + 13 = 269
=> Temp.= 26.9°C
17
Desarrollo e implementacionn de una estacionn meteorolongica mediante la
plataforma hardware/software libre Raspberry Pi
2015
18
Desarrollo e implementacionn de una estacionn meteorolongica mediante la
plataforma hardware/software libre Raspberry Pi
2015
CAPÍTULO 2
ESTADO DE LA
CUESTIÓN
19
Desarrollo e implementacionn de una estacionn meteorolongica mediante la
plataforma hardware/software libre Raspberry Pi
2015
20
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 realización de este Proyecto detallo a continuación los conocimientos
adquiridos a lo largo de la carrera y que me facilitaron el desarrollo de este.
1) Conocimientos de informática 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 Ofimáticas
7) Conocimientos de diseño y edición gráfica
8) Conocimientos de entornos web
9) Conocimientos de sistemas operativos engeneral
10)Conocimientos en seguridad web
11)Aptitudes en el tratamiento y obtención documental de la información en
entornos informáticos.
Asignaturas cursadas como Sistemas Operativos, Redes de Computadores,
Administración de Servidores Web, Metodología de la programación, Ingeniería 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
autónomo, 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 académicos. Más adelante se comenzaron a utilizar
como sistemas de cómputo empotrados presentes en lugares con necesidades de
menor potencia, mayor versatilidad y menor volumen. El ejemplo más 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 autónoma.
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 propósito general y de dispositivos de almacenamiento
masivo, aunque esto último ya está actualmente resuelto. Las tarjetas basadas en
microcontroladores enfatizan el control y la adquisición de datos o medidas a través
de entradas y salidas analógicas/digitales, mientras que el sistema con
microprocesadores suele apoyarse más en la implementación interna o de
ejecución, más que en las funciones externas. Los sistemas microcontrolados
poseen generalmente multitud de entradas y salidas para el control de magnitudes
físicas, áreas de prototipo para conexiones de otros dispositivos y la posibilidad de
conectar otras tarjetas de expansión mediante protocolos de comunicación
configurables por el usuario. Sin embargo es complejo realizar tareas que con los
sistemas microprocesadores actuales es tarea sencilla gracias a la utilización de
Linux. Una plataforma de microcontrolados de renombre es Arduino. Algunas de las
arquitecturas más utilizadas en estas tarjetas son: Intel 8048, Atmel AVR, PIC y
ARM. Hoy en día, tras la irrupción de la Raspberry Pi, los sistemas
microprocesadores son baratos y de relativa facilidad de uso para el público 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 documentación disponible sin ningún coste. También hay
que destacar que, gracias a la compatibilidad con Linux y con los lenguajes de
programación de alto nivel facilitan enormemente la abstracción del hardware por
parte del usuario, llegando a ser transparente para poder centrar sus esfuerzos en
plasmar sus ideas. Todas estas características mencionadas contribuyen a que este
tipo de tarjetas se estén convirtiendo en unas plataformas muy atractivas para los
desarrolladores, atrayendo incluso a colectivos ajenos a la programación como
artistas, diseñadores 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 electrónica de código abierto (open-source)
basada en hardware y software flexibles y fáciles de usar. Está pensado para
artistas, diseñadores, como hobby y para cualquiera interesado en crear objetos o
entornos interactivos.
Arduino puede sentir el entorno mediante la recepción 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
autónomos o se pueden comunicar con software en ejecución 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 diseños de referencia del hardware (archivos
CAD) están disponibles bajo licencia open-source, por lo que eres libre de
adaptarlas a tus necesidades.
Arduino recibió una mención honorífica en la sección 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
Ilustración 18 Placa Arduino Uno
2.2.2 Cubieboard
Se trata también de un sistema SBC (Single Board Computer). Estas son sus
características principales:
 Procesador ARM Allwinner A10/Cortex-A8, a 1 Ghz y 256 KB de caché L2
 Tarjeta gráfica 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 vídeo 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 centímetros de tamaño dan para mucho. El procesador Allwinner A10
está basado en la arquitectura ARM, como el de la Raspberry, pero es mucho más
potente que el de ésta (un 120% más, 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; además añade algo
único en estas miniplacas, un puerto SATA para conectar discos duros; y por último,
incluye un sensor de infrarrojos.
Ilustración 19 Placa Cubieboard
Aunque lleva el sistema Android preinstalado, es posible instalar también otros
sistemas operativos basados en Linux: Linaro (una versión 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 también el
software disponible para ésta.
2.2.3 BeagleBone Black
Características.
 Procesador: AM335x 1GHz ARM® Cortex-A8
25
Desarrollo e implementacionn de una estacionn meteorolongica mediante la
plataforma hardware/software libre Raspberry Pi
2015
 Memoria RAM: 512MB DDR3
 Tarjeta Gráfica: SGX530 aceleradora 3D
 Vídeo: 1280 x 1024
 Salida de Vídeo:
 mini HDMI
 Salida de Audio:
 por HDMI
 Tarjeta de red:
 Ethernet 10/100Mbps conexión RJ-45 Jack
 USB:
 1 entradas USB 2.0 de tamaño estándar para conectar periféricos y
almacenamiento. Tipo USB Host
 1 entrada USB 2.0 de tamaño micro USB para alimentación y
programación. Tipo Client Port
 Almacenamiento: memoria interna de 2GB eMMC y ampliable por el puerto USB
o por tarjeta micro SD
 Alimentación: por mini USB o por conexión 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 analógicas, 4 serie, 2 SPI, 2 I2C, 8
PWM, 4 timers, …
 Caja: sin caja
 Tamaño 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 envío
Ilustración 20 BeagleBone Black
2.3 Conocimientos adquiridos de la investigación bibliográfica
Los conocimientos adquiridos en la investigación bibliográfica han sido muy
variados. Desde las múltiples posibilidades que tiene la placa RaspBerry Pi,
conocimiento de sus múltiples sistemas operativos, la gran cantidad de proyectos
basados en esta placa, utilización montaje y funcionamiento de diferentes tipos de
sensores, hasta la creación de diferentes scripts en diferentes lenguajes.
2.4 Problemas existentes.
Los problemas actuales de las estaciones meteorológicas 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 estación
meteorológica 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 estación meteorológica también nos facilita la
obtención de piezas de repuesto incluso la ampliación modular de la misma, ya que
somos nosotros los que controlamos todo el Hardware de la estación. Podemos ir
ampliándole gradualmente el número y el tipo de sensores, incluso tener varias
estaciones meteorológicas 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 instalación se hace imprescindible
disponer de un monitor o televisor con entrada HDMI, un ratón y un teclado.
Hablar de RaspBerry Pi es hablar de RaspBian, el sistema operativo basado en
Debian. Por tanto para sacarle el máximo provecho a nuestra placa estaremos
limitados al uso de este sistema operativo ya que no disponemos de otro software
compatible con RaspBerry Pi que desempeñe una función más específica para
nuestros intereses.
Otro punto negativo es el limitado número de puertos de nuestro modelo de placa.
2.5 Análisis 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 podríamos realizar. A todo esto hay que sumarle su pequeño tamaño,
su bajo consumo eléctrico, su autonomía, su acceso wifi…
28
Desarrollo e implementacionn de una estacionn meteorolongica mediante la
plataforma hardware/software libre Raspberry Pi
2015
Su potencial no está sólo en el producto sino en el precio, lo que permite que llegue
a más gente sin distinción por temas económicos, lo que implica una mayor
comunidad y, por tanto un mayor número de ideas. De hecho, el gran punto fuerte de
la RaspBerry Pi es su comunidad de usuarios, una comunidad que cada vez es más
amplia y crece de forma exponencial.
Este aumento en número de usuarios también está implicando un mayor número de
empresas que se dedican a desarrollar software o hardware para esta plataforma,
por lo que cada vez hay mayor número de periféricos.
29
Desarrollo e implementacionn de una estacionn meteorolongica mediante la
plataforma hardware/software libre Raspberry Pi
2015
CAPÍTULO 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 estación meteorológica para llevar
una monitorización en tiempo real de la humedad y temperatura de la zona
donde se encuentre el dispositivo.
 Instalación sencilla. La instalación 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 conexión de varios sensores simultáneos. Un único sistema
centralizado debe permitir la recopilación y monitorización de datos de
múltiples sensores.
 Posibilidad de pre-procesar datos. Las magnitudes recogidas podrán y
deberán ser tratadas antes de ser mostradas y almacenadas. Deberemos
verificar que las lecturas son correctas.
 Capacidad de representación posterior de los datos obtenidos. Con los datos
obtenidos regularmente el usuario tiene que poder visualizar en tiempo real
las medidas y también acotar el historial de medidas a lo largo de un intervalo
de tiempo representando tanto gráficamente como en tablas de datos, para
así tener una visión más global de las variaciones de temperatura.
31
Desarrollo e implementacionn de una estacionn meteorolongica mediante la
plataforma hardware/software libre Raspberry Pi
2015
CAPÍTULO 4
HIPÓTESIS 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:
 Portátil Asus A53S
 Televisor Haier LT26K1 26 pulgadas con HDMI
 RaspBerry Pi Modelo B
 Teclado y Ratón 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
2015
Software
 Windows 7
 Linux lite (basado en Ubuntu)
 Ms-Word
 Putty
 RaspBian
 Win32Disckimager
 Notepad++
 PeaZip (descompresor de archivos)
 Tom’s Planner (Diagramas de Gantt)
Lenguajes de programación.
 ShellScript
 Lenguajes C y Python.
 PHP
 MySQL
 HTML y CSS
34
Desarrollo e implementacionn de una estacionn meteorolongica mediante la
plataforma hardware/software libre Raspberry Pi
2015
CAPÍTULO 5
METODOLOGÍA 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 Introducción
A continuación explicaremos paso a paso tanto la metodología como la
implementación del desarrollo a nivel práctico del Proyecto Final de Carrera.
La metodología 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, Elaboración, Construcción y
Transición. 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 añade 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 clásico o en cascada: Análisis de
requisitos, Diseño, Implementación y Prueba. Aunque todas las iteraciones suelen
incluir trabajo en casi todas las disciplinas, el grado de esfuerzo dentro de cada una
de ellas varía a lo largo del proyecto.
Comenzaremos con la planificación, 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 consecución de este proyecto.
Posteriormente, en la parte de diseño 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 más conocido de la actualidad.
Es un lenguaje gráfico para visualizar, especificar, construir y documentar un
sistema.
Por último, tras la finalización de las fases anteriores, se procederá con el desarrollo
e implementación del proyecto.
36
Desarrollo e implementacionn de una estacionn meteorolongica mediante la
plataforma hardware/software libre Raspberry Pi
2015
5.2 Planificación
Como hemos comentado anteriormente, la planificación de un proyecto nos expone
el alcance del mismo y las fases por las que pasa. La herramienta que usaremos
para exponer la planificación del proyecto es el diagrama de Gantt.
El diagrama de Gantt es una útil herramienta gráfica cuyo objetivo es exponer el
tiempo de dedicación 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 podría
especificar 7 fases
Ilustración 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.
Ilustración 22 Diagrama de Gantt real
 El comienzo del proyecto se efectúa el 13-05-2015.
37
Desarrollo e implementacionn de una estacionn meteorolongica mediante la
plataforma hardware/software libre Raspberry Pi
2015
 La planificación del proyecto ha requerido de unos 9 días en los que se
propuso una serie de etapas y de pautas con sus respectivos tiempos, que se
ha intentado cumplir.
 La búsqueda de información ha sido constante debido a que era la primera
vez que trataba con diferentes tipos de sensores y placas, y el método
heurístico seguido de ensayo y error (o prueba y error) hacían de la búsqueda
de información algo cotidiano.
 El análisis de los requisitos empieza tras haber estudiado las posibilidades
con las que se cuenta para el desarrollo del sistema, así como sus
limitaciones. Su duración ha sido de unos 6 días.
 El diseño conceptual comienza tras finalizar los análisis de requisitos. Nos
llevará aproximadamente unos 3 días.
 La implementación del proyecto. Esta fase comienza al llegar a la conclusión
el diseño conceptual. Se procederá con la instalación y cableado de los
sensores, montaje de la RaspBerry Pi, Instalación del sistema operativo
Rasbian, drivers, programación de scrips, instalación del servidor web y Base
de datos, WordPress... Es una fase realmente extensa y ocupará unos 60
días.
 El periodo de pruebas se ha realizado casi paralelamente con la
implementación del proyecto, debido a que cuando se localizaban errores, se
procedía a la reprogramación y resolución de dicho fallo. Su duración es de
unos 20 días aproximadamente (el principio de la implementación no tuvo
muchos problemas).
 La documentación es una fase que no me esperaba que fuese tan larga y
tediosa. Coincide con la fase de pruebas e implementación para poder
realizar las capturas necesarias de estos procesos. La documentación ha
ocupado unos 60 días.
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: cálculos,
detalles técnicos, manipulación de datos y otras funcionalidades específicas que
muestran como los casos de uso serán llevados a la práctica. En ingeniería del
software, un caso de uso es una técnica para la captura de requisitos potenciales de
un nuevo sistema o una actualización de software. Cada caso de uso proporciona
uno o más escenarios que indican cómo debería interactuar el sistema con el
usuario o con otro sistema para conseguir un objetivo específico.
Ilustración 23 Diagrama de Casos de Uso
Definición de Actores
Tabla 3 Casos de uso de Ingeniero Software
Actor-01 Ingeniero Sofware
Descripció
n
Actor que accede al sistema operativo de la estación meteorológica a
través de acceso remoto por SSH
39
Desarrollo e implementacionn de una estacionn meteorolongica mediante la
plataforma hardware/software libre Raspberry Pi
2015
Comentario 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
aplicación web.
Comentario Con este tipo de acceso, se puede cambiar casi cualquier aspecto de
la web, desde idiomas soportados, SEO, tema de la página, tipos de
gráficas.. así como la gestión 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 página online de la
estación meteorológica pero no se han identificado.
Comentario Con este tipo de credenciales, los usuarios solo podrán 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 Descripción de requisitos Encender estación
Sistema Estación meteorológica
Caso de uso Encender estación
Actores Ingeniero Software
Descripción El sistema (la Raspberry Pi) es conectada a una fuente de alimentación .
Estímulo Estar apagada.
Respuesta Se carga el sistema operativo y con él toda la estación meteorológica
Comentarios No procede.
Tabla 7 Descripción de requisitos Apagar estación
Sistema Estación meteorológica
Caso de uso Apagar estación
Actores Ingeniero Software
Descripción El sistema (la Raspberry Pi) es apagado mediante acceso remoto con el
comando shutdown .
Estímulo Estar encendida.
Respuesta Se apaga la RaspBerry Pi y con ella toda la estación meteorológica
Comentarios No procede.
Tabla 8 Descripcion de requisitos Reconfigurar
Sistema Estación meteorológica
Caso de uso Reconfigurar
Actores Ingeniero Software
Descripción El ingeniero Software cambia la configuración de los parámetros de los
sensores, base de datos, script o de cualquier archivo que crea oportuno .
Estímulo Necesitar una reparación 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 Descripción de requisitos Acceso
Sistema Estación meteorológica
Caso de uso Acceso remoto
Actores Ingeniero Software
Descripción Se accede a la RaspBerry Pi desde internet .
Estímulo Estar conectado a internet.
Respuesta Se le permite acceso o no a todo el sistema operativo de la RaspBerry
Comentarios No procede.
Tabla 10 Descripción de requisitos Testear
Sistema Estación meteorológica
Caso de uso Testear
Actores Ingeniero Software
Descripción Se ejecutan diferentes scripts para testear el estado de la estación .
Estímulo Conectarse a la estacción.
Respuesta Indicará si está todo correcto o falla algo.
Comentarios No procede.
Tabla 11 Descripción de requisitos Cambiar Diseño
Sistema Estación meteorológica
Caso de uso Cambiar diseño web
Actores Administrador web
Descripción El administrador accede al back office de WordPress desde donde puede
realizar los cambios pertinentes
Estímulo Tener acceso al BackOffice
Respuesta Cambia el diseño
Comentarios No procede.
Tabla 12 Descripción de requisitos Publictar Gráfica
Sistema Estación meteorológica
Caso de uso Publicar Gráfica
Actores Administrador web
Descripción El Administrador web puede publicar nuevas gráficas de diferentes días .
Estímulo Acceder al BackOffice.
Respuesta Aparecen nuevas gráficas
Comentarios No procede.
42
Desarrollo e implementacionn de una estacionn meteorolongica mediante la
plataforma hardware/software libre Raspberry Pi
2015
Tabla 13 Descripción de requisitos Editar Gráfica
Sistema Estación meteorológica
Caso de uso Editar Gráfica
Actores Administrador web
Descripción El Administrador web puede editar gráficas ya creadas .
Estímulo Acceder al BackOffice.
Respuesta Cambian las gráficas
Comentarios No procede.
Tabla 14 Descripción de requisitos Testear
Sistema Estación meteorológica
Caso de uso Testear
Actores Administrador web
Descripción Desde el BackOffice tiene todas las herramientas para comprobar y cambiar el
estado de la web .
Estímulo Acceder al BackOffice.
Respuesta Mejora la web.
Comentarios No procede.
Tabla 15 Descripción de requisitos Ver Gráficas
Sistema Estación meteorológica
Caso de uso Ver diferentes gráficas
Actores Usuario web
Descripción Cualquier usuario (a menos que no lo cambie el administrador web) tiene
acceso a las gráficas .
Estímulo Acceder a la url de la web
Respuesta Observar las gráficas
Comentarios No procede.
43
Desarrollo e implementacionn de una estacionn meteorolongica mediante la
plataforma hardware/software libre Raspberry Pi
2015
5.4 Implementación
Después de planificar todo el proceso y definir conceptualmente la aplicación,
pasaremos a la fase de implementación de la estación meteorológica.
Descargamos el sistema operativo Raspbian desde la sección de descargas de la
web oficial de la fundación RaspBerry Pi, https://www.raspberrypi.org/ ya que es el
sistema operativo soportado oficialmente por la fundación. En nuestro caso
descargamos la última versión, “2015-05-05-raspbian-wheezy.zip”, que data de mayo
del 2015.
Ilustración 24 Página 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
distribución Raspbian.
Ahora descargamos el programa Win32 Disk Imager desde sourceforge.net
(http://sourceforge.net/projects/win32diskimager/files/latest/download).
Ilustración 25 Página 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).
Ilustración 26 Proceso de instalación de Win32DiskImager
Estando ya instalado el programa, introducimos una tarjeta SD en el ordenador de
un tamaño de 4Gb como mínimo 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 botón “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 ratón 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 alimentación, se enciende la Raspberry Pi y se inicia por
primera vez Raspbian, entrando automáticamente en raspi-config, para proceder a
su configuración.
Ilustración 27 Raspbian arrancando por primera vez
Configuración de Raspbian.
Expandimos la partición de Rasbian hasta ocupar la capacidad de la SD con la
primera opción que nos aparece en el menú de configuración (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 imágenes 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 más grande, 8 GB en éste
caso, el resto del espacio estará sin utilizar. Al usar esta opción del menú de
configuración Raspbian aprovechará todo el espacio restante de la tarjeta.
En la segunda opción cambiamos la contraseña del usuario pi. Esto es muy
recomendable ya que vamos a exponer la RaspBerry Pi a internet y podrían acceder
a ella fácilmente.
En la tercera opción elegimos de qué modo queremos que se inicie Raspbian.
Elegimos la opción de escritorio gráfico.
49
Desarrollo e implementacionn de una estacionn meteorolongica mediante la
plataforma hardware/software libre Raspberry Pi
2015
En la cuarta opción es donde elegimos nuestro idioma y nuestra localización.
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
2015
Ahora elegimos la zona horaria.
51
Desarrollo e implementacionn de una estacionn meteorolongica mediante la
plataforma hardware/software libre Raspberry Pi
2015
52
Desarrollo e implementacionn de una estacionn meteorolongica mediante la
plataforma hardware/software libre Raspberry Pi
2015
En la configuración del teclado seleccionamos Other > Spanish > Spanish.
53
Desarrollo e implementacionn de una estacionn meteorolongica mediante la
plataforma hardware/software libre Raspberry Pi
2015
54
Desarrollo e implementacionn de una estacionn meteorolongica mediante la
plataforma hardware/software libre Raspberry Pi
2015
Ahora configuramos algunas teclas del teclado.
En la opción 8 tendremos las opciones avanzadas de configuración.
55
Desarrollo e implementacionn de una estacionn meteorolongica mediante la
plataforma hardware/software libre Raspberry Pi
2015
En la segunda opción 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
2015
Muy importante es activar el acceso SSH.
57
Desarrollo e implementacionn de una estacionn meteorolongica mediante la
plataforma hardware/software libre Raspberry Pi
2015
58
Desarrollo e implementacionn de una estacionn meteorolongica mediante la
plataforma hardware/software libre Raspberry Pi
2015
Por último reiniciamos la RaspBerry Pi
Después de unos minutos nos aparecerá el escritorio de Raspbian.
Ahora conectamos el adaptador wifi, y desconectamos el cable de red.
59
Desarrollo e implementacionn de una estacionn meteorolongica mediante la
plataforma hardware/software libre Raspberry Pi
2015
Ilustración 28 Adaptador WiFi
Configuración de nuestra red WiFi.
Nos conectamos a nuestra red WiFi.
Introducimos la contraseña de la wifi ypara poder conectarnos a ella.
Como podemos observar, nos hemos conectado sin problema a internet.
60
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
Ilustración 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
2015
Y nos descargamos el archivo.
Y lo guardamos en el escritorio por ejemplo.
Una vez descargado lo ejecutamos.
63
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 botón “Open”.
Nos aparecerá un mensaje de alerta, lo aceptamos y se nos abrirá una ventana
donde nos solicitarán el usuario y la contraseña para acceder a la RaspBerry Pi.
El usuario será “pi” y la contraseña será la que pusimos al instalar Raspbian. Si no la
cambiamos en su momento, la contraseña seguirá siendo “raspberry”.
Ilustración 30 Acceso SSH mediante PuTTY
Ahora vamos a poner la IP estática para que el router le dé siempre la misma IP a la
RaspBerry Pi. Para poder definir si la IP es estática o dinámica 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 añadimos:
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 #Contraseña 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 conexión
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 sólo 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 configuración 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 contraseña que suele venir escrita en el mismo router. En
nuestro router, un Netgear genie CG3100D tendremos que ir a Avanzado >
Configuración avanzada > Reenvio de puertos / Activación de puertos. Desde ahí
podremos realizar el redireccionamiento del puerto de acceso SSH.
Ilustración 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 página 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
Después de esto podremos acceder desde cualquier ordenador poniendo en el
PuTTY nuestra IP externa. Si nuestra IP varía cada vez que reiniciamos el router,
usaremos un servicio de DNS dinámico gratuito. En este caso hemos usado
https://www.noip.com
Nos daremos de alta en la página. Para ello necesitaremos un correo electrónico,
nombre de usuario, contraseña y nombre del dominio que deseemos darle a nuestra
IP pública, 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
Ilustración 32 Entorno de configuración PuTTY
Para comprobar que se tiene acceso desde cualquier equipo, ahora nos
conectaremos por ssh desde un equipo con una distribución 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
Instalación Servidor web.
Teniendo ya configurada la IP estática 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
Después de esto comprobamos que todo ha funcionado correctamente abriendo el
navegador y, en la barra de direcciones introduciremos la IP de nuestra Raspberry
Pi. Debería 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 dinámico en nuestra web. Para
ello ejecutaremos el siguiente comando:
sudo apt-get install php5
A continuación instalaremos unos paquetes que nos podrían 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 código 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 instalación nos pedirá datos que deberemos
apuntar ya que los necesitaremos posteriormente. Para su instalación 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
Ilustración 33 Configuración 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 parámetro -p vacio y luego nos preguntará la contraseña o poner
la contraseña junto a este parámetro para que no la pida. Si todo ha ido bien debería
salir algo parecido a esto:
Para salir pulsamos CTRL+C y seguiremos trabajando en el terminal.
Ahora instalaremos phpMyAdmin para manejar fácilmente 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 instalación nos preguntará qué tipo de servidor tenemos; marcaremos
Apache (con la barra espaciadora) y continuaremos.
Ilustración 34 Instalación de MySQL
Después nos preguntará si queremos configurar una base de datos; le diremos que
sí y nos pedira que introduzcamos la contraseña de MySQL y nos pedirá de nuevo
que introduzcamos una contraseña para phpMyAdmin.
76
Desarrollo e implementacionn de una estacionn meteorolongica mediante la
plataforma hardware/software libre Raspberry Pi
2015
Al finalizar editaremos el siguiente fichero:
sudo nano /etc/php5/apache2/php.ini
Añadiremos lo siguiente.
extension=mysql.so
77
Desarrollo e implementacionn de una estacionn meteorolongica mediante la
plataforma hardware/software libre Raspberry Pi
2015
Guardaremos el fichero y a través del navegador
introduciremos http://IPRASPBERRY/phpmyadmin/ . Deberia salir phpmyadmin. El
usuario sera root y la contraseña sera la que hayamos elegido anteriormente.
78
Desarrollo e implementacionn de una estacionn meteorolongica mediante la
plataforma hardware/software libre Raspberry Pi
2015
Ilustración 35 Página 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
Desarrollo e implementacionn de una estacionn meteorolongica mediante la
plataforma hardware/software libre Raspberry Pi
2015
Ilustración 36 Menú general de PhpMyAdmin
Desde MySQL creamos nuestra base de datos que la llamaremos MeteoDatos
Instalación 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.
Ilustración 37 Esquema del circuito del sensor
Una vez creada la Base de Datos y completado el cableado de la estación
crearemos los scripts específicos para nuestro sensor que obtendrán las lecturas de
temperatura y humedad y las almacenarán 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
También deberemos instalar ‘easy_install’ para instalar los módulos de python sin
problemas. Lo haremos con:
sudo apt-get install python-setuptools
Ahora actualizamos ‘easy_install’ con:
easy_install -U distribute
Después de esto ya podremos instalar el módulo que se encargará de guardar la
información de la lectura a la base de datos. Escribiremos
easy_install MySQL-python
Este módulo 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 combinación de python y de código 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 máximo) antes de que los
valores se lean. Después 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 automáticamente esta tabla.
Descargamos el script en Python desde github.com con
git clone https://github.com/peterkodermac/Raspberry-
Weather.git
82
Desarrollo e implementacionn de una estacionn meteorolongica mediante la
plataforma hardware/software libre Raspberry Pi
2015
Tendremos una carpeta en el directorio raíz llamada Raspberry-Weather
Dentro de esta carpeta hay varios archivos y una carpeta. El directorio ‘bcm2835-1.8’
tiene el código C, que se encarga de la obtención de información del sensor de
temperatura. El script python ‘getInfo.py’ se encarga de eso y también actualiza su
base de datos con la temperatura y la humedad. Al principio, también 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 líneas 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 varía de forma drástica 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 línea nueva al final del documento que
contendrá lo siguiente:
0,30 * * * * /usr/bin/python /home/pi/Raspberry-
Weather/getInfo.py
87
Desarrollo e implementacionn de una estacionn meteorolongica mediante la
plataforma hardware/software libre Raspberry Pi
2015
Instalación del CMS WordPress.
Para el sitio web vamos a utilizar WordPress ya que es una muy buena decisión
debido a lo fácilmente 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 extraído 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
// ** Configuración 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 contraseña
define('DB_HOST', 'localhost'); // 99% de la veces no necesitas
// cambiar este valor
Y lo guardamos como wp-config.php
Ahora comenzamos con la instalación 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:
Después 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 quedaría 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 botón que al
pincharle nos agregará el código que representará la gráfica.
91
Desarrollo e implementacionn de una estacionn meteorolongica mediante la
plataforma hardware/software libre Raspberry Pi
2015
Publicamos el post y observamos al visitar la página que aparece la gráfica.
92
Desarrollo e implementacionn de una estacionn meteorolongica mediante la
plataforma hardware/software libre Raspberry Pi
2015
CAPÍTULO 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 eléctricas y electrónicas 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 domóticos 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 estación.
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 adquisición y con
facilidad de implementación.
94
Desarrollo e implementacionn de una estacionn meteorolongica mediante la
plataforma hardware/software libre Raspberry Pi
2015
95
Desarrollo e implementacionn de una estacionn meteorolongica mediante la
plataforma hardware/software libre Raspberry Pi
2015
CAPÍTULO 7
BIBLIOGRAFÍA
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 español // 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
dinámicas, puertos, DNS // Julio 2015
[8] https://geekytheory.com/tutorial-raspberry-pi-crear-servidor-web/ // Instalación del
servidor web // Julio 2015
[9] http://www.raspberryweather.com/python-script/ // Python script y código 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 documentación. // Septiembre 2015.
[12] Proyecto fin de carrera “Raspberry Pi y Camera Board Raspi en entorno Web”
(Marzo 2015) // Autor: Antonio Ramón Martínez Jara. // Agosto 2015.
97
Desarrollo e implementacionn de una estacionn meteorolongica mediante la
plataforma hardware/software libre Raspberry Pi
2015
98
Desarrollo e implementacionn de una estacionn meteorolongica mediante la
plataforma hardware/software libre Raspberry Pi
2015
CAPÍTULO 8
ANEXOS
99
Desarrollo e implementacionn de una estacionn meteorolongica mediante la
plataforma hardware/software libre Raspberry Pi
2015
8. ANEXOS
8.1 Aplicación Móvil
Disponemos en el Market de Android (Google Play) una aplicación desde donde
poder ver nuestros reportes de humedad y temperatura. La aplicación se llama
Raspberry Weather y se puede descargar desde
https://play.google.com/store/apps/details?id=com.raspberryweather
Para que esta aplicación muestre nuestros datos deberemos de conectarnos a la
Raspberry Pi, dirigirnos a la carpeta Raspberry-Weather con cd /root/Raspberry-
Weather y descargar el código con wget
https://raw.githubusercontent.com/peterkodermac/My-weather-station-
generator/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 añadiremos a
la última línea 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 aplicación.
100

Más contenido relacionado

La actualidad más candente

Informe De Virus Y Antivirus
Informe De Virus Y AntivirusInforme De Virus Y Antivirus
Informe De Virus Y Antivirus
relajacion
 
Principios de percepcion remota
Principios de percepcion remotaPrincipios de percepcion remota
Principios de percepcion remota
Shamira Sanchez
 
How the gps system works
How the gps system worksHow the gps system works
How the gps system works
Umair Arain
 
cell phone viruses and security
cell phone viruses and securitycell phone viruses and security
cell phone viruses and security
PRIYANKA944
 

La actualidad más candente (16)

Informe De Virus Y Antivirus
Informe De Virus Y AntivirusInforme De Virus Y Antivirus
Informe De Virus Y Antivirus
 
Principios de percepcion remota
Principios de percepcion remotaPrincipios de percepcion remota
Principios de percepcion remota
 
GPS (Global Positioning System)
GPS (Global Positioning System)GPS (Global Positioning System)
GPS (Global Positioning System)
 
Introduction to Remote Sensing- by Wankie Richman
Introduction to Remote Sensing- by Wankie RichmanIntroduction to Remote Sensing- by Wankie Richman
Introduction to Remote Sensing- by Wankie Richman
 
UAV: sensors and Remote sensing techniques for the small platform
UAV: sensors and Remote sensing techniques for the small platformUAV: sensors and Remote sensing techniques for the small platform
UAV: sensors and Remote sensing techniques for the small platform
 
Introduction to spectroradiometer
Introduction to spectroradiometer Introduction to spectroradiometer
Introduction to spectroradiometer
 
remote sensing
remote sensingremote sensing
remote sensing
 
Doppler weather radar
Doppler weather radarDoppler weather radar
Doppler weather radar
 
Microwave remote sensing
Microwave remote sensingMicrowave remote sensing
Microwave remote sensing
 
How the gps system works
How the gps system worksHow the gps system works
How the gps system works
 
13-Fcst-NWP.ppt
13-Fcst-NWP.ppt13-Fcst-NWP.ppt
13-Fcst-NWP.ppt
 
GPS (GLOBAL POSITIONING SYSTEM)
GPS (GLOBAL POSITIONING SYSTEM)GPS (GLOBAL POSITIONING SYSTEM)
GPS (GLOBAL POSITIONING SYSTEM)
 
cell phone viruses and security
cell phone viruses and securitycell phone viruses and security
cell phone viruses and security
 
Gps
GpsGps
Gps
 
Global positioning system (GPS)
Global positioning system (GPS)Global positioning system (GPS)
Global positioning system (GPS)
 
Synthetic aperture radar
Synthetic aperture radarSynthetic aperture radar
Synthetic aperture radar
 

Similar a Desarrollo e implementación de una estación meteorológica mediante la plataforma hardware software libre raspberry pi alejandro gálvez morgado

TESIS_TELEF_IP-QUINTANA_DIEGO_DISENO.pdf
TESIS_TELEF_IP-QUINTANA_DIEGO_DISENO.pdfTESIS_TELEF_IP-QUINTANA_DIEGO_DISENO.pdf
TESIS_TELEF_IP-QUINTANA_DIEGO_DISENO.pdf
SANTOS400018
 
Presentación Proyecto # 54 Premio Eureka 2011 Mención Innovatividad Técnica
Presentación Proyecto # 54 Premio Eureka 2011 Mención Innovatividad TécnicaPresentación Proyecto # 54 Premio Eureka 2011 Mención Innovatividad Técnica
Presentación Proyecto # 54 Premio Eureka 2011 Mención Innovatividad Técnica
Proyecto Red Eureka
 
Proyecto ultrahouse 3000 de Andrés Farías y Walter Noello
Proyecto ultrahouse 3000 de Andrés Farías y Walter NoelloProyecto ultrahouse 3000 de Andrés Farías y Walter Noello
Proyecto ultrahouse 3000 de Andrés Farías y Walter Noello
Daniel Remondegui
 
Proyecyo final de analisis estructurado
Proyecyo final de analisis estructuradoProyecyo final de analisis estructurado
Proyecyo final de analisis estructurado
Juan Jose Flores
 
Tecnicas digitales ii proyecto ultrahouse 3000 v1
Tecnicas digitales ii proyecto ultrahouse 3000 v1Tecnicas digitales ii proyecto ultrahouse 3000 v1
Tecnicas digitales ii proyecto ultrahouse 3000 v1
Daniel Remondegui
 
dsi_tp_1515_1516_microcontroller_development_systems_es_screen.pdf
dsi_tp_1515_1516_microcontroller_development_systems_es_screen.pdfdsi_tp_1515_1516_microcontroller_development_systems_es_screen.pdf
dsi_tp_1515_1516_microcontroller_development_systems_es_screen.pdf
EloyChoque1
 

Similar a Desarrollo e implementación de una estación meteorológica mediante la plataforma hardware software libre raspberry pi alejandro gálvez morgado (20)

TESIS_TELEF_IP-QUINTANA_DIEGO_DISENO.pdf
TESIS_TELEF_IP-QUINTANA_DIEGO_DISENO.pdfTESIS_TELEF_IP-QUINTANA_DIEGO_DISENO.pdf
TESIS_TELEF_IP-QUINTANA_DIEGO_DISENO.pdf
 
Memoria domótica
Memoria domóticaMemoria domótica
Memoria domótica
 
Proyecto nuevo Ardux
Proyecto nuevo ArduxProyecto nuevo Ardux
Proyecto nuevo Ardux
 
Presentación Proyecto # 54 Premio Eureka 2011 Mención Innovatividad Técnica
Presentación Proyecto # 54 Premio Eureka 2011 Mención Innovatividad TécnicaPresentación Proyecto # 54 Premio Eureka 2011 Mención Innovatividad Técnica
Presentación Proyecto # 54 Premio Eureka 2011 Mención Innovatividad Técnica
 
Introduccion al uso_de_la_computadora_portatil
Introduccion al uso_de_la_computadora_portatilIntroduccion al uso_de_la_computadora_portatil
Introduccion al uso_de_la_computadora_portatil
 
Proyecto ultrahouse 3000 de Andrés Farías y Walter Noello
Proyecto ultrahouse 3000 de Andrés Farías y Walter NoelloProyecto ultrahouse 3000 de Andrés Farías y Walter Noello
Proyecto ultrahouse 3000 de Andrés Farías y Walter Noello
 
Carlos arteche gonzalez
Carlos arteche gonzalezCarlos arteche gonzalez
Carlos arteche gonzalez
 
Proyecto Pc Ready TecnologíA Ultra Vnc
Proyecto Pc Ready TecnologíA Ultra VncProyecto Pc Ready TecnologíA Ultra Vnc
Proyecto Pc Ready TecnologíA Ultra Vnc
 
Prueba de dominio ingenieria de software
Prueba de dominio ingenieria de softwarePrueba de dominio ingenieria de software
Prueba de dominio ingenieria de software
 
Proyecyo final de analisis estructurado
Proyecyo final de analisis estructuradoProyecyo final de analisis estructurado
Proyecyo final de analisis estructurado
 
Tecnicas digitales ii proyecto ultrahouse 3000 v1
Tecnicas digitales ii proyecto ultrahouse 3000 v1Tecnicas digitales ii proyecto ultrahouse 3000 v1
Tecnicas digitales ii proyecto ultrahouse 3000 v1
 
Ups gt000025
Ups gt000025Ups gt000025
Ups gt000025
 
Bladimir q. huaman teves. sistema operativo
Bladimir q. huaman teves. sistema operativoBladimir q. huaman teves. sistema operativo
Bladimir q. huaman teves. sistema operativo
 
raspeberry para domotica.pdf
raspeberry para domotica.pdfraspeberry para domotica.pdf
raspeberry para domotica.pdf
 
dsi_tp_1515_1516_microcontroller_development_systems_es_screen.pdf
dsi_tp_1515_1516_microcontroller_development_systems_es_screen.pdfdsi_tp_1515_1516_microcontroller_development_systems_es_screen.pdf
dsi_tp_1515_1516_microcontroller_development_systems_es_screen.pdf
 
Manual -prototipo-estacion-metereologica
Manual -prototipo-estacion-metereologicaManual -prototipo-estacion-metereologica
Manual -prototipo-estacion-metereologica
 
Trabajo de informatica
Trabajo de informaticaTrabajo de informatica
Trabajo de informatica
 
Informe tecnología
Informe tecnologíaInforme tecnología
Informe tecnología
 
Tablón de anuncios por web y móvil
Tablón de anuncios por web y móvilTablón de anuncios por web y móvil
Tablón de anuncios por web y móvil
 
Tesis
TesisTesis
Tesis
 

Último

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
FagnerLisboa3
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
241521559
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
silviayucra2
 

Último (10)

pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 

Desarrollo e implementación de una estación meteorológica mediante la plataforma hardware software libre raspberry pi alejandro gálvez morgado

  • 1. UNIVERSIDAD MIGUEL HERNÁNDEZ DE ELCHE ESCUELA POLITÉCNICA SUPERIOR DE ORIHUELA INGENIERO TÉCNICO EN INFORMÁTICA DE GESTIÓN “DESARROLLO E IMPLEMENTACIÓN DE UNA ESTACIÓN METEOROLÓGICA MEDIANTE LA PLATAFORMA HARDWARE/SOFTWARE LIBRE RASPBERRY PI” PROYECTO FIN DE CARRERA Septiembre – 2015 AUTOR: Alejandro Gálvez Morgado DIRECTOR/ES: Mª Carmen Perea Marco Fulgencio Bermejo Navarro
  • 2. 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 estación, como por ejemplo: unas cámaras frigoríficas, 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 conexión a internet con el mínimo presupuesto posible y utilizando tecnologías open source. El principal objetivo del proyecto es permitir el guardado y la gestión de los datos (humedad y temperatura) recogidos por los sensores así como mostrar los resultados en diferentes gráficas para de este modo tener un seguimiento exhaustivo de las variaciones climáticas del entorno monitoreado. Además, se hará especial hincapié en la facilidad de uso de la herramienta, haciéndola accesible a usuarios sin conocimientos técnicos. Con el fin de alcanzar dicho objetivo, se analizarán y evaluarán una serie de placas y sensores entre los cuales elegiremos los más ó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 actúan como mini-ordenadores, en nuestro caso concreto sobre RaspBerry Pi. Describiremos sus diferentes modelos y usos actuales. A nivel de implementación realizaremos la instalación y configuración del sistema operativo, sensores, drivers de sensores, servidor web, base de datos, acceso inalámbrico mediante un adaptador WiFi usb, instalación y configuración del CMS WordPress para la presentación de los datos en forma de gráficas. Por último, destacar que las herramientas y tecnologías utilizadas durante el desarrollo son gratuitas y de código libre, con lo que no requieren el pago de licencias, abaratando así el coste del proyecto. ii
  • 3. 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 comprensión que me han dado a lo largo de esta carrera y por haberme dado la oportunidad de tener unos estudios. Sin ellos no podría ver terminado este proyecto. Gracias por creer en mí cuando en algunas ocasiones ni si quiera yo creía en mí mismo. También me gustaría agradecer a Daniel, Sergio, Alfredo, José Manuel, Elisabet y Manolo el haberme metido caña, animado y apoyado en todo momento en la finalización de la carrera. No me puedo olvidar de Jordi, Guirao, Julio, Canario, Claudio, Javi, Sandra, Marietta, Pío, Hurtado, Alfredo, Amancio, Ana, Cristina, José, Lufi, Rubén... y demás compañeros de clase que me han soportado durante todos los años de la carrera. iii
  • 4. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 INDICE 1. INTRODUCCION......................................................................................................3 1.1. Introducción 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 investigación bibliográfica..............................31 2.4 Problemas existentes........................................................................................31 2.5 Análisis posibilidades uso de la RaspBerry Pi..................................................32 3. OBJETIVOS DEL TRABAJO/PROYECTO.............................................................36 4. HIPOTESIS DE TRABAJO......................................................................................40 5. METODOLOGIA Y RESULTADOS.........................................................................44 iv
  • 5. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 5.1 Introducción.......................................................................................................44 5.2 Planificación.......................................................................................................45 5.3 Diagramas UML.................................................................................................47 5.3.1 Diagrama de casos de uso.............................................................................47 5.4 Implementación.................................................................................................52 Configuración de Raspbian.....................................................................................57 Configuración de nuestra red WiFi..........................................................................69 Instalación Servidor web.........................................................................................80 Instalación del sensor de humedad y temperatura DHT22.....................................90 Instalación del CMS WordPress..............................................................................97 6. CONCLUSIONES Y PROPUESTAS.....................................................................104 7. BIBLIOGRAFIA.....................................................................................................108 8. ANEXOS................................................................................................................112 8.1 Aplicación Móvil...............................................................................................112 v
  • 6. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 INDICE DE FIGURAS Ilustración 1 RaspBerry Pi Modelo B............................................................................5 Ilustración 2 Número de pines según el modelo de RaspBerry Pi...............................8 Ilustración 3 Menu de instalación de NOOBS...............................................................9 Ilustración 4 Menú instalación de BerryBoot...............................................................10 Ilustración 5 Escritorio Raspbian.................................................................................11 Ilustración 6 Logo de Pidora........................................................................................11 Ilustración 7 Acceso SSH de Moebius........................................................................11 Ilustración 8 Escritorio de Arch Linux..........................................................................12 Ilustración 9 Logotipo de arkOS..................................................................................12 Ilustración 10 Entorno gráfico de OpenELEC.............................................................13 Ilustración 11 PiMAME, distribución orientada a juegos retro....................................13 Ilustración 12 Entorno gráfico de xBian......................................................................14 Ilustración 13 Entorno gráfico de RaspBMC...............................................................14 Ilustración 14 Risc OS.................................................................................................14 Ilustración 15 Sensor DHT11 Ilustración 16 Sensor DHT22.............................16 Ilustración 17 Comunicación con el sensor................................................................18 Ilustración 18 Transmisión de la información..............................................................19 Ilustración 19 Placa Arduino Uno................................................................................27 Ilustración 20 Placa Cubieboard.................................................................................28 Ilustración 21 BeagleBone Black................................................................................30 Ilustración 22 Diagrama de Gantt inicial.....................................................................45 vi
  • 7. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 Ilustración 23 Diagrama de Gantt real........................................................................45 Ilustración 24 Diagrama de Casos de Uso.................................................................47 Ilustración 25 Página oficial de RaspBian...................................................................52 Ilustración 26 Página de descarga de Win32 Disk Imager.........................................53 Ilustración 27 Proceso de instalación de Win32DiskImager.......................................54 Ilustración 28 Raspbian arrancando por primera vez.................................................56 Ilustración 29 Adaptador WiFi.....................................................................................69 Ilustración 30 Terminal de Raspbian...........................................................................71 Ilustración 31 Acceso SSH mediante PuTTY..............................................................74 Ilustración 32 Menú del Router NetGear....................................................................76 Ilustración 33 Entorno de configuración PuTTY.........................................................78 Ilustración 34 Configuración usuario root de MySQL.................................................83 Ilustración 35 Instalación de MySQL...........................................................................85 Ilustración 36 Página de acceso a PhpMyAdmin........................................................88 Ilustración 37 Menú general de PhpMyAdmin............................................................89 Ilustración 38 Esquema del circuito del sensor...........................................................90 vii
  • 9. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 1. INTRODUCCION 1.1. Introducción e importancia. El proyecto fin de carrera es una tarea obligatoria para todo aquel alumno que desee obtener el título de ingeniero técnico. Pretende enfrentar al alumno a una actividad de complejidad superior a la habitualmente realizada en laboratorios y prácticas de la carrera, obligándole a un estudio bibliográfico, a la obtención de unos resultados y a una evaluación cuantitativa de su esfuerzo. Conlleva un enorme esfuerzo y dedicación, ya que se tiene que recoger una gran cantidad de información y con ella desarrollar la aplicación. Hay que tener en cuenta siempre lo aprendido durante la carrera, ya que servirá de gran ayuda para la consecución de los objetivos del proyecto. Además, se debe de investigar para mejorar siempre los conocimientos obtenidos. Como se introducía en el resumen, la idea de partida para el desarrollo del proyecto se basa en el diseño de una plataforma de control y monitoreo de la temperatura y humedad por medio de una aplicación web. La intención desde un principio era llegar a montar nuestra propia estación meteorológica, a través de la cual pudiésemos llegar a llevar un control a distancia de la humedad y temperatura de una zona dada y, dependiendo del caso, predecir cambios climáticos que se pudieran dar. 2
  • 10. 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 computación (SBC) de bajo coste desarrollada en Reino Unido por la Fundación Raspberry Pi, con el objetivo de estimular la enseñanza de ciencias de la computación en las escuelas. En realidad, se trata de una diminuta placa base de 85 x 54 milímetros (del tamaño aproximado de una tarjeta de crédito) 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 sólo 256MB de RAM). Raspberry Pi utiliza tarjetas de memoria SD o microSD como medio de almacenamiento necesario para su funcionamiento. Además 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 más estética. En función del modelo que escojamos, dispondremos de más o menos opciones de conexión, 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 ratón. 3
  • 11. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 En cuanto a la conexión 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 inalámbrico 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 ratón. 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 características muy interesantes. En su corazón 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 garantía, un procesador gráfico VideoCore IV, y 512MB de memoria RAM. La última Raspberry Pi 2 cuenta con 1GB de memoria RAM. Todo ello equivale en la práctica a un ordenador con unas capacidades gráficas similares a la XBOX de Microsoft y con la posibilidad de reproducir vídeo en 1080p. En la placa nos encontramos además con una salida de vídeo y audio a través de un conector HDMI, con lo que conseguiremos conectar la tarjeta tanto a televisores como a monitores que cuenten con dicha conexión. En cuanto a vídeo se refiere, 4 Ilustración 1 RaspBerry Pi Modelo B
  • 12. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 también cuenta con una salida de vídeo compuesto y una salida de audio a través de un minijack. Posee una conexión ethernet 10/100 y, si bien es cierto que podría echarse en falta una conexión Wi-Fi, gracias a los dos puertos USB incluidos podremos suplir dicha carencia con un adaptador WIFI si lo necesitamos. Los puertos tienen una limitación de corriente, por lo que si queremos conectar discos duros u otro dispositivos habrá que hacerlo a través de un hub USB con alimentación. 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 más (clase 4 o clase 10). De esta forma tenemos también la posibilidad de minimizar el espacio que necesitamos para tener todo un ordenador en un volumen mínimo. 5
  • 13. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 Raspberry Pi Compute Module Raspberry Pi Model A+ Raspberry Pi Model B+ Raspberry Pi 2 Model B Precio * $25 USD $20 USD $25 USD $35 USD SoC BCM2835 BCM2835 BCM2835 BCM2836 Fabricante Broadcom Broadcom Broadcom Broadcom CPU ARM1176JZF-S ARM1176JZF-S ARM1176JZF-S ARM Cortex-A7 Instrucciones ARMv6 ARMv6 ARMv6 ARMv7 Cores Single-core Single-core Single-core Quad-core Velocidad ** 700MHz 700MHz 700MHz 900MHz RAM 512MB 256MB 512MB 1GB (1024MB) Almacenamiento 4GB eMMC flash internos MicroSD slot MicroSD slot MicroSD slot GPU 250MHz Broadcom VideoCore IV 250MHz Broadcom VideoCore IV 250MHz Broadcom VideoCore IV 250MHz Broadcom VideoCore IV Conexiones 200-pin tipo DDR2 SO-DIMM HDMI 1x USB2 port 40 GPIO pins MIPI camera connector MIPI display DSI Vídeo compuesto (PAL y NTSC) vía 3.5 mm TRRS jack compartido con audio estéreo HDMI 4x USB2 ports 10/100 Ethernet 40 GPIO pins MIPI camera connector MIPI display DSI Vídeo compuesto (PAL y NTSC) vía 3.5 mm TRRS jack compartido con audio estéreo HDMI 4x USB2 ports 10/100 Ethernet 40 GPIO pins MIPI camera connector MIPI display DSI Vídeo compuesto (PAL y NTSC) vía 3.5 mm TRRS jack compartido con audio estéreo Largo: 6.8cm Ancho: 3cm Peso: 7g Largo: 6.5cm Ancho: 5.7cm Peso: 23g Largo: 8.6cm Ancho: 5.7cm Peso: 45g Largo: 8.6cm Ancho: 5.7cm Peso: 45g Alimentación 5 V a 2A micro USB 5 V a 2A micro USB 5 V a 2A micro USB 5 V a 2A micro USB Tabla 1 Comparativa de modelos RaspBerry Pi * Precio oficial antes de impuestos ** Velocidad oficial sin overclocking 6
  • 14. 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 expansión 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 tensión de trabajo del puerto es de 3,3v para un uno y 0v para un 0. Además, la corriente máxima 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 señal a 5V a través de los GPIO es probable que después nuestra Raspberry Pi sólo sirva como pisapapeles. Todos los pines GPIO se pueden gestionar directamente a través de código, ya sea para poner un valor o leer un valor de un elemento externo. Además, 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: Ilustración 2 Número de pines según el modelo de RaspBerry Pi 7
  • 15. 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 ningún 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 página oficial, de la Fundación Raspberry Pi, todo el software necesario para la instalación en la tarjeta, o bien recurrir a algún programa que haga esto por nosotros. Entre estos programas encontramos BerryBoot, un programa que se encarga de todo el trabajo de instalación 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 descargándolo desde internet. Otra opción también muy interesante es Noobs, una aplicación que facilita la instalación de diversas distribuciones Linux. Noobs hace innecesario el acceso a Internet durante la instalación en su versión Full. Tan sólo tendremos que descargar Noobs y descomprimirlo en una tarjeta SD / MicroSD de al menos 4GB de capacidad. Al hacerlo se nos dará la opción de instalar soluciones como Raspbian, Arch Linux, RaspBMC, Pidora u OpenELEC sin problemas. NOOBS es un acrónimo de New Out Of Box Software y básicamente consiste en el instalador que podéis ver en la imagen más abajo. El software se instala en cualquier tarjeta SD / microSD con un mínimo de 4 GB de espacio y no necesita conexión a Internet para ser utilizado. La elección que se haga se instalará automáticamente en el espacio libre de la tarjeta y ya solo es cuestión de reiniciar y usar. 8 Ilustración 3 Menu de instalación de NOOBS
  • 16. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 Como podéis 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 también un método de edición rápida de la configuración del nuevo sistema, un navegador web preinstalado (Arora) para consultar en el momento cualquier información en línea y, atención porque esto es lo más interesante, un modo de recuperación por línea de comandos a partir de una partición de rescate que se crea automáticamente. BerryBoot es un gestor de arranque Open Source desarrollado en Qt que permite ser instalado además 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). Además de los Sistemas Operativos que incluye por defecto, ofrece la posibilidad de instalar cualquier otra distribución, permite la instalación remota mediante un cliente VNC. Sólo hay que añadir una nueva línea en el fichero cmdline.txt indicando la IP local para nuestra Raspberry Pi, máscara de red y puerta de enlace. Si tu televisión dispone del protocolo CEC puedes utilizar el mando a distancia para moverte por los menús de la instalación. Además BerryBoot también permite clonar particiones y realizar copias de seguridad de los sistemas instalados. 9 Ilustración 4 Menú instalación de BerryBoot
  • 17. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 Sistemas Operativos Raspbian es, quizás, la distribución Linux más 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 través de la Pi Store, la tienda de aplicaciones de Raspberry Pi, podremos acceder a múltiples aplicaciones tanto gratuitas como de pago y, por ejemplo, podremos instalar LibreOffice. Pidora se trata de una versión de Fedora para microprocesadores ARM. Así que puede ser una buena alternativa a la anterior, aunque no cuenta con tanto apoyo. Moebius es otra distribución de propósito general que podemos encontrar para Raspberry Pi. Se caracteriza por ser extremadamente ligera, lo cual es de agradecer, y también por otro detalle curioso: tiene el servicio SSH activado por defecto. Arch Linux ARM es una conocida distribución Linux que también 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 portátil o de sobremesa ya trabajas con 10 Ilustración 5 Escritorio Raspbian Ilustración 6 Acceso SSH de Moebius Ilustración 7 Escritorio de Arch Linux
  • 18. 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 actualización es Rolling Release Model (con actualizaciones periódicas, en vez de cambios bruscos). arkOS es una distribución 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 externo, por ejemplo) y, por supuesto, una tarjeta SD con la distribución. Este proyecto acaba de arrancar y, por ahora, Genesis (que es el nombre de su primera versión) 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, Diáspora e, incluso, calendarios compartidos. OpenELEC (Open Embedded Linux Entertainment Center) es una distribución 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 reproductor multimedia de bajo coste con una distribución especialmente optimizada para este tipo de tareas y con un interfaz orientado también a hacernos sencillo su manejo. 11 Ilustración 8 Logotipo de arkOS Ilustración 9 Entorno gráfico de OpenELEC
  • 19. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 PiMAME es una distribución que transformará nuestra Raspberry Pi en una máquina arcade; concretamente, esta distribución nos ofrece emuladores como MAME y algunos otros emuladores de consolas clásicas como Neo Geo, PlayStation, Super NES o Atari 2600. La distribución se apoya en Raspbian pero, cara al usuario, pone las cosas muy sencillas e implementa un servidor FTP para que nos sea fácil 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 distribución orientada a media center que nos permite conectar nuestra Raspberry Pi a la televisión y disfrutar de series y películas. XBian se apoya sobre XBMC para desarrollar una distribución especialmente optimizada para las funcionalidades de media 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 distribución que se apoya en dos pilares básicos, Debian y XBMC. Asi podrás tener un Media Center en tu TV o transformar tu tele en 12 Ilustración 10 PiMAME, distribución orientada a juegos retro. Ilustración 11 Entorno gráfico de xBian Ilustración 12 Entorno gráfico de RaspBMC
  • 20. 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 compañía que desarrolló los ARM. Por eso está especialmente creado y optimizado para esta arquitectura. Es bastante rápido, pero por el contrario no cuenta con tanto software y apoyo. Esta es una lista no oficial de Sistemas Operativos que funcionan, se han portado, o están en proceso de ser portados a Raspberry Pi: - AROS - Android - Arch Linux ARM - Debian Whezzy Soft-Float, versión de Debian sin soporte para coma flotante por hardware - Firefox OS - Gentoo Linux - Google Chromium OS - Open webOS - PiBang Linux , distribución Linux derivada de Raspbian con diferente escritorio y aplicaciones - Pidora, versión Fedora Remix optimizada - QtonPi, distribución linux con un framework de aplicaciones multiplataforma basado en Qt framework - Raspbian, versión de Debian Wheezy para ARMv6 con soporte para coma flotante por hardware - Slackware ARM, también conocida como ARMedslack - Plan 9 from Bell Labs - RISC OS 5 - FreeBSD - NetBSD 13 Ilustración 13 Risc OS.
  • 21. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 - Moebius, distribución 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 versión de Puppy Linux (Puppi) para ARMv6 (sap6) específicamente 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 señal de salida es digital, por lo tanto, lo tendremos que conectar a pines digitales. Llevan un pequeño microcontrolador interno para hacer el tratamiento de señal. 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 operación es menor en el DHT11 que en el DHT22, sin embargo, el DHT22 tiene rangos de medida más amplios y mayor resolución, a cambio de resultar algo más caro. Ambos sensores están calibrados en laboratorio y tienen una buena fiabilidad. 14
  • 22. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 Ilustración 14 Sensor DHT11 Ilustración 15 Sensor DHT22 Características de cada uno de los sensores: Parámetro DHT11 DHT22 Alimentación 3Vdc ≤ Vcc ≤ 5Vdc 3.3Vdc ≤ Vcc ≤ 6Vdc Señal de Salida Digital Digital Rango de medida Temperatura De 0 a 50 °C De -40°C a 80 °C Precisión Temperatura ±2 °C <±0.5 °C Resolución Temperatura 0.1°C 0.1°C Rango de medida Humedad De 20% a 90% RH De 0 a 100% RH Precisión Humedad 4% RH 2% RH Resolución Humedad 1%RH 0.1%RH Tiempo de respuesta 1s 2s Tamaño 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 precisión 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 comunicación y sincronización entre MCU y el sensor. El proceso de comunicación es de 4 ms aproximadamente. 15
  • 23. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 Ilustración 16 Comunicación con el sensor Una transmisión de datos completa es de 40 bits. Donde obtenemos la temperatura y la humedad. Los 5 bytes recibidos serán 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 información recibida es correcta, y se calcula sumando los 4 bytes anteriores y quedándonos sólo con los 8 bits menos significativos del resultado. Cada uno de los bits se envía siguiendo esta estructura. Cuando el sensor va a enviar un bit, siempre tira la línea abajo durante 50us, y luego la levanta durante 26-28us para señalizar un “0″, o durante 70us si quiere enviar un “1″. 16
  • 24. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 Ilustración 17 Transmisión de la información Ejemplo:40 bits recibidos: 0000 0010 1001 0010 0000 0001 0000 1101 1010 0010 High humidity 8 Low humidity 8 High temp. 8 Low temp. 8 Parity bit Cálculo: 0000 0010+1001 0010 +0000 0001+0000 1101= 1010 0010(Parity bit) Datos recibidos correctamente: Humedad:0000 0010 1001 0010 = 0292H (Hexadecimal)= 2×256 + 9×16 + 2 = 658 => Humidity= 65.8%RH Temp.:0000 0001 0000 1101 = 10DH(Hexadecimal) = 1×256 + 0×16 + 13 = 269 => Temp.= 26.9°C 17
  • 25. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 18
  • 26. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 CAPÍTULO 2 ESTADO DE LA CUESTIÓN 19
  • 27. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 20
  • 28. 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 realización de este Proyecto detallo a continuación los conocimientos adquiridos a lo largo de la carrera y que me facilitaron el desarrollo de este. 1) Conocimientos de informática 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 Ofimáticas 7) Conocimientos de diseño y edición gráfica 8) Conocimientos de entornos web 9) Conocimientos de sistemas operativos engeneral 10)Conocimientos en seguridad web 11)Aptitudes en el tratamiento y obtención documental de la información en entornos informáticos. Asignaturas cursadas como Sistemas Operativos, Redes de Computadores, Administración de Servidores Web, Metodología de la programación, Ingeniería 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
  • 29. 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 autónomo, 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 académicos. Más adelante se comenzaron a utilizar como sistemas de cómputo empotrados presentes en lugares con necesidades de menor potencia, mayor versatilidad y menor volumen. El ejemplo más 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 autónoma. 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 propósito general y de dispositivos de almacenamiento masivo, aunque esto último ya está actualmente resuelto. Las tarjetas basadas en microcontroladores enfatizan el control y la adquisición de datos o medidas a través de entradas y salidas analógicas/digitales, mientras que el sistema con microprocesadores suele apoyarse más en la implementación interna o de ejecución, más que en las funciones externas. Los sistemas microcontrolados poseen generalmente multitud de entradas y salidas para el control de magnitudes físicas, áreas de prototipo para conexiones de otros dispositivos y la posibilidad de conectar otras tarjetas de expansión mediante protocolos de comunicación configurables por el usuario. Sin embargo es complejo realizar tareas que con los sistemas microprocesadores actuales es tarea sencilla gracias a la utilización de Linux. Una plataforma de microcontrolados de renombre es Arduino. Algunas de las arquitecturas más utilizadas en estas tarjetas son: Intel 8048, Atmel AVR, PIC y ARM. Hoy en día, tras la irrupción de la Raspberry Pi, los sistemas microprocesadores son baratos y de relativa facilidad de uso para el público en general, gracias en buena parte a diversos proyectos Open Source donde el usuario 22
  • 30. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 puede acudir a consultar la documentación disponible sin ningún coste. También hay que destacar que, gracias a la compatibilidad con Linux y con los lenguajes de programación de alto nivel facilitan enormemente la abstracción del hardware por parte del usuario, llegando a ser transparente para poder centrar sus esfuerzos en plasmar sus ideas. Todas estas características mencionadas contribuyen a que este tipo de tarjetas se estén convirtiendo en unas plataformas muy atractivas para los desarrolladores, atrayendo incluso a colectivos ajenos a la programación como artistas, diseñadores 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 electrónica de código abierto (open-source) basada en hardware y software flexibles y fáciles de usar. Está pensado para artistas, diseñadores, como hobby y para cualquiera interesado en crear objetos o entornos interactivos. Arduino puede sentir el entorno mediante la recepción 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 autónomos o se pueden comunicar con software en ejecución 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 diseños de referencia del hardware (archivos CAD) están disponibles bajo licencia open-source, por lo que eres libre de adaptarlas a tus necesidades. Arduino recibió una mención honorífica en la sección Digital Communities del Ars Electronica Prix en 2006. 23
  • 31. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 Ilustración 18 Placa Arduino Uno 2.2.2 Cubieboard Se trata también de un sistema SBC (Single Board Computer). Estas son sus características principales:  Procesador ARM Allwinner A10/Cortex-A8, a 1 Ghz y 256 KB de caché L2  Tarjeta gráfica 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 vídeo HDMI de 1080p  Memoria flash interna de 4 GB  Lector de tarjetas micro SD 24
  • 32. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 Sus 10 x 6 centímetros de tamaño dan para mucho. El procesador Allwinner A10 está basado en la arquitectura ARM, como el de la Raspberry, pero es mucho más potente que el de ésta (un 120% más, 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; además añade algo único en estas miniplacas, un puerto SATA para conectar discos duros; y por último, incluye un sensor de infrarrojos. Ilustración 19 Placa Cubieboard Aunque lleva el sistema Android preinstalado, es posible instalar también otros sistemas operativos basados en Linux: Linaro (una versión 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 también el software disponible para ésta. 2.2.3 BeagleBone Black Características.  Procesador: AM335x 1GHz ARM® Cortex-A8 25
  • 33. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015  Memoria RAM: 512MB DDR3  Tarjeta Gráfica: SGX530 aceleradora 3D  Vídeo: 1280 x 1024  Salida de Vídeo:  mini HDMI  Salida de Audio:  por HDMI  Tarjeta de red:  Ethernet 10/100Mbps conexión RJ-45 Jack  USB:  1 entradas USB 2.0 de tamaño estándar para conectar periféricos y almacenamiento. Tipo USB Host  1 entrada USB 2.0 de tamaño micro USB para alimentación y programación. Tipo Client Port  Almacenamiento: memoria interna de 2GB eMMC y ampliable por el puerto USB o por tarjeta micro SD  Alimentación: por mini USB o por conexión 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 analógicas, 4 serie, 2 SPI, 2 I2C, 8 PWM, 4 timers, …  Caja: sin caja  Tamaño de la placa base: 86 x 53 mm (3.4″ x 2.1″) 26
  • 34. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015  Precio: 45$ + gastos envío Ilustración 20 BeagleBone Black 2.3 Conocimientos adquiridos de la investigación bibliográfica Los conocimientos adquiridos en la investigación bibliográfica han sido muy variados. Desde las múltiples posibilidades que tiene la placa RaspBerry Pi, conocimiento de sus múltiples sistemas operativos, la gran cantidad de proyectos basados en esta placa, utilización montaje y funcionamiento de diferentes tipos de sensores, hasta la creación de diferentes scripts en diferentes lenguajes. 2.4 Problemas existentes. Los problemas actuales de las estaciones meteorológicas radican en que son bastante caras, son un sistema cerrado (por lo que no sabemos su funcionamiento 27
  • 35. 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 estación meteorológica 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 estación meteorológica también nos facilita la obtención de piezas de repuesto incluso la ampliación modular de la misma, ya que somos nosotros los que controlamos todo el Hardware de la estación. Podemos ir ampliándole gradualmente el número y el tipo de sensores, incluso tener varias estaciones meteorológicas 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 instalación se hace imprescindible disponer de un monitor o televisor con entrada HDMI, un ratón y un teclado. Hablar de RaspBerry Pi es hablar de RaspBian, el sistema operativo basado en Debian. Por tanto para sacarle el máximo provecho a nuestra placa estaremos limitados al uso de este sistema operativo ya que no disponemos de otro software compatible con RaspBerry Pi que desempeñe una función más específica para nuestros intereses. Otro punto negativo es el limitado número de puertos de nuestro modelo de placa. 2.5 Análisis 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 podríamos realizar. A todo esto hay que sumarle su pequeño tamaño, su bajo consumo eléctrico, su autonomía, su acceso wifi… 28
  • 36. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 Su potencial no está sólo en el producto sino en el precio, lo que permite que llegue a más gente sin distinción por temas económicos, lo que implica una mayor comunidad y, por tanto un mayor número de ideas. De hecho, el gran punto fuerte de la RaspBerry Pi es su comunidad de usuarios, una comunidad que cada vez es más amplia y crece de forma exponencial. Este aumento en número de usuarios también está implicando un mayor número de empresas que se dedican a desarrollar software o hardware para esta plataforma, por lo que cada vez hay mayor número de periféricos. 29
  • 37. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 CAPÍTULO 3 OBJETIVOS DEL PROYECTO 30
  • 38. 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 estación meteorológica para llevar una monitorización en tiempo real de la humedad y temperatura de la zona donde se encuentre el dispositivo.  Instalación sencilla. La instalación 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 conexión de varios sensores simultáneos. Un único sistema centralizado debe permitir la recopilación y monitorización de datos de múltiples sensores.  Posibilidad de pre-procesar datos. Las magnitudes recogidas podrán y deberán ser tratadas antes de ser mostradas y almacenadas. Deberemos verificar que las lecturas son correctas.  Capacidad de representación posterior de los datos obtenidos. Con los datos obtenidos regularmente el usuario tiene que poder visualizar en tiempo real las medidas y también acotar el historial de medidas a lo largo de un intervalo de tiempo representando tanto gráficamente como en tablas de datos, para así tener una visión más global de las variaciones de temperatura. 31
  • 39. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 CAPÍTULO 4 HIPÓTESIS DE TRABAJO. 32
  • 40. 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:  Portátil Asus A53S  Televisor Haier LT26K1 26 pulgadas con HDMI  RaspBerry Pi Modelo B  Teclado y Ratón 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
  • 41. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 Software  Windows 7  Linux lite (basado en Ubuntu)  Ms-Word  Putty  RaspBian  Win32Disckimager  Notepad++  PeaZip (descompresor de archivos)  Tom’s Planner (Diagramas de Gantt) Lenguajes de programación.  ShellScript  Lenguajes C y Python.  PHP  MySQL  HTML y CSS 34
  • 42. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 CAPÍTULO 5 METODOLOGÍA Y RESULTADOS 35
  • 43. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 5. METODOLOGIA Y RESULTADOS 5.1 Introducción A continuación explicaremos paso a paso tanto la metodología como la implementación del desarrollo a nivel práctico del Proyecto Final de Carrera. La metodología 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, Elaboración, Construcción y Transición. 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 añade 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 clásico o en cascada: Análisis de requisitos, Diseño, Implementación y Prueba. Aunque todas las iteraciones suelen incluir trabajo en casi todas las disciplinas, el grado de esfuerzo dentro de cada una de ellas varía a lo largo del proyecto. Comenzaremos con la planificación, 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 consecución de este proyecto. Posteriormente, en la parte de diseño 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 más conocido de la actualidad. Es un lenguaje gráfico para visualizar, especificar, construir y documentar un sistema. Por último, tras la finalización de las fases anteriores, se procederá con el desarrollo e implementación del proyecto. 36
  • 44. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 5.2 Planificación Como hemos comentado anteriormente, la planificación de un proyecto nos expone el alcance del mismo y las fases por las que pasa. La herramienta que usaremos para exponer la planificación del proyecto es el diagrama de Gantt. El diagrama de Gantt es una útil herramienta gráfica cuyo objetivo es exponer el tiempo de dedicación 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 podría especificar 7 fases Ilustración 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. Ilustración 22 Diagrama de Gantt real  El comienzo del proyecto se efectúa el 13-05-2015. 37
  • 45. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015  La planificación del proyecto ha requerido de unos 9 días en los que se propuso una serie de etapas y de pautas con sus respectivos tiempos, que se ha intentado cumplir.  La búsqueda de información ha sido constante debido a que era la primera vez que trataba con diferentes tipos de sensores y placas, y el método heurístico seguido de ensayo y error (o prueba y error) hacían de la búsqueda de información algo cotidiano.  El análisis de los requisitos empieza tras haber estudiado las posibilidades con las que se cuenta para el desarrollo del sistema, así como sus limitaciones. Su duración ha sido de unos 6 días.  El diseño conceptual comienza tras finalizar los análisis de requisitos. Nos llevará aproximadamente unos 3 días.  La implementación del proyecto. Esta fase comienza al llegar a la conclusión el diseño conceptual. Se procederá con la instalación y cableado de los sensores, montaje de la RaspBerry Pi, Instalación del sistema operativo Rasbian, drivers, programación de scrips, instalación del servidor web y Base de datos, WordPress... Es una fase realmente extensa y ocupará unos 60 días.  El periodo de pruebas se ha realizado casi paralelamente con la implementación del proyecto, debido a que cuando se localizaban errores, se procedía a la reprogramación y resolución de dicho fallo. Su duración es de unos 20 días aproximadamente (el principio de la implementación no tuvo muchos problemas).  La documentación es una fase que no me esperaba que fuese tan larga y tediosa. Coincide con la fase de pruebas e implementación para poder realizar las capturas necesarias de estos procesos. La documentación ha ocupado unos 60 días. 38
  • 46. 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: cálculos, detalles técnicos, manipulación de datos y otras funcionalidades específicas que muestran como los casos de uso serán llevados a la práctica. En ingeniería del software, un caso de uso es una técnica para la captura de requisitos potenciales de un nuevo sistema o una actualización de software. Cada caso de uso proporciona uno o más escenarios que indican cómo debería interactuar el sistema con el usuario o con otro sistema para conseguir un objetivo específico. Ilustración 23 Diagrama de Casos de Uso Definición de Actores Tabla 3 Casos de uso de Ingeniero Software Actor-01 Ingeniero Sofware Descripció n Actor que accede al sistema operativo de la estación meteorológica a través de acceso remoto por SSH 39
  • 47. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 Comentario 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 aplicación web. Comentario Con este tipo de acceso, se puede cambiar casi cualquier aspecto de la web, desde idiomas soportados, SEO, tema de la página, tipos de gráficas.. así como la gestión 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 página online de la estación meteorológica pero no se han identificado. Comentario Con este tipo de credenciales, los usuarios solo podrán ver los diagramas de temperatura y humedad. 40
  • 48. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 Casos de uso del sistema. Tabla 6 Descripción de requisitos Encender estación Sistema Estación meteorológica Caso de uso Encender estación Actores Ingeniero Software Descripción El sistema (la Raspberry Pi) es conectada a una fuente de alimentación . Estímulo Estar apagada. Respuesta Se carga el sistema operativo y con él toda la estación meteorológica Comentarios No procede. Tabla 7 Descripción de requisitos Apagar estación Sistema Estación meteorológica Caso de uso Apagar estación Actores Ingeniero Software Descripción El sistema (la Raspberry Pi) es apagado mediante acceso remoto con el comando shutdown . Estímulo Estar encendida. Respuesta Se apaga la RaspBerry Pi y con ella toda la estación meteorológica Comentarios No procede. Tabla 8 Descripcion de requisitos Reconfigurar Sistema Estación meteorológica Caso de uso Reconfigurar Actores Ingeniero Software Descripción El ingeniero Software cambia la configuración de los parámetros de los sensores, base de datos, script o de cualquier archivo que crea oportuno . Estímulo Necesitar una reparación o mejora. Respuesta Mejora del sistema Comentarios No procede. 41
  • 49. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 Tabla 9 Descripción de requisitos Acceso Sistema Estación meteorológica Caso de uso Acceso remoto Actores Ingeniero Software Descripción Se accede a la RaspBerry Pi desde internet . Estímulo Estar conectado a internet. Respuesta Se le permite acceso o no a todo el sistema operativo de la RaspBerry Comentarios No procede. Tabla 10 Descripción de requisitos Testear Sistema Estación meteorológica Caso de uso Testear Actores Ingeniero Software Descripción Se ejecutan diferentes scripts para testear el estado de la estación . Estímulo Conectarse a la estacción. Respuesta Indicará si está todo correcto o falla algo. Comentarios No procede. Tabla 11 Descripción de requisitos Cambiar Diseño Sistema Estación meteorológica Caso de uso Cambiar diseño web Actores Administrador web Descripción El administrador accede al back office de WordPress desde donde puede realizar los cambios pertinentes Estímulo Tener acceso al BackOffice Respuesta Cambia el diseño Comentarios No procede. Tabla 12 Descripción de requisitos Publictar Gráfica Sistema Estación meteorológica Caso de uso Publicar Gráfica Actores Administrador web Descripción El Administrador web puede publicar nuevas gráficas de diferentes días . Estímulo Acceder al BackOffice. Respuesta Aparecen nuevas gráficas Comentarios No procede. 42
  • 50. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 Tabla 13 Descripción de requisitos Editar Gráfica Sistema Estación meteorológica Caso de uso Editar Gráfica Actores Administrador web Descripción El Administrador web puede editar gráficas ya creadas . Estímulo Acceder al BackOffice. Respuesta Cambian las gráficas Comentarios No procede. Tabla 14 Descripción de requisitos Testear Sistema Estación meteorológica Caso de uso Testear Actores Administrador web Descripción Desde el BackOffice tiene todas las herramientas para comprobar y cambiar el estado de la web . Estímulo Acceder al BackOffice. Respuesta Mejora la web. Comentarios No procede. Tabla 15 Descripción de requisitos Ver Gráficas Sistema Estación meteorológica Caso de uso Ver diferentes gráficas Actores Usuario web Descripción Cualquier usuario (a menos que no lo cambie el administrador web) tiene acceso a las gráficas . Estímulo Acceder a la url de la web Respuesta Observar las gráficas Comentarios No procede. 43
  • 51. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 5.4 Implementación Después de planificar todo el proceso y definir conceptualmente la aplicación, pasaremos a la fase de implementación de la estación meteorológica. Descargamos el sistema operativo Raspbian desde la sección de descargas de la web oficial de la fundación RaspBerry Pi, https://www.raspberrypi.org/ ya que es el sistema operativo soportado oficialmente por la fundación. En nuestro caso descargamos la última versión, “2015-05-05-raspbian-wheezy.zip”, que data de mayo del 2015. Ilustración 24 Página oficial de RaspBian 44
  • 52. 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 distribución Raspbian. Ahora descargamos el programa Win32 Disk Imager desde sourceforge.net (http://sourceforge.net/projects/win32diskimager/files/latest/download). Ilustración 25 Página de descarga de Win32 Disk Imager 45
  • 53. 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). Ilustración 26 Proceso de instalación de Win32DiskImager Estando ya instalado el programa, introducimos una tarjeta SD en el ordenador de un tamaño de 4Gb como mínimo 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 botón “Write” para grabar la imagen en la tarjeta SD. 46
  • 54. 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 ratón y así tener un puerto usb libre para conectar posteriormente un adaptador wifi. Una vez montado todo, conectamos el cargador micro-usb. 47
  • 55. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 Conectamos la fuente de alimentación, se enciende la Raspberry Pi y se inicia por primera vez Raspbian, entrando automáticamente en raspi-config, para proceder a su configuración. Ilustración 27 Raspbian arrancando por primera vez Configuración de Raspbian. Expandimos la partición de Rasbian hasta ocupar la capacidad de la SD con la primera opción que nos aparece en el menú de configuración (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 imágenes por defecto que se usan como base para 48
  • 56. 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 más grande, 8 GB en éste caso, el resto del espacio estará sin utilizar. Al usar esta opción del menú de configuración Raspbian aprovechará todo el espacio restante de la tarjeta. En la segunda opción cambiamos la contraseña del usuario pi. Esto es muy recomendable ya que vamos a exponer la RaspBerry Pi a internet y podrían acceder a ella fácilmente. En la tercera opción elegimos de qué modo queremos que se inicie Raspbian. Elegimos la opción de escritorio gráfico. 49
  • 57. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 En la cuarta opción es donde elegimos nuestro idioma y nuestra localización. Aquí se configura el idioma de Raspbian, la hora y el teclado. Seleccionamos los tres idiomas es-ES con la barra espaciadora. 50
  • 58. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 Ahora elegimos la zona horaria. 51
  • 59. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 52
  • 60. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 En la configuración del teclado seleccionamos Other > Spanish > Spanish. 53
  • 61. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 54
  • 62. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 Ahora configuramos algunas teclas del teclado. En la opción 8 tendremos las opciones avanzadas de configuración. 55
  • 63. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 En la segunda opción le pondremos a la RaspBerry el nombre con la que aparecerá en nuestra red. 56
  • 64. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 Muy importante es activar el acceso SSH. 57
  • 65. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 58
  • 66. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 Por último reiniciamos la RaspBerry Pi Después de unos minutos nos aparecerá el escritorio de Raspbian. Ahora conectamos el adaptador wifi, y desconectamos el cable de red. 59
  • 67. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 Ilustración 28 Adaptador WiFi Configuración de nuestra red WiFi. Nos conectamos a nuestra red WiFi. Introducimos la contraseña de la wifi ypara poder conectarnos a ella. Como podemos observar, nos hemos conectado sin problema a internet. 60
  • 68. 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
  • 69. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 Ilustración 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
  • 70. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 Y nos descargamos el archivo. Y lo guardamos en el escritorio por ejemplo. Una vez descargado lo ejecutamos. 63
  • 71. 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 botón “Open”. Nos aparecerá un mensaje de alerta, lo aceptamos y se nos abrirá una ventana donde nos solicitarán el usuario y la contraseña para acceder a la RaspBerry Pi. El usuario será “pi” y la contraseña será la que pusimos al instalar Raspbian. Si no la cambiamos en su momento, la contraseña seguirá siendo “raspberry”. Ilustración 30 Acceso SSH mediante PuTTY Ahora vamos a poner la IP estática para que el router le dé siempre la misma IP a la RaspBerry Pi. Para poder definir si la IP es estática o dinámica hay que editar el archivo "interfaces", este se encuentra en /etc/network . sudo nano /etc/network/interfaces 64
  • 72. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 Y le añadimos: 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 #Contraseña 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 conexión 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
  • 73. 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 sólo 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 configuración 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 contraseña que suele venir escrita en el mismo router. En nuestro router, un Netgear genie CG3100D tendremos que ir a Avanzado > Configuración avanzada > Reenvio de puertos / Activación de puertos. Desde ahí podremos realizar el redireccionamiento del puerto de acceso SSH. Ilustración 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 página nos dice cual es nuestra IP externa del router. 66
  • 74. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 Después de esto podremos acceder desde cualquier ordenador poniendo en el PuTTY nuestra IP externa. Si nuestra IP varía cada vez que reiniciamos el router, usaremos un servicio de DNS dinámico gratuito. En este caso hemos usado https://www.noip.com Nos daremos de alta en la página. Para ello necesitaremos un correo electrónico, nombre de usuario, contraseña y nombre del dominio que deseemos darle a nuestra IP pública, elegiremos una de las extensiones gratuitas. Luego pinchamos en “Free Sing Up”. 67
  • 75. 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
  • 76. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 Ilustración 32 Entorno de configuración PuTTY Para comprobar que se tiene acceso desde cualquier equipo, ahora nos conectaremos por ssh desde un equipo con una distribución Linux (Linux Lite). Abrimos la consola y ponemos “ssh pi@meteoraspi.ddns.net” 69
  • 77. 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 Instalación Servidor web. Teniendo ya configurada la IP estática 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
  • 78. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 Después de esto comprobamos que todo ha funcionado correctamente abriendo el navegador y, en la barra de direcciones introduciremos la IP de nuestra Raspberry Pi. Debería salirnos un mensaje como este: 71
  • 79. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 Ahora instalaremos PHP para poder crear contenido dinámico en nuestra web. Para ello ejecutaremos el siguiente comando: sudo apt-get install php5 A continuación instalaremos unos paquetes que nos podrían 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 código dentro del documento <?php phpinfo(); ?> 72
  • 80. 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 instalación nos pedirá datos que deberemos apuntar ya que los necesitaremos posteriormente. Para su instalación ejecutaremos: sudo apt-get install mysql-server mysql-client php5-mysql 73
  • 81. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 Ilustración 33 Configuración 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
  • 82. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 Podemos dejar el parámetro -p vacio y luego nos preguntará la contraseña o poner la contraseña junto a este parámetro para que no la pida. Si todo ha ido bien debería salir algo parecido a esto: Para salir pulsamos CTRL+C y seguiremos trabajando en el terminal. Ahora instalaremos phpMyAdmin para manejar fácilmente las bases de datos de MySQL. Para ello ejecutaremos el siguiente comando: sudo apt-get install libapache2-mod-auth-mysql php5-mysql phpmyadmin 75
  • 83. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 Durante la instalación nos preguntará qué tipo de servidor tenemos; marcaremos Apache (con la barra espaciadora) y continuaremos. Ilustración 34 Instalación de MySQL Después nos preguntará si queremos configurar una base de datos; le diremos que sí y nos pedira que introduzcamos la contraseña de MySQL y nos pedirá de nuevo que introduzcamos una contraseña para phpMyAdmin. 76
  • 84. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 Al finalizar editaremos el siguiente fichero: sudo nano /etc/php5/apache2/php.ini Añadiremos lo siguiente. extension=mysql.so 77
  • 85. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 Guardaremos el fichero y a través del navegador introduciremos http://IPRASPBERRY/phpmyadmin/ . Deberia salir phpmyadmin. El usuario sera root y la contraseña sera la que hayamos elegido anteriormente. 78
  • 86. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 Ilustración 35 Página 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
  • 87. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 Ilustración 36 Menú general de PhpMyAdmin Desde MySQL creamos nuestra base de datos que la llamaremos MeteoDatos Instalación del sensor de humedad y temperatura DHT22. 80
  • 88. 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. Ilustración 37 Esquema del circuito del sensor Una vez creada la Base de Datos y completado el cableado de la estación crearemos los scripts específicos para nuestro sensor que obtendrán las lecturas de temperatura y humedad y las almacenarán 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
  • 89. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 También deberemos instalar ‘easy_install’ para instalar los módulos de python sin problemas. Lo haremos con: sudo apt-get install python-setuptools Ahora actualizamos ‘easy_install’ con: easy_install -U distribute Después de esto ya podremos instalar el módulo que se encargará de guardar la información de la lectura a la base de datos. Escribiremos easy_install MySQL-python Este módulo 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 combinación de python y de código 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 máximo) antes de que los valores se lean. Después 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 automáticamente esta tabla. Descargamos el script en Python desde github.com con git clone https://github.com/peterkodermac/Raspberry- Weather.git 82
  • 90. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 Tendremos una carpeta en el directorio raíz llamada Raspberry-Weather Dentro de esta carpeta hay varios archivos y una carpeta. El directorio ‘bcm2835-1.8’ tiene el código C, que se encarga de la obtención de información del sensor de temperatura. El script python ‘getInfo.py’ se encarga de eso y también actualiza su base de datos con la temperatura y la humedad. Al principio, también 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
  • 91. 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 líneas 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
  • 92. 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
  • 93. 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 varía de forma drástica porque le he soplado al sensor para observar las variaciones de humedad que se generaban. 86
  • 94. 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 línea nueva al final del documento que contendrá lo siguiente: 0,30 * * * * /usr/bin/python /home/pi/Raspberry- Weather/getInfo.py 87
  • 95. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 Instalación del CMS WordPress. Para el sitio web vamos a utilizar WordPress ya que es una muy buena decisión debido a lo fácilmente 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 extraído 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
  • 96. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 // ** Configuración 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 contraseña define('DB_HOST', 'localhost'); // 99% de la veces no necesitas // cambiar este valor Y lo guardamos como wp-config.php Ahora comenzamos con la instalación 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: Después 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
  • 97. 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 quedaría instalarlo y activarlo. 90
  • 98. 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 botón que al pincharle nos agregará el código que representará la gráfica. 91
  • 99. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 Publicamos el post y observamos al visitar la página que aparece la gráfica. 92
  • 100. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 CAPÍTULO 6 CONCLUSIONES Y PROPUESTAS 93
  • 101. 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 eléctricas y electrónicas 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 domóticos 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 estación. 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 adquisición y con facilidad de implementación. 94
  • 102. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 95
  • 103. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 CAPÍTULO 7 BIBLIOGRAFÍA 96
  • 104. 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 español // 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 dinámicas, puertos, DNS // Julio 2015 [8] https://geekytheory.com/tutorial-raspberry-pi-crear-servidor-web/ // Instalación del servidor web // Julio 2015 [9] http://www.raspberryweather.com/python-script/ // Python script y código 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 documentación. // Septiembre 2015. [12] Proyecto fin de carrera “Raspberry Pi y Camera Board Raspi en entorno Web” (Marzo 2015) // Autor: Antonio Ramón Martínez Jara. // Agosto 2015. 97
  • 105. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 98
  • 106. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 CAPÍTULO 8 ANEXOS 99
  • 107. Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi 2015 8. ANEXOS 8.1 Aplicación Móvil Disponemos en el Market de Android (Google Play) una aplicación desde donde poder ver nuestros reportes de humedad y temperatura. La aplicación se llama Raspberry Weather y se puede descargar desde https://play.google.com/store/apps/details?id=com.raspberryweather Para que esta aplicación muestre nuestros datos deberemos de conectarnos a la Raspberry Pi, dirigirnos a la carpeta Raspberry-Weather con cd /root/Raspberry- Weather y descargar el código con wget https://raw.githubusercontent.com/peterkodermac/My-weather-station- generator/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 añadiremos a la última línea 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 aplicación. 100