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.
Ilustración 1 RaspBerry Pi Modelo B
1.2.2. Hardware RaspBerry Pi. Con unas dimensiones de placa de 8.5 por 5.3 cm, en el modelo B nos encontramos con unas 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
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
Precio * SoC Fabricante CPU Instrucciones Cores Velocidad ** RAM Almacenamiento GPU
Conexiones
Raspberry Pi Compute Module
Raspberry Pi Model A+
$25 USD BCM2835 Broadcom ARM1176JZF-S ARMv6 Single-core 700MHz 512MB 4GB eMMC flash internos 250MHz Broadcom VideoCore IV
$20 USD BCM2835 Broadcom ARM1176JZF-S ARMv6 Single-core 700MHz 256MB MicroSD slot
Raspberry Pi 2 Model B
$25 USD BCM2835 Broadcom ARM1176JZF-S ARMv6 Single-core 700MHz 512MB MicroSD slot
$35 USD BCM2836 Broadcom ARM Cortex-A7 ARMv7 Quad-core 900MHz 1GB (1024MB) MicroSD slot
250MHz Broadcom VideoCore IV HDMI
250MHz Broadcom VideoCore IV HDMI
4x USB2 ports
4x USB2 ports
40 GPIO pins
10/100 Ethernet
10/100 Ethernet
MIPI camera connector
40 GPIO pins
40 GPIO pins
MIPI camera connector
MIPI camera connector
MIPI display DSI
MIPI display DSI Vídeo compuesto (PAL y NTSC) vía 3.5 mm TRRS jack compartido con audio estéreo Largo: 8.6cm
250MHz Broadcom VideoCore IV 200-pin tipo DDR2 HDMI SO-DIMM 1x USB2 port
MIPI display DSI Vídeo compuesto (PAL y NTSC) vía 3.5 mm TRRS jack compartido con audio estéreo
Alimentación
Raspberry Pi Model B+
2015
Largo: 6.8cm
Largo: 6.5cm
Vídeo compuesto (PAL y NTSC) vía 3.5 mm TRRS jack compartido con audio estéreo Largo: 8.6cm
Ancho: 3cm
Ancho: 5.7cm
Ancho: 5.7cm
Ancho: 5.7cm
Peso: 7g
Peso: 23g
Peso: 45g
Peso: 45g
5 V a 2A micro USB 5 V a 2A micro 5 V a 2A micro USB USB Tabla 1 Comparativa de modelos RaspBerry Pi
5 V a 2A micro USB
* Precio oficial antes de impuestos ** Velocidad oficial sin overclocking
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.
Ilustración 3 Menu de instalación de NOOBS
8
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
Ilustración 4 Menú instalación de BerryBoot
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
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
Ilustración 5 Escritorio Raspbian
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.
extremadamente
Se
caracteriza
ligera,
lo
cual
por
ser
es
de
agradecer, y también por otro detalle curioso: tiene el servicio SSH activado por defecto.
Ilustración 6 Acceso SSH de Moebius
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
Ilustración 7 Escritorio de Arch Linux
10
Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi
2015
Arch. Se apoya sobre el gestor de paquetes Pacman (creado por Judd Vinet para gestionar los paquetes binarios) y su sistema de 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
Ilustración 8 Logotipo de arkOS
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
Entertainment
Embedded
Center)
es
Linux 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
Ilustración 9 Entorno gráfico de OpenELEC
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
Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi
PiMAME
es
una
distribución
2015
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
Ilustración 10 PiMAME, distribución
como Neo Geo, PlayStation, Super NES
orientada a juegos retro.
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
Ilustración 11 Entorno gráfico de xBian
center y de la que se han eliminado cosas
superfluas o que no se van a usar en este tipo de escenario.
RaspBMC es una 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 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 Ilustración 13 Risc OS.
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
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
Ilustración 14 Sensor DHT11
2015
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
High humidity 8 Low humidity 8 High temp. 8
0000 1101
1010 0010
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
18
2015
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
20
2015
Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi
2015
2. ANTECEDENTES, ESTADO DE LA CUESTION 2.1 Conocimientos adquiridos previos PFC Para la 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
Memoria RAM: 512MB DDR3
Tarjeta Gráfica: SGX530 aceleradora 3D
Vídeo: 1280 x 1024
Salida de Vídeo:
por HDMI
Tarjeta de red:
mini HDMI
Salida de Audio:
2015
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 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
2015
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 Comentario
2015
Con este tipo de acceso el usuario puede revisa, y testear el estado de los sensores, base de datos, modificar las tareas cron, modificar credenciales del Actor-02...
Tabla 4 Casos de uso de Administrador web
Actor-02
Administrador web
Descripció n
Este actor representa al administrador del CMS WordPress, que para acceder como tal, se tiene que identificar en el back-end de la 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 Caso de uso Actores Descripción Estímulo Respuesta Comentarios
Estación meteorológica Encender estación Ingeniero Software El sistema (la Raspberry Pi) es conectada a una fuente de alimentación . Estar apagada. Se carga el sistema operativo y con él toda la estación meteorológica No procede.
Tabla 7 Descripción de requisitos Apagar estación
Sistema Caso de uso Actores Descripción
Estación meteorológica Apagar estación Ingeniero Software 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 Caso de uso Actores Descripción
Estación meteorológica Reconfigurar Ingeniero Software 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 Caso de uso Actores Descripción Estímulo Respuesta Comentarios
Estación meteorológica Acceso remoto Ingeniero Software Se accede a la RaspBerry Pi desde internet . Estar conectado a internet. Se le permite acceso o no a todo el sistema operativo de la RaspBerry No procede.
Tabla 10 Descripción de requisitos Testear Sistema Caso de uso Actores Descripción Estímulo Respuesta Comentarios
Estación meteorológica Testear Ingeniero Software Se ejecutan diferentes scripts para testear el estado de la estación . Conectarse a la estacción. Indicará si está todo correcto o falla algo. No procede.
Tabla 11 Descripción de requisitos Cambiar Diseño
Sistema Caso de uso Actores Descripción
Estación meteorológica Cambiar diseño web Administrador web 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 Caso de uso Actores Descripción Estímulo Respuesta Comentarios
Estación meteorológica Publicar Gráfica Administrador web El Administrador web puede publicar nuevas gráficas de diferentes días . Acceder al BackOffice. Aparecen nuevas gráficas 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 Caso de uso Actores Descripción Estímulo Respuesta Comentarios
Estación meteorológica Editar Gráfica Administrador web El Administrador web puede editar gráficas ya creadas . Acceder al BackOffice. Cambian las gráficas No procede.
Tabla 14 Descripción de requisitos Testear
Sistema Caso de uso Actores Descripción
Estación meteorológica Testear Administrador web 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 Caso de uso Actores Descripción
Estación meteorológica Ver diferentes gráficas Usuario web 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
Ahora elegimos la zona horaria.
51
2015
Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi
52
2015
Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi
En la configuraciรณn del teclado seleccionamos Other > Spanish > Spanish.
53
2015
Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi
54
2015
Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi
Ahora configuramos algunas teclas del teclado.
En la opciรณn 8 tendremos las opciones avanzadas de configuraciรณn. 55
2015
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
Muy importante es activar el acceso SSH.
57
2015
Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi
58
2015
Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi Por último reiniciamos la RaspBerry Pi
Después de unos minutos nos aparecerá el escritorio de Raspbian.
Ahora conectamos el adaptador wifi, y desconectamos el cable de red.
59
2015
Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi
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
2015
Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi
2015
El siguiente paso es abrir una terminal para averiguar cual es nuestra IP local.
61
Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi
2015
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
Y nos descargamos el archivo.
Y lo guardamos en el escritorio por ejemplo.
Una vez descargado lo ejecutamos. 63
2015
Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi
2015
En Host Name pondremos la IP de la Raspberry Pi, Port 22, Connection type: SSH y pulsamos en el 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
Al finalizar editaremos el siguiente fichero: sudo nano /etc/php5/apache2/php.ini AĂąadiremos lo siguiente. extension=mysql.so
77
2015
Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi
2015
Guardaremos el fichero y a 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
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
2015
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/RaspberryWeather.git
82
Desarrollo e implementacionn de una estacionn meteorolongica mediante la plataforma hardware/software libre Raspberry Pi
2015
Tendremos una carpeta en el directorio 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/RaspberryWeather/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 Publicamos el post y observamos al visitar la pรกgina que aparece la grรกfica.
92
2015
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
95
2015
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
98
2015
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/RaspberryWeather
y descargar el código con wget
https://raw.githubusercontent.com/peterkodermac/My-weather-stationgenerator/master/createXml.py
Ahora haremos ejecutable el script con chmod +x createXml.py (el archivo createXml.py tiene que estar en el mismo directorio que getInfo.py) Tendremos que modificar el archivo getInfo.py con nano getInfo.py y 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