Professional Documents
Culture Documents
DESARROLLO E IMPLEMENTACIN DE
UNA ESTACIN METEOROLGICA
MEDIANTE LA PLATAFORMA
HARDWARE/SOFTWARE LIBRE
RASPBERRY PI
PROYECTO FIN DE CARRERA
Septiembre 2015
2015
RESUMEN
Este proyecto fin de carrera que se presenta, tiene como objetivo el desarrollo de un
sistema de monitoreo en tiempo real de temperatura y humedad del lugar donde se
encuentre dicha estacin, como por ejemplo: unas cmaras frigorficas, un
invernadero, un centro de datos, un campo de cultivo o una huerta con la
posibilidad de poder acceder a esos datos desde cualquier parte del mundo donde
se tenga conexin a internet con el mnimo presupuesto posible y utilizando
tecnologas open source.
El principal objetivo del proyecto es permitir el guardado y la gestin de los datos
(humedad y temperatura) recogidos por los sensores as como mostrar los
resultados en diferentes grficas para de este modo tener un seguimiento exhaustivo
de las variaciones climticas del entorno monitoreado. Adems, se har especial
hincapi en la facilidad de uso de la herramienta, hacindola accesible a usuarios sin
conocimientos tcnicos.
Con el fin de alcanzar dicho objetivo, se analizarn y evaluarn una serie de placas y
sensores entre los cuales elegiremos los ms ptimos para nuestro proyecto.
En el presente proyecto nos introduciremos en el actual y de gran futuro, mundo de
las placas de bajo coste que actan como mini-ordenadores, en nuestro caso
concreto sobre RaspBerry Pi. Describiremos sus diferentes modelos y usos actuales.
A nivel de implementacin realizaremos la instalacin y configuracin del sistema
operativo, sensores, drivers de sensores, servidor web, base de datos, acceso
inalmbrico mediante un adaptador WiFi usb, instalacin y configuracin del CMS
WordPress para la presentacin de los datos en forma de grficas.
Por ltimo, destacar que las herramientas y tecnologas utilizadas durante el
desarrollo son gratuitas y de cdigo libre, con lo que no requieren el pago de
licencias, abaratando as el coste del proyecto.
ii
2015
AGRADECIMIENTOS
Primero agradecer a mi familia todo el apoyo y comprensin que me han dado a lo
largo de esta carrera y por haberme dado la oportunidad de tener unos estudios. Sin
ellos no podra ver terminado este proyecto. Gracias por creer en m cuando en
algunas ocasiones ni si quiera yo crea en m mismo.
Tambin me gustara agradecer a Daniel, Sergio, Alfredo, Jos Manuel, Elisabet y
Manolo el haberme metido caa, animado y apoyado en todo momento en la
finalizacin de la carrera. No me puedo olvidar de Jordi, Guirao, Julio, Canario,
Claudio, Javi, Sandra, Marietta, Po, Hurtado, Alfredo, Amancio, Ana, Cristina, Jos,
Lufi, Rubn... y dems compaeros de clase que me han soportado durante todos
los aos de la carrera.
iii
2015
INDICE
1. INTRODUCCION......................................................................................................3
1.1. Introduccin e importancia.................................................................................3
1.2. Conceptos iniciales.............................................................................................4
1.2.1. Qu es RaspBerry Pi?...................................................................................4
1.2.2. Hardware RaspBerry Pi...................................................................................5
1.2.3. Software RaspBerry PI....................................................................................9
1.3. Sensor de humedad y Temperatura.................................................................16
2. ANTECEDENTES, ESTADO DE LA CUESTION....................................................24
2.1 Conocimientos adquiridos previos PFC............................................................24
2.2 Antecedentes. Single Board Computers SBC...................................................25
2.2.1 Arduino............................................................................................................26
2.2.2 Cubieboard.....................................................................................................27
2.2.3 BeagleBone Black..........................................................................................29
2.3 Conocimientos adquiridos de la investigacin bibliogrfica..............................31
2.4 Problemas existentes........................................................................................31
2.5 Anlisis posibilidades uso de la RaspBerry Pi..................................................32
3. OBJETIVOS DEL TRABAJO/PROYECTO.............................................................36
4. HIPOTESIS DE TRABAJO......................................................................................40
5. METODOLOGIA Y RESULTADOS.........................................................................44
iv
2015
5.1 Introduccin.......................................................................................................44
5.2 Planificacin.......................................................................................................45
5.3 Diagramas UML.................................................................................................47
5.3.1 Diagrama de casos de uso.............................................................................47
5.4 Implementacin.................................................................................................52
Configuracin de Raspbian.....................................................................................57
Configuracin de nuestra red WiFi..........................................................................69
Instalacin Servidor web.........................................................................................80
Instalacin del sensor de humedad y temperatura DHT22.....................................90
Instalacin del CMS WordPress..............................................................................97
6. CONCLUSIONES Y PROPUESTAS.....................................................................104
7. BIBLIOGRAFIA.....................................................................................................108
8. ANEXOS................................................................................................................112
8.1 Aplicacin Mvil...............................................................................................112
2015
INDICE DE FIGURAS
Ilustracin 1 RaspBerry Pi Modelo B............................................................................5
Ilustracin 2 Nmero de pines segn el modelo de RaspBerry Pi...............................8
Ilustracin 3 Menu de instalacin de NOOBS...............................................................9
Ilustracin 4 Men instalacin de BerryBoot...............................................................10
Ilustracin 5 Escritorio Raspbian.................................................................................11
Ilustracin 6 Logo de Pidora........................................................................................11
Ilustracin 7 Acceso SSH de Moebius........................................................................11
Ilustracin 8 Escritorio de Arch Linux..........................................................................12
Ilustracin 9 Logotipo de arkOS..................................................................................12
Ilustracin 10 Entorno grfico de OpenELEC.............................................................13
Ilustracin 11 PiMAME, distribucin orientada a juegos retro....................................13
Ilustracin 12 Entorno grfico de xBian......................................................................14
Ilustracin 13 Entorno grfico de RaspBMC...............................................................14
Ilustracin 14 Risc OS.................................................................................................14
Ilustracin 15 Sensor DHT11
2015
vii
CAPTULO 1
INTRODUCCIN
2015
1. INTRODUCCION
1.1. Introduccin e importancia.
El proyecto fin de carrera es una tarea obligatoria para todo aquel alumno que desee
obtener el ttulo de ingeniero tcnico. Pretende enfrentar al alumno a una actividad
de complejidad superior a la habitualmente realizada en laboratorios y prcticas de
la carrera, obligndole a un estudio bibliogrfico, a la obtencin de unos resultados y
a una evaluacin cuantitativa de su esfuerzo.
Conlleva un enorme esfuerzo y dedicacin, ya que se tiene que recoger una gran
cantidad de informacin y con ella desarrollar la aplicacin. Hay que tener en cuenta
siempre lo aprendido durante la carrera, ya que servir de gran ayuda para la
consecucin de los objetivos del proyecto. Adems, se debe de investigar para
mejorar siempre los conocimientos obtenidos.
Como se introduca en el resumen, la idea de partida para el desarrollo del proyecto
se basa en el diseo de una plataforma de control y monitoreo de la temperatura y
humedad por medio de una aplicacin web. La intencin desde un principio era
llegar a montar nuestra propia estacin meteorolgica, a travs de la cual
pudisemos llegar a llevar un control a distancia de la humedad y temperatura de
una zona dada y, dependiendo del caso, predecir cambios climticos que se
pudieran dar.
2015
2015
2015
tambin cuenta con una salida de vdeo compuesto y una salida de audio a travs
de un minijack. Posee una conexin ethernet 10/100 y, si bien es cierto que podra
echarse en falta una conexin Wi-Fi, gracias a los dos puertos USB incluidos
podremos suplir dicha carencia con un adaptador WIFI si lo necesitamos.
Los puertos tienen una limitacin de corriente, por lo que si queremos conectar
discos duros u otro dispositivos habr que hacerlo a travs de un hub USB con
alimentacin. En su parte inferior cuenta con un lector de tarjetas SD (microSD para
los modelos A+, B+ y Pi 2), lo que abarata enormemente su precio y da la posibilidad
de instalar un sistema operativo en una tarjeta de memoria de 4 GB o ms (clase 4 o
clase 10). De esta forma tenemos tambin la posibilidad de minimizar el espacio que
necesitamos para tener todo un ordenador en un volumen mnimo.
Precio *
SoC
Fabricante
CPU
Instrucciones
Cores
Velocidad **
RAM
Almacenamiento
GPU
Conexiones
Raspberry Pi
Compute Module
Raspberry Pi
Model A+
$25 USD
BCM2835
Broadcom
ARM1176JZF-S
ARMv6
Single-core
700MHz
512MB
4GB eMMC flash
internos
250MHz Broadcom
VideoCore IV
$20 USD
BCM2835
Broadcom
ARM1176JZF-S
ARMv6
Single-core
700MHz
256MB
MicroSD slot
Raspberry Pi 2
Model B
$25 USD
BCM2835
Broadcom
ARM1176JZF-S
ARMv6
Single-core
700MHz
512MB
MicroSD slot
$35 USD
BCM2836
Broadcom
ARM Cortex-A7
ARMv7
Quad-core
900MHz
1GB (1024MB)
MicroSD slot
250MHz
Broadcom
VideoCore IV
HDMI
250MHz
Broadcom
VideoCore IV
HDMI
4x USB2 ports
4x USB2 ports
40 GPIO pins
10/100 Ethernet
10/100 Ethernet
MIPI camera
connector
40 GPIO pins
40 GPIO pins
MIPI camera
connector
MIPI camera
connector
250MHz
Broadcom
VideoCore IV
200-pin tipo DDR2 HDMI
SO-DIMM
1x USB2 port
Alimentacin
Raspberry Pi
Model B+
2015
Largo: 6.8cm
Largo: 6.5cm
Vdeo compuesto
(PAL y NTSC) va
3.5 mm TRRS jack
compartido con
audio estreo
Largo: 8.6cm
Ancho: 3cm
Ancho: 5.7cm
Ancho: 5.7cm
Ancho: 5.7cm
Peso: 7g
Peso: 23g
Peso: 45g
Peso: 45g
5 V a 2A micro
USB
2015
2015
2015
Pi
en
otras
tarjetas
de
instalar
Sistemas
Operativos
2015
Sistemas Operativos
Raspbian es, quizs, la distribucin Linux
ms conocida para Raspberry Pi; un
Sistema Operativo basado en Debian que
nos ofrece un entorno tanto en modo
consola como en escritorio con el que
podremos programar o jugar. A travs de
la Pi Store, la tienda de aplicaciones de
Raspberry Pi, podremos acceder a
Pi.
extremadamente
Se
caracteriza
ligera,
lo
cual
por
ser
es
de
10
2015
Arch. Se apoya sobre el gestor de paquetes Pacman (creado por Judd Vinet para
gestionar los paquetes binarios) y su sistema de actualizacin es Rolling Release
Model (con actualizaciones peridicas, en vez de cambios bruscos).
Pi,
una
unidad
de
externo, por ejemplo) y, por supuesto, una tarjeta SD con la distribucin. Este
proyecto acaba de arrancar y, por ahora, Genesis (que es el nombre de su primera
versin) nos ofrece un servidor de base de datos MariaDB, un gestor de descargas
de torrents, un firewall y una utilidad para crear un almacenamiento en red basado
en SAMBA pero, con el tiempo, aspiran a integrar Tor, Dispora e, incluso,
calendarios compartidos.
OpenELEC
(Open
Entertainment
Embedded
Center)
es
Linux
una
televisor
para
usarla
como
PiMAME
es
una
distribucin
2015
que
distribucin
nos
ofrece
o Atari 2600. La distribucin se apoya en Raspbian pero, cara al usuario, pone las
cosas muy sencillas e implementa un servidor FTP para que nos sea fcil llevar las
ROMs de los juegos a la tarjeta SD del computador. Por cierto, un detalle interesante
es que soporta el gamepad de la consola Xbox 360 (que es USB).
nos
permite
conectar
nuestra
XBMC
para
desarrollar
una
12
Ilustracin 12 Entorno grfico de RaspBMC
2015
software y apoyo.
Esta es una lista no oficial de Sistemas Operativos que funcionan, se han portado, o
estn en proceso de ser portados a Raspberry Pi:
-
AROS
Android
Arch Linux ARM
Debian Whezzy Soft-Float, versin de Debian sin soporte para coma flotante
por hardware
Firefox OS
Gentoo Linux
Google Chromium OS
Open webOS
PiBang Linux , distribucin Linux derivada de Raspbian con diferente
escritorio y aplicaciones
Pidora, versin Fedora Remix optimizada
QtonPi, distribucin linux con un framework de aplicaciones multiplataforma
basado en Qt framework
Raspbian, versin de Debian Wheezy para ARMv6 con soporte para coma
flotante por hardware
Slackware ARM, tambin conocida como ARMedslack
Plan 9 from Bell Labs
RISC OS 5
FreeBSD
NetBSD
13
2015
14
2015
DHT11
DHT22
Alimentacin
Seal de Salida
Digital
Digital
Rango de medida
Temperatura
De 0 a 50 C
De -40C a 80 C
Precisin Temperatura
2 C
<0.5 C
Resolucin Temperatura
0.1C
0.1C
De 0 a 100% RH
Precisin Humedad
4% RH
2% RH
Resolucin Humedad
1%RH
0.1%RH
Tiempo de respuesta
1s
2s
Tamao
12 x 15.5 x 5.5mm
14 x 18 x 5.5mm
2015
16
2015
1001 0010
0000 0001
0000 1101
1010 0010
Low temp. 8
Parity bit
Clculo
0000 0010+1001 0010 +0000 0001+0000 1101= 1010 0010Parity bit
Datos recibidos correctamente
Humedad0000 0010 1001 0010 = 0292H (Hexadecimal)= 2256 + 916 + 2 = 658
=> Humidity= 65.8%RH
Temp.0000 0001 0000 1101 = 10DH(Hexadecimal) = 1256 + 016 + 13 = 269
=> Temp.= 26.9C
17
18
2015
2015
CAPTULO 2
ESTADO DE LA
CUESTIN
19
20
2015
2015
21
2015
pueden
apreciar
algunas
diferencias
entre
la
SBC
basadas
en
2015
puede acudir a consultar la documentacin disponible sin ningn coste. Tambin hay
que destacar que, gracias a la compatibilidad con Linux y con los lenguajes de
programacin de alto nivel facilitan enormemente la abstraccin del hardware por
parte del usuario, llegando a ser transparente para poder centrar sus esfuerzos en
plasmar sus ideas. Todas estas caractersticas mencionadas contribuyen a que este
tipo de tarjetas se estn convirtiendo en unas plataformas muy atractivas para los
desarrolladores, atrayendo incluso a colectivos ajenos a la programacin como
artistas, diseadores y entusiastas.
Actualmente existen multitud de SBC microprocesadores con distintos niveles de
potencia y, por lo tanto, precios. Algunas de estas son: Raspberry Pi, Cubieboard,
Gooseberry, etc.
2.2.1 Arduino
Arduino es una plataforma de prototipos electrnica de cdigo abierto (open-source)
basada en hardware y software flexibles y fciles de usar. Est pensado para
artistas, diseadores, como hobby y para cualquiera interesado en crear objetos o
entornos interactivos.
Arduino puede sentir el entorno mediante la recepcin de entradas desde una
variedad de sensores y puede afectar a su alrededor mediante el control de luces,
motores y otros artefactos. El microcontrolador de la placa se programa usando
el Arduino Programming Language (basado en Wiring) y el Arduino Development
Environment (basado en Processing). Los proyectos de Arduino pueden ser
autnomos o se pueden comunicar con software en ejecucin en un ordenador (por
ejemplo con Flash, Processing, MaxMSP, etc.).
Las placas se pueden ensamblar a mano o encargarlas preensambladas; el software
se puede descargar gratuitamente. Los diseos de referencia del hardware (archivos
CAD) estn disponibles bajo licencia open-source, por lo que eres libre de
adaptarlas a tus necesidades.
Arduino recibi una mencin honorfica en la seccin Digital Communities del Ars
Electronica Prix en 2006.
23
2015
2.2.2 Cubieboard
Se trata tambin de un sistema SBC (Single Board Computer). Estas son sus
caractersticas principales:
2 puertos USB
1 conector SATA
1 sensor de infrarrojos
2015
Salida de Vdeo:
por HDMI
Tarjeta de red:
mini HDMI
Salida de Audio:
2015
USB:
Alimentacin: por mini USB o por conexin tipo jack de 5V y 210mA o 460mA
Android
Ubuntu
Extras:
2015
2015
interno, no podemos elegir los tipos de sensores, si se estropea hay que cambiar el
sistema entero), hay que estar presentes en el mismo lugar de la estacin
meteorolgica para conocer los datos obtenidos.
Con la RaspBerry Pi podemos obtener los datos que los sensores que nosotros
deseemos nos proporcionen y usarlos y mostrarlos de la forma que nos plazca
debido a las grandes posibilidades que nos brinda la RaspBerry Pi.
Este tipo de sistema para montar una estacin meteorolgica tambin nos facilita la
obtencin de piezas de repuesto incluso la ampliacin modular de la misma, ya que
somos nosotros los que controlamos todo el Hardware de la estacin. Podemos ir
amplindole gradualmente el nmero y el tipo de sensores, incluso tener varias
estaciones meteorolgicas y que se comuniquen entre ellas.
Con respecto a los problemas o limitaciones de la Raspberry Pi es que aunque se
puede acceder remotamente a ella, en su instalacin se hace imprescindible
disponer de un monitor o televisor con entrada HDMI, un ratn y un teclado.
Hablar de RaspBerry Pi es hablar de RaspBian, el sistema operativo basado en
Debian. Por tanto para sacarle el mximo provecho a nuestra placa estaremos
limitados al uso de este sistema operativo ya que no disponemos de otro software
compatible con RaspBerry Pi que desempee una funcin ms especfica para
nuestros intereses.
Otro punto negativo es el limitado nmero de puertos de nuestro modelo de placa.
28
2015
Su potencial no est slo en el producto sino en el precio, lo que permite que llegue
a ms gente sin distincin por temas econmicos, lo que implica una mayor
comunidad y, por tanto un mayor nmero de ideas. De hecho, el gran punto fuerte de
la RaspBerry Pi es su comunidad de usuarios, una comunidad que cada vez es ms
amplia y crece de forma exponencial.
Este aumento en nmero de usuarios tambin est implicando un mayor nmero de
empresas que se dedican a desarrollar software o hardware para esta plataforma,
por lo que cada vez hay mayor nmero de perifricos.
29
2015
CAPTULO 3
OBJETIVOS DEL
PROYECTO
30
2015
31
2015
CAPTULO 4
HIPTESIS DE TRABAJO.
32
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:
RaspBerry Pi Modelo B
Tarjeta SD de 8Gb
Cable HDMI
Resistencia W
33
Windows 7
Ms-Word
Putty
RaspBian
Win32Disckimager
Notepad++
Lenguajes de programacin.
ShellScript
Lenguajes C y Python.
PHP
MySQL
HTML y CSS
34
2015
2015
CAPTULO 5
METODOLOGA Y
RESULTADOS
35
2015
5. METODOLOGIA Y RESULTADOS
5.1 Introduccin
A continuacin explicaremos paso a paso tanto la metodologa como la
implementacin del desarrollo a nivel prctico del Proyecto Final de Carrera.
La metodologa utilizada es el Proceso Unificado de Desarrollo de software mediante
UML. El Proceso Unificado es un marco de desarrollo iterativo e incremental
compuesto de cuatro fases denominadas Inicio, Elaboracin, Construccin y
Transicin. Cada una de estas fases es a su vez dividida en una serie de iteraciones
(la de inicio puede incluir varias iteraciones en proyectos grandes). Estas iteraciones
ofrecen como resultado un incremento del producto desarrollado que aade o
mejora las funcionalidades del sistema en desarrollo.
Cada una de estas iteraciones se divide a su vez en una serie de disciplinas que
recuerdan a las definidas en el ciclo de vida clsico o en cascada: Anlisis de
requisitos, Diseo, Implementacin y Prueba. Aunque todas las iteraciones suelen
incluir trabajo en casi todas las disciplinas, el grado de esfuerzo dentro de cada una
de ellas vara a lo largo del proyecto.
Comenzaremos con la planificacin, que indica el alcance del proyecto. Se usar el
diagrama de Gantt, mediante el cual se representar de una forma clara y concisa
las distintas etapas por las que se ha pasado para la consecucin de este proyecto.
Posteriormente, en la parte de diseo conceptual, se usar el lenguaje UML. El
lenguaje UML (Unified Modeling Language) o en castellano lenguaje LUM (Lenguaje
Unificado de Modelado) es el lenguaje de modelado ms conocido de la actualidad.
Es un lenguaje grfico para visualizar, especificar, construir y documentar un
sistema.
Por ltimo, tras la finalizacin de las fases anteriores, se proceder con el desarrollo
e implementacin del proyecto.
36
2015
5.2 Planificacin
Como hemos comentado anteriormente, la planificacin de un proyecto nos expone
el alcance del mismo y las fases por las que pasa. La herramienta que usaremos
para exponer la planificacin del proyecto es el diagrama de Gantt.
El diagrama de Gantt es una til herramienta grfica cuyo objetivo es exponer el
tiempo de dedicacin previsto para diferentes tareas o actividades a lo largo de un
tiempo total determinado. A pesar de esto, el Diagrama de Gantt no indica las
relaciones existentes entre actividades.
En el proyecto, como bien se puede observar en la figura siguiente, se podra
especificar 7 fases
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.
2015
38
2015
Definicin de Actores
Tabla 3 Casos de uso de Ingeniero Software
Actor-01
Ingeniero Sofware
Descripci
n
2015
Actor-02
Administrador web
Descripci
n
Comentario
Actor-03
Usuario web
Descripci
n
Comentario
Con este tipo de credenciales, los usuarios solo podrn ver los
diagramas de temperatura y humedad.
40
2015
Sistema
Caso de uso
Actores
Descripcin
Estmulo
Respuesta
Comentarios
Estacin meteorolgica
Encender estacin
Ingeniero Software
El sistema (la Raspberry Pi) es conectada a una fuente de alimentacin .
Estar apagada.
Se carga el sistema operativo y con l toda la estacin meteorolgica
No procede.
Sistema
Caso de uso
Actores
Descripcin
Estacin meteorolgica
Apagar estacin
Ingeniero Software
El sistema (la Raspberry Pi) es apagado mediante acceso remoto con el
comando shutdown .
Estmulo
Estar encendida.
Respuesta
Se apaga la RaspBerry Pi y con ella toda la estacin meteorolgica
Comentarios No procede.
Sistema
Caso de uso
Actores
Descripcin
Estacin meteorolgica
Reconfigurar
Ingeniero Software
El ingeniero Software cambia la configuracin de los parmetros de los
sensores, base de datos, script o de cualquier archivo que crea oportuno .
Estmulo
Necesitar una reparacin o mejora.
Respuesta
Mejora del sistema
Comentarios No procede.
41
2015
Sistema
Caso de uso
Actores
Descripcin
Estmulo
Respuesta
Comentarios
Estacin meteorolgica
Acceso remoto
Ingeniero Software
Se accede a la RaspBerry Pi desde internet .
Estar conectado a internet.
Se le permite acceso o no a todo el sistema operativo de la RaspBerry
No procede.
Estacin meteorolgica
Testear
Ingeniero Software
Se ejecutan diferentes scripts para testear el estado de la estacin .
Conectarse a la estaccin.
Indicar si est todo correcto o falla algo.
No procede.
Sistema
Caso de uso
Actores
Descripcin
Estacin meteorolgica
Cambiar diseo web
Administrador web
El administrador accede al back office de WordPress desde donde puede
realizar los cambios pertinentes
Estmulo
Tener acceso al BackOffice
Respuesta
Cambia el diseo
Comentarios No procede.
Sistema
Caso de uso
Actores
Descripcin
Estmulo
Respuesta
Comentarios
Estacin meteorolgica
Publicar Grfica
Administrador web
El Administrador web puede publicar nuevas grficas de diferentes das .
Acceder al BackOffice.
Aparecen nuevas grficas
No procede.
42
2015
Sistema
Caso de uso
Actores
Descripcin
Estmulo
Respuesta
Comentarios
Estacin meteorolgica
Editar Grfica
Administrador web
El Administrador web puede editar grficas ya creadas .
Acceder al BackOffice.
Cambian las grficas
No procede.
Sistema
Caso de uso
Actores
Descripcin
Estacin meteorolgica
Testear
Administrador web
Desde el BackOffice tiene todas las herramientas para comprobar y cambiar el
estado de la web .
Estmulo
Acceder al BackOffice.
Respuesta
Mejora la web.
Comentarios No procede.
Sistema
Caso de uso
Actores
Descripcin
Estacin meteorolgica
Ver diferentes grficas
Usuario web
Cualquier usuario (a menos que no lo cambie el administrador web) tiene
acceso a las grficas .
Estmulo
Acceder a la url de la web
Respuesta
Observar las grficas
Comentarios No procede.
43
2015
5.4 Implementacin
Despus de planificar todo el proceso y definir conceptualmente la aplicacin,
pasaremos a la fase de implementacin de la estacin meteorolgica.
Descargamos el sistema operativo Raspbian desde la seccin de descargas de la
web oficial de la fundacin RaspBerry Pi, https://www.raspberrypi.org/ ya que es el
sistema operativo soportado oficialmente por la fundacin. En nuestro caso
descargamos la ltima versin, 2015-05-05-raspbian-wheezy.zip, que data de mayo
del 2015.
44
2015
45
2015
46
2015
47
2015
Configuracin de Raspbian.
2015
49
2015
50
51
2015
52
2015
53
2015
54
2015
2015
2015
56
57
2015
58
2015
59
2015
60
2015
2015
El siguiente paso es abrir una terminal para averiguar cual es nuestra IP local.
61
2015
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
2015
2015
En Host Name pondremos la IP de la Raspberry Pi, Port 22, Connection type: SSH y
pulsamos en el botn Open.
64
2015
Y le aadimos:
auto wlan0
iface wlan0 inet static
address 192.168.1.88
#192.168.1.XX donde XX es un n entre 2 y 255
gateway 192.168.1.1
netmask 255.255.255.0
wpa-ssid Upaljen
#Pongo el nombre de la WiFi
wpa-psk LaTortillaDePatatasSiempreEsRedonda #Contrasea de la WiFi
Una vez modificado el archivo pulsamos Ctrl+X para salir del editor. Nos preguntara
si queremos guardar los cambios y le damos a yes. Luego el directorio para
guardarlo y le damos a enter. En estos momentos ya tenemos la Raspberry
configurada y la reiniciamos con sudo reboot. Al reiniciarse perderemos la conexin
ssh. Volvemos a conectarnos con el PuTTY y esta vez tendremos que usar la nueva
IP: 192.168.1.88 . Ya tenemos una IP local fija (necesaria para redireccionar
puertos).
65
2015
66
2015
67
2015
68
2015
Para comprobar que se tiene acceso desde cualquier equipo, ahora nos
conectaremos por ssh desde un equipo con una distribucin Linux (Linux Lite).
Abrimos la consola y ponemos ssh pi@meteoraspi.ddns.net
69
2015
70
2015
71
2015
Ahora instalaremos PHP para poder crear contenido dinmico en nuestra web. Para
ello ejecutaremos el siguiente comando:
sudo apt-get install php5
A continuacin instalaremos unos paquetes que nos podran hacer falta en un futuro.
sudo apt-get install libapache2-mod-php5 libapache2-mod-perl2
php5 php5-cli php5-common php5-curl php5-dev php5-gd php5-imap
php5-ldap php5-mhash php5-mysql php5-odbc
Tras esto reiniciamos nuestra Raspberry Pi:
sudo reboot
Una vez que reiniciemos haremos una prueba con PHP
sudo nano /var/www/info.php
Escribiremos el siguiente cdigo dentro del documento
<?php
phpinfo();
?>
72
2015
Ahora instalaremos MySQL. Durante la instalacin nos pedir datos que deberemos
apuntar ya que los necesitaremos posteriormente. Para su instalacin ejecutaremos:
sudo apt-get install mysql-server mysql-client php5-mysql
73
2015
2015
75
2015
Despus nos preguntar si queremos configurar una base de datos; le diremos que
s y nos pedira que introduzcamos la contrasea de MySQL y nos pedir de nuevo
que introduzcamos una contrasea para phpMyAdmin.
76
77
2015
2015
78
79
2015
2015
2015
81
2015
Tambin deberemos instalar easy_install para instalar los mdulos de python sin
problemas. Lo haremos con:
sudo apt-get install python-setuptools
Ahora actualizamos easy_install con:
easy_install -U distribute
Despus de esto ya podremos instalar el mdulo que se encargar de guardar la
informacin de la lectura a la base de datos. Escribiremos
easy_install MySQL-python
Este mdulo es indispensable para la lectura de los datos del sensor, de lo contrario
el script no iniciar nunca.
Llegados a este punto, vamos a utilizar una combinacin de python y de cdigo C.
Este ltimo lee los valores del sensor DHT22 y los manda al script en python. A
veces se necesita un par de intentos (uno o dos como mximo) antes de que los
valores se lean. Despus de esto, python guarda estos valores en la base de datos
MeteoDatos en la tabla de temperatures. Cuando el script se ejecuta por primera
vez, se crea automticamente esta tabla.
Descargamos el script en Python desde github.com con
git clone https://github.com/peterkodermac/RaspberryWeather.git
82
2015
Dentro de esta carpeta hay varios archivos y una carpeta. El directorio bcm2835-1.8
tiene el cdigo C, que se encarga de la obtencin de informacin del sensor de
temperatura. El script python getInfo.py se encarga de eso y tambin actualiza su
base de datos con la temperatura y la humedad. Al principio, tambin utiliza los
createTable.sql para crear la tabla temperatures que almacena estos valores.
Tendremos que hacer que la carpeta Raspberry-Weather sea ejecutable para que el
script en python sea capaz de ejecutarse. Esto lo conseguiremos con:
chmod +x /home/pi/Raspberry-Weather/
Ahora editamos el script getInfo.py tecleando
nano /home/pi/Raspberry-Weather/getInfo.py
83
2015
84
2015
85
2015
2015
Ahora crearemos una tarea cron para que el script se ejecute cada x tiempo. Por
ejemplo cada 30 minutos. Para ello ejecutaremos crontab donde introduciremos la
tarea cron que queremos realizar.
crontab e
Se nos abre el crontab e introduciremos una lnea nueva al final del documento que
contendr lo siguiente:
0,30 * * * * /usr/bin/python /home/pi/RaspberryWeather/getInfo.py
87
2015
2015
// ** Configuracin de MySQL ** //
define('DB_NAME', 'MeteoDatos');
// El nombre de la base de datos
define('DB_USER', 'root');
// Tu usuario de MySQL
define('DB_PASSWORD', 'password'); // ...tu contrasea
define('DB_HOST', 'localhost');
// 99% de la veces no necesitas
// cambiar este valor
89
2015
90
2015
Una vez activado vamos a editar un post nuevo, y nos aparecer un botn que al
pincharle nos agregar el cdigo que representar la grfica.
91
92
2015
2015
CAPTULO 6
CONCLUSIONES Y
PROPUESTAS
93
2015
6. CONCLUSIONES Y PROPUESTAS
En este proyecto se ha tratado de aplicar muchos conocimientos, adquiridos a lo
largo de la carrera, para crear un sistema sensorial completo.
En primer lugar se sientan las bases elctricas y electrnicas para conocer la
envergadura que se puede alcanzar. As mismo, este estudio sirve para poder crear
otros proyectos que requieran longitudes elevadas con bajo consumo y coste. Se ha
realizado un estudio de sensores que pueden abarcar tanto sistemas sensoriales
industriales como domticos tanto en oficinas como en casas particulares.
En segundo lugar se deja un sistema compacto con todas las herramientas
necesarias para monitorizar, vigilar y realizar informes de todo lo que acontece en el
entorno donde se encuentre ubicada la estacin.
Este sistema puede adaptar de forma sencilla otros tipos de sensores. Los
conocimientos adquiridos y desarrollados en este proyecto abren un abanico amplio
de posibilidades para futuros desarrollos con un bajo coste de adquisicin y con
facilidad de implementacin.
94
95
2015
2015
CAPTULO 7
BIBLIOGRAFA
96
2015
7. BIBLIOGRAFIA
[1] http://www.raspberryshop.es/ // Raspberry Pi en espaol // Visitas: Mayo 2015.
[2] http://www.omniblug.com/index.php/blog/115-sensor-dht11 // Visitas: Mayo 2015.
[3] http://akizukidenshi.com/download/ds/aosong/AM2302.pdf // Funcionamiento
sensor dht22 // Visitas: Mayo 2015, Junio 2015.
[4] http://arduino.cl/que-es-arduino/ // Qu es Arduino? // Junio 2015
[5] http://www.uroboros.es/cubieboard/ // Qu es Cubieboard? // Junio 2015
[6] https://es.wikipedia.org/wiki/Diagrama_de_Gantt/ // Diagrama de Gantt // Julio
2015
[7] http://blog.zoogon.net/2013/01/acceder-desde-internet-tu-raspberry-pi.html // IPs
dinmicas, puertos, DNS // Julio 2015
[8] https://geekytheory.com/tutorial-raspberry-pi-crear-servidor-web/ // Instalacin del
servidor web // Julio 2015
[9] http://www.raspberryweather.com/python-script/ // Python script y cdigo para
DHT22 // Agosto 2015
[10] https://codex.wordpress.org/es:Instalando_Wordpress // Instalando WordPress //
Septiembre 2015
[11]
http://bibing.us.es/proyectos/abreproy/12213/fichero/Proyecto+fin+de+carrera.pdf //
Estructura de la documentacin. // Septiembre 2015.
[12] Proyecto fin de carrera Raspberry Pi y Camera Board Raspi en entorno Web
(Marzo 2015) // Autor: Antonio Ramn Martnez Jara. // Agosto 2015.
97
98
2015
2015
CAPTULO 8
ANEXOS
99
2015
8. ANEXOS
8.1 Aplicacin Mvil
Disponemos en el Market de Android (Google Play) una aplicacin desde donde
poder ver nuestros reportes de humedad y temperatura. La aplicacin se llama
Raspberry Weather y se puede descargar desde
https://play.google.com/store/apps/details?id=com.raspberryweather
Para que esta aplicacin muestre nuestros datos deberemos de conectarnos a la
Raspberry Pi, dirigirnos a la carpeta Raspberry-Weather con cd /root/RaspberryWeather
https://raw.githubusercontent.com/peterkodermac/My-weather-stationgenerator/master/createXml.py
Este script lo que crea es un archivo (output.xml) con los datos de la base de datos
en formato XML en el directorio /var/www/ que es el que leer la aplicacin.
100