Академический Документы
Профессиональный Документы
Культура Документы
COM
Raspberry Pi y
el Internet de
las Cosas
Una Gua Para Principaintes
Raspberry y el Internet de
las Cosas para
Principiantes
Licencia
Versin
Esta es la versin de Diciembre de 2014.
Puedes consultar http://ricveal.com para ver si hay versiones
actualizadas.
Sobre el Autor
Soy Ricardo Vega, en Internet @ricveal. Soy Ingeniero en Electrnica Industrial y Automtica por la Universidad de Len.
Llevo aos involucrado en diferentes proyectos relacionados
con Software y Hardware Libre como puede ser la plataforma
Arduino y/o Impresin 3D.
Participo activamente en algunos proyectos colaborativos y
siempre que puedo me gusta perderme por foros y aportar mi
granito de arena puesto que Internet es de todos y para todos.
He llevado a cabo mi proyecto nal de carrera centrndome
en la domtica/inmtica. Para ello me he apoyado en tecnologas plenamente asentadas como el protocolo KNX e introduciendo innovaciones mediante la implementacin de una serie
de servicios a travs de Linux y una Raspberry Pi.
He trabajado en el Instituto de Automtica y Fabricacin de
la Universidad de Len desarrollando un sistema de supervision
4
Creo que tanto domtica como inmtica deben ser tecnologas ligadas a eciencia energtica. Igualmente, considero la
gestin energtica como uno de los grandes retos a los que
nos enfrentamos la sociedad en su conjunto, los ingenieros en
particular. En este sentido, aado a mis intereses temas relacionados con energas renovables.
Soy un apasionado del Internet de las Cosas.
De este modo, teniendo en cuenta todas las tecnologas de
las que he hablado, creo, deseo y trabajo para que evolucionemos el trmino y signicado de sostenibilidad.
Adems de todo esto, mantengo un blog (http://ricveal.com)
donde intento exponer con sencillez el da a da de la tecnologa
de cara al usuario porque creo que la tecnologa tiene la increble capacidad de transformar y mejorar la vida de las personas
independientemente de sus conocimientos tcnicos.
Creo que es difcil estar al da en un mundo donde la informacin es tan masiva y cambiante pero no por ello pierde importancia por lo que he dedicado mucho tiempo a mejorar mi
productividad personal y estrategias de adquisicin de informacin, creando mi propio y privado departamento de inteligencia
desde el cual mando pldoras de informacin a travs de mis redes sociales.
No dejes de visitar mi blog, donde pretendo devolver a Internet un poco del conocimiento que Internet me ha dado a la par
que me da a conocer profesionalmente. Siempre podris aportarme ideas y sugerencias.
Un saludo!
ndice general
ndice general
1. Lista de Materiales
2. Conguracin Cero
11
12
13
. . . . . . . . . . . .
13
14
16
17
ndice general
2.4.3. Instrucciones de formato para Linux . . . .
3. Instalacin y primera puesta en marcha
18
21
3.1. BerryBoot . . . . . . . . . . . . . . . . . . . . . . . .
21
22
23
24
28
31
4. RPi y Arduino
32
33
34
37
Captulo 1
Lista de Materiales
A lo largo de esta gua vamos a congurar una Raspberry Pi
para que est totalmente operativa y, junto con la interconexin
que llevaremos a cabo con Arduino, podremos convertirla en el
cerebro de nuestra instalacin domtica. Vamos a emplear:
Raspberry Pi
Cable HDMI
Adaptador de Corriente
Tarjeta de Memoria SD
Arduino UNO
Cable USB macho - macho (El Arduino incluye uno)
9
http://ricveal.com/compras-navidenas-domotica
donde podrs ver todos los enlaces necesarios para hacerte
con cada producto.
10
Captulo 2
Conguracin Cero
En esta primera parte vamos a congurar nuestra Raspberry
Pi. Necesitaremos comenzar instalando un sistema operativo en
una tarjeta SD. Una vez realizado esto, podemos empezar a instalar software extra para escribir a posteriori cdigo que nos permita controlar nuestros dispositivos a travs del los pines GPIO.
Vamos a necesitar completar una serie de pasos:
1. Conseguir una tarjeta SD
2. Formatearla
3. Elegir una versin de Linux
4. Instalar el sistema operativo
5. Congurar el sistema operativo
11
2.1.
12
2.2.
Preparacin de la Raspberry Pi
Aunque se pueden utilizar otros mecanismos de almacenamiento, como una unidad USB o un disco duro USB externo, la
tarjeta SD es pequea y por lo tanto se presta mejor a los dispositivos integrados como los que se encuentran en proyectos de
automatizacin del hogar.
Hay una gran variedad de marcas de tarjetas SD en el mercado con diferentes tamaos. El Raspberry Pi es compatible con
tarjetas SD de gran tamao, como aquellas con 64 GB de espacio
de almacenamiento. Sin embargo, una tarjeta SD con un mnimo
de almacenamiento de 8 GB debera ser suciente.
2.3.
Conguracin de la tarjeta SD
13
2.4.
14
15
2.4.1.
Las instrucciones que siguientes te guiarn a travs del proceso de formateo de la tarjeta SD con el sistema operativo Windows 7. Una vez hayamos terminado, estars listo para instalar
BerryBoot en tu tarjeta SD.
1. Haz clic en el botn Inicio de la barra de tareas de Windows.
2. En el men Inicio, haz clic en Equipo.
3. Ahora te aparecer una ventana con un panel a la izquierda
listando artculos como Favoritos, Bibliotecas, Ordenador
y Red. El panel de la derecha mostrar los dispositivos de
almacenamiento del PC.
4. En la lista de dispositivos en el panel derecho, haz clic en la
tarjeta SD.
5. En el men emergente, haz clic izquierdo en Formato.
6. Ahora vers una ventana emergente para dar formato al
disco extrable.
7. Desde el sistema de archivos desplegable, selecciona FAT32
(por defecto) si no est ya seleccionado.
8. Puedes dejar los otros mens desplegables de ajustes tal
como estn.
9. En el campo de entrada de texto de la etiqueta de volumen,
escriba un nombre para la tarjeta SD como RASPBERRYPI.
16
2.4.2.
17
2.4.3.
20
Captulo 3
Instalacin y primera
puesta en marcha
3.1.
BerryBoot
Hay varias formas de instalar el sistema operativo en la tarjeta SD, pero una de las ms fciles es BerryBoot.
BerryBoot es un gestor de arranque compatible con Mac, Windows y Linux. Funciona al ser descomprimido en una tarjeta SD
formateada y luego, cuando el Raspberry Pi est encendida, se
pone en marcha.
21
3.1. BerryBoot
3.1.1.
Nuestra primera tarea ser descargar el archivo zip BerryBoot. Esto se puede encontrar en:
http://www.berryterminal.com/doku.php/berryboot.
Encuentra el enlace de descarga en la pgina y descargar el
archivo zip. El archivo es de alrededor de 21,3 MB.
22
3.1. BerryBoot
Ahora tienes que extraer el contenido del archivo zip BerryBoot que acabas de descargar y moverlo a tu tarjeta SD. El contenido del archivo comprimido son los archivos que se utilizarn
cuando el Raspberry Pi arranque por primera vez.
Cuando el proceso anterior se haya completado, estamos listos para conectar la Raspberry Pi y los perifricos para poder
instalar el sistema operativo.
3.1.2.
Conexin de la Raspberry Pi
3.1. BerryBoot
En el monitor, ahora deberas ver la pantalla de bienvenida
BerryBoot. Esto nos dice que hemos copiado con xito los archivos en la tarjeta SD y ahora podemos congurar nuestra seleccin de sistema operativo.
3.1.3.
Ahora tenemos que elegir entre la variedad de sistemas operativos que estn disponibles para instalar en la Raspberry Pi.
Para nuestro proyecto de automatizacin del hogar, vamos a utilizar un sistema operativo llamado Raspbian. Hay varias razones
para elegir este sobre otro sistema operativo.
Raspbian se basa en el sistema operativo Debian Wheezy
Linux y ha sido optimizado para su uso con Raspberry Pi. Mike Thompson y Peter Green de Raspbian. org lo desarrollaron
y aunque no es un producto ocial de la fundacin Raspberry
Pi, es el sistema operativo que la fundacin recomienda para los
principiantes en su pgina web.
Si no ests familiarizado con Linux, es un grupo de sistemas
operativos de cdigo abierto que utiliza el kernel de Linux y proporciona una alternativa a sistemas como Windows.
Adems, el sistema operativo Raspbian, presenta las siguientes caractersticas:
24
3.1. BerryBoot
Raspbian tiene un entorno de escritorio similar a Windows y Mac llamados LXDE, por lo que proporciona una
transicin fcil para quienes no estn familiarizados con la
lnea de comandos de Linux.
Viene preinstalado con el software que ser til para escribir cdigo para el Raspberry Pi y Arduino como Python.
Tambin incluye otro software que puedes estar interesado en explorar. Un ejemplo es el Scratch, una herramienta
para la introduccin de la programacin para los nios.
El sistema operativo ha sido adaptado para funcionar en
la Raspberry Pi. La compilacin de cdigo est optimizado
para los clculos en el chip de punto otante (hard-oat) en
lugar de un mtodo basado en software ms lento.
Existe un amplio apoyo de la comunidad para el sistema
operativo, lo que signica que a medida que avanza con
proyectos ms all de esta gua, habr un montn de recursos y ayuda a tu disposicin.
Una vez que el Raspberry Pi est encendido, vers la pantalla
de bienvenida BerryBoot. Sigue los pasos para instalar Raspbian.
Desde la ventana emergente de bienvenida, selecciona los
siguientes ajustes:
1. Si tienes fronteras verdes en la parte superior e inferior
de tu monitor, selecciona el botn titulado "S (desactivar
overscan)".
25
3.1. BerryBoot
2. En la opcin de conexin de red, selecciona el botn onexin de cable".
3. A partir de la conguracin regional, selecciona las opciones adecuadas para tu zona horaria y los campos de diseo
del teclado.
4. Una vez terminado, selecciona el botn OK.
5. Cuando hayas hecho clic en Aceptar, se te llevar a la pantalla de seleccin de discos. Aqu podrs elegir en qu dispositivo de almacenamiento deseas instalar tu sistema operativo.
Si tienes otros dispositivos de almacenamiento ms all de su
tarjeta SD conectada a la Raspberry Pi, que tambin se te dar la
opcin de usar estos. Sin embargo vamos a utilizar la tarjeta SD.
1. Selecciona la tarjeta SD de la lista y luego cambie el sistema
de archivos a ext4. Al igual que FAT, ext4 es un sistema de
archivos y en este caso est dirigido a Linux.
2. Ahora selecciona el botn Formato.
3. Una vez formateada, se nos presenta la opcin Instalar el
sistema desde donde podemos elegir Raspbian.
4. Haz clic en la opcin Debian Wheezy Raspbian.
26
3.1. BerryBoot
3.2.
28
30
3.3.
Instalacin completa
31
Captulo 4
RPi y Arduino
En esta segunda parte, vamos a congurar una placa de Arduino y la Raspberry Pi para que funcionen juntos. Vamos a instalar todas las libreras necesarias para que el software funcione
correctamente. Una vez seguidos estos pasos, vamos a ponernos manos a la obra con el IDE de Arduino.
Existen varias formas de conectar una Raspberry Pi y una placa de Arduino como pueden ser I2C, GPIO o comunicacin serie.
Nosotros vamos a utilizar la forma que creo es ms sencilla y es
aquella que comunica ambos dispositivos mediante una comunicacin serie a travs de un cable USB. A parte de la sencillez,
este mtodo nos facilita mucho la conexin ya que no necesite
ningn desembolso de dinero extra puesto que podemos utilizar
el mismo cable USB que viene con nuestra placa de Arduino.
32
4.1.
Instalando pySerial
pySerial es una librera para la Raspberry Pi que nos permite leer y escribir a travs del puerto serie mediante lenguaje de
programacin Python.
33
4.2.
void setup () {
Serial . begin (9600) ;
}
4
5
6
7
8
void loop () {
Serial . println (" Hello Pi ) ;
delay (2000) ;
}
import serial
ser = serial . Serial ( / dev / ttyACM0 , 9600)
34
El primer argumento es el nombre de la interfaz USB que estamos usando. Tal vez el nombre de tu puerto no sea el mismo
que el mo. Para averiguar el nombre del puerto tan slo debemos teclear en la terminal de la Raspberry Pi (fuera del editor
de Python) y teniendo desenchufada nuestra placa Arduino la
siguiente sentencia:
1
ls / dev / tty *
A continuacin, conecta tu Arduino y ejecuta de nuevo el comando. Si aparece un nombre de un puerto, entonces, ese es tu
puerto.
El segundo argumento (9600) es el baud rate y debe coincidir
con el que tengas establecido en tu programa de Arduino.
Una vez aclarado esto, volvamos a donde nos quedamos. Habamos introducido el comando:
1
python
35
1
2
import serial
ser = serial . Serial ( / dev / ttyACM0 , 9600)
while 1 :
ser . readline ()
Es importante que sepas que vas a tener que pulsar dos veces el <enter> trs la segunda linea. Deberas empezar a recibir
mensajes Hello Pi cada 2 segundos. Para parar el programa tan
solo tienes que pulsar la combinacin
1
Ctrl + C
36
4.3.
6
7
8
9
10
11
12
void loop () {
if ( Serial . available () ) {
light ( Serial . read () - 0 ) ;
}
delay (500) ;
}
13
14
15
16
17
18
19
20
21
37
ser . write ( 3 )
38