Intro Rpi Arduino Iot

39
Raspberry Pi y el Internet de las Cosas Una Guía Para Principaintes Una publicación de RICVEAL.COM

Transcript of Intro Rpi Arduino Iot

Page 1: Intro Rpi Arduino Iot

Raspberry Pi y el Internet de

las CosasUna Guía Para Principaintes

Una publicación de RICVEAL.COM

Page 2: Intro Rpi Arduino Iot

Raspberry y el Internet delas Cosas paraPrincipiantesLicencia

Usted es libre de:

Copiar, distribuir y comunicar públicamente la obra Hacerobras derivadas Bajo las condiciones siguientes:• Reconocimiento. Debe reconocer los créditos de laobra especificando como autor de la obra original aRicardo Vega Alonso.

2

Page 3: Intro Rpi Arduino Iot

Deberá enlazar o citar como fuente originalhttp://ricveal.com (pero no de una manera que sugie-ra que tiene su apoyo o apoyan el uso que hace de suobra).

• Compartir bajo la misma licencia. Si transforma omodifica esta obra para crear una obra derivada, sólopuede distribuir la obra resultante bajo lamisma licen-cia, una de similar o una de compatible.

• Al reutilizar o distribuir la obra, tiene que dejar bienclaro los términos de la licencia de esta obra.

• Alguna de estas condiciones puede no aplicarse si seobtiene el permiso del titular de los derechos de autor

• Nada en esta licencia menoscaba o restringe los dere-chos morales del autor.

VersiónEsta es la versión de Diciembre de 2014.

Puedes consultar http://ricveal.com para ver si hay versionesactualizadas.

3

Page 4: Intro Rpi Arduino Iot

Sobre el AutorSoy Ricardo Vega, en Internet@ricveal. Soy Ingeniero en Elec-

trónica Industrial y Automática por la Universidad de León.

Llevo años involucrado en diferentes proyectos relacionadoscon Software y Hardware Libre como puede ser la plataformaArduino y/o Impresión 3D.

Participo activamente en algunos proyectos colaborativos ysiempre que puedo me gusta perderme por foros y aportar migranito de arena puesto que Internet es de todos y para todos.

He llevado a cabo mi proyecto final de carrera centrándomeen la domótica/inmótica. Para ello me he apoyado en tecnolo-gías plenamente asentadas como el protocolo KNX e introdu-ciendo innovaciones mediante la implementación de una seriede servicios a través de Linux y una Raspberry Pi.

He trabajado en el Instituto de Automática y Fabricación dela Universidad de León desarrollando un sistema de supervision

4

Page 5: Intro Rpi Arduino Iot

y control industrial multiplataforma basado en Python que se hamontado sobre una Raspberry Pi.

Creo que tanto domótica como inmótica deben ser tecno-logías ligadas a eficiencia energética. Igualmente, considero lagestión energética como uno de los grandes retos a los quenos enfrentamos la sociedad en su conjunto, los ingenieros enparticular. En este sentido, añado a mis intereses temas relacio-nados con energías renovables.Soy un apasionado del Internet de las Cosas.De este modo, teniendo en cuenta todas las tecnologías de

las que he hablado, creo, deseo y trabajo para que evolucione-mos el término y significado de sostenibilidad.

Además de todo esto, mantengo un blog (http://ricveal.com)donde intento exponer con sencillez el día a día de la tecnologíade cara al usuario porque creo que la tecnología tiene la increí-ble capacidad de transformar y mejorar la vida de las personasindependientemente de sus conocimientos técnicos.

5

Page 6: Intro Rpi Arduino Iot

Creo que es difícil estar al día en un mundo donde la infor-mación es tan masiva y cambiante pero no por ello pierde im-portancia por lo que he dedicado mucho tiempo a mejorar miproductividad personal y estrategias de adquisición de informa-ción, creando mi propio y privado departamento de inteligenciadesde el cual mando píldoras de información a través de mis re-des sociales.

No dejes de visitar mi blog, donde pretendo devolver a Inter-net un poco del conocimiento que Internet me ha dado a la parque me da a conocer profesionalmente. Siempre podréis apor-tarme ideas y sugerencias.

¡Un saludo!

6

Page 7: Intro Rpi Arduino Iot

Índice generalÍndice general 6

1. Lista de Materiales 9

2. Configuración Cero 112.1. La tarjeta SD - Un almacenamiento para la Rasp-

berry Pi . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.2. Preparación de la Raspberry Pi . . . . . . . . . . . . 13

2.3. Configuración de la tarjeta SD . . . . . . . . . . . . 13

2.4. Formateo de nuestra tarjeta . . . . . . . . . . . . . 14

2.4.1. Instrucciones de formato para Windows 7 . 16

2.4.2. Instrucciones de formato para Mac OS X . . 17

7

Page 8: Intro Rpi Arduino Iot

Índice general2.4.3. Instrucciones de formato para Linux . . . . 18

3. Instalación y primera puesta en marcha 213.1. BerryBoot . . . . . . . . . . . . . . . . . . . . . . . . 21

3.1.1. Descarga el zip BerryBoot . . . . . . . . . . . 22

3.1.2. Conexión de la Raspberry Pi . . . . . . . . . 23

3.1.3. La descarga del sistema operativo . . . . . . 24

3.2. Raspi-config. Una ayuda para la primera configura-ción . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3.3. Instalación completa . . . . . . . . . . . . . . . . . . 31

4. RPi y Arduino 324.1. Instalando pySerial . . . . . . . . . . . . . . . . . . . 33

4.2. Arduino -> Raspberry vía USB . . . . . . . . . . . . . 34

4.3. Raspberry Pi -> Arduino . . . . . . . . . . . . . . . . 37

8

Page 9: Intro Rpi Arduino Iot

Capítulo 1Lista de MaterialesA lo largo de esta guía vamos a configurar una Raspberry Pi

para que esté totalmente operativa y, junto con la interconexiónque llevaremos a cabo con Arduino, podremos convertirla en elcerebro de nuestra instalación domótica. Vamos a emplear:

Raspberry PiCable HDMIAdaptador de CorrienteTarjeta de Memoria SDArduino UNOCable USB macho - macho (El Arduino incluye uno)

9

Page 10: Intro Rpi Arduino Iot

Si no tienes alguno de estos productos, te invito a pasartepor:

http://ricveal.com/compras-navidenas-domoticadonde podrás ver todos los enlaces necesarios para hacerte

con cada producto.

10

Page 11: Intro Rpi Arduino Iot

Capítulo 2Configuración CeroEn esta primera parte vamos a configurar nuestra Raspberry

Pi. Necesitaremos comenzar instalando un sistema operativo enuna tarjeta SD. Una vez realizado esto, podemos empezar a ins-talar software extra para escribir a posteriori código que nos per-mita controlar nuestros dispositivos a través del los pines GPIO.Vamos a necesitar completar una serie de pasos:

1. Conseguir una tarjeta SD2. Formatearla3. Elegir una versión de Linux4. Instalar el sistema operativo5. Configurar el sistema operativo

11

Page 12: Intro Rpi Arduino Iot

2.1. La tarjeta SD - Un almacenamiento para la RaspberryPi

Una vez estos pasos este completos, estaremos preparadospara comenzar nuestros proyectos de control y automatizacióncasera.

2.1. La tarjeta SD - Un almacenamiento parala Raspberry Pi

Una tarjeta SD es una forma de almacenamiento portable dealto rendimiento disponible para dispositivos electrónicos comocámaras o PC’s.

12

Page 13: Intro Rpi Arduino Iot

2.2. Preparación de la Raspberry PiLa Raspberry Pi viene equipado con una ranura para tarjetas

SD que nos permite insertarlas y utilizarlas como mecanismode almacenamiento principal de nuestro dispositivo, al igualque un disco duro en un PC.

2.2. Preparación de la Raspberry PiAunque se pueden utilizar otros mecanismos de almacena-

miento, como una unidad USB o un disco duro USB externo, latarjeta SD es pequeña y por lo tanto se presta mejor a los dispo-sitivos integrados como los que se encuentran en proyectos deautomatización del hogar.Hay una gran variedad de marcas de tarjetas SD en el mer-

cado con diferentes tamaños. El Raspberry Pi es compatible contarjetas SD de gran tamaño, como aquellas con 64 GB de espaciode almacenamiento. Sin embargo, una tarjeta SD con unmínimode almacenamiento de 8 GB debería ser suficiente.

2.3. Configuración de la tarjeta SDAntes de que podamos instalar nuestro sistema operativo,

tenemos que configurar la tarjeta SD. Esto implica dar formatoal sistema de ficheros FAT primero.

13

Page 14: Intro Rpi Arduino Iot

2.4. Formateo de nuestra tarjetaDespués de formatear la tarjeta SD vamos a instalar un pro-

grama llamado BerryBoot. Esto nos permite instalar el sistemaoperativo que la Raspberry Pi utilizará en la tarjeta SD de formasencilla.

Debes coger tu tarjeta e insertarla en la ranura SD de tu or-denador portátil o PC para comenzar el formateo.

2.4. Formateo de nuestra tarjetaComo se explica en el apartado anterior, con el fin de instalar

BerryBoot, primero tenemos que formatear la tarjeta SD en for-mato FAT. Esta es una tarea bastante sencilla y se puede realizaren un PC o Mac.

14

Page 15: Intro Rpi Arduino Iot

2.4. Formateo de nuestra tarjeta

Al comprar una tarjeta SD, seguramente ya esté formateadaen FAT debido a que este formato es muy popular entre disposi-tivos como cámaras digitales. Muchos fabricantes envían la tar-jeta ya para que esté lista según sale de la caja por lo que no serequiere formatearla.

Sin embargo, aquí te proporciono las instrucciones para Win-dows 7, Mac OS X y Linux para que puedas volver a formatear latarjeta si así lo deseas.

15

Page 16: Intro Rpi Arduino Iot

2.4. Formateo de nuestra tarjeta2.4.1. Instrucciones de formato para Windows 7Las instrucciones que siguientes te guiarán a través del pro-

ceso de formateo de la tarjeta SD con el sistema operativo Win-dows 7. Una vez hayamos terminado, estarás listo para instalarBerryBoot en tu tarjeta SD.

1. Haz clic en el botón Inicio de la barra de tareas deWindows.2. En el menú Inicio, haz clic en Equipo.3. Ahora te aparecerá una ventana con un panel a la izquierdalistando artículos como Favoritos, Bibliotecas, Ordenadory Red. El panel de la derecha mostrará los dispositivos dealmacenamiento del PC.

4. En la lista de dispositivos en el panel derecho, haz clic en latarjeta SD.

5. En el menú emergente, haz clic izquierdo en Formato.6. Ahora verás una ventana emergente para dar formato aldisco extraíble.

7. Desde el sistema de archivos desplegable, selecciona FAT32(por defecto) si no está ya seleccionado.

8. Puedes dejar los otros menús desplegables de ajustes talcomo están.

9. En el campo de entrada de texto de la etiqueta de volumen,escriba un nombre para la tarjeta SD como RASPBERRYPI.

16

Page 17: Intro Rpi Arduino Iot

2.4. Formateo de nuestra tarjeta10. Marca la casilla de Formato rápido.11. Ahora estás listo para formatear la tarjeta.12. Haz clic en el botón Inicio.

Windows te formateará la tarjeta SD usando los ajustes ante-riores.

Una vez formateada con éxito, se te presentará una ventanaemergente que te informará de que el proceso ha sido comple-tado.

Selecciona Aceptar para cerrar la ventana emergente. Ahoraestás listo para instalar BerryBoot en su tarjeta SD.

2.4.2. Instrucciones de formato para Mac OS XLos pasos siguientes te guiarán a través del formateo de una

tarjeta SD en un equipo Mac OS X. Una vez completa, la tarjetaSD estará listo para copiar en ella la aplicación BerryBoot.

1. Abre la carpeta Aplicaciones.2. Selecciona el icono de la carpeta Utilidades.3. En la carpeta abierta, ahora selecciona la Utilidad de Dis-cos.

17

Page 18: Intro Rpi Arduino Iot

2.4. Formateo de nuestra tarjeta4. La ventana de la Utilidad de discos se abrirá. En el lado dela izquierda, podrás ver una lista de los discos, volúmenesy las imágenes de disco.

5. Selecciona la tarjeta SD en el menú de la izquierda.6. Una vez seleccionada, se te presentará la información so-bre el disco en el panel de la derecha.

7. Desde este panel, selecciona la ficha Borrar.8. Ahora se te presentará un conjunto de opciones para for-matear la tarjeta SD.

9. En el menú desplegable Formato, seleccione MS-DOS (FAT).10. Pon de nombre a tu tarjeta SD algo tal como RASPBERRYPI.11. Ahora estamos listos para formatear la tarjeta.12. Haz clic en el botón Borrar.

Mac OS X formateará la tarjeta SD con las especificacionesque hemos introducido. Ahora podemos pasar al siguiente pasode la instalación BerryBoot.

2.4.3. Instrucciones de formato para LinuxPara formatear una tarjeta SD en Linux, vamos a utilizar el

programa mkdosfs a través de la ventana de terminal.

18

Page 19: Intro Rpi Arduino Iot

2.4. Formateo de nuestra tarjetaHay una serie de herramientas disponibles para el formateo

y particionado en Linux. El programa mkdosfs da formato a undispositivo para que utilice un sistema de archivos MS-DOS, porejemplo FAT16 o FAT32.

1. Carga la ventana de terminal.2. Escribe el comando df -h en ella.3. Busca el nombre del sistema de archivos de la tarjeta SD yanótalo.

4. También tenen cuenta dónde el directorio está montado.5. Si no estás en el sistema como root, cambio de usuario aroot utilizando: sudo su

6. Con el fin de formatear la tarjeta SD, necesitarás desmon-tarla. Para esto, tendrás que utilizar el comando unmounty pasarle el nombre del sistema de ficheros que has anota-do, por ejemplo: unmount / dev / mmcblk0p2.

7. Ahora podemos utilizar el comando mkdosfs para forma-tear la tarjeta SD.

8. Escribe el siguiente comando: mkdosfs / dev / mmcblk0p2-F32

9. Tu tarjeta SD ahora será formateada en FAT32.10. Ahora vuelve amontar la tarjeta SD utilizando el nombre de

sistema de archivos y montándola en el nombre que grabó

19

Page 20: Intro Rpi Arduino Iot

2.4. Formateo de nuestra tarjetaanteriormente: mount / dev / mmcblk0p2 / media / tarjetaSD

Tu tarjeta SD estará ahora formateada y lista para copiar Berry-Boot en la misma.

20

Page 21: Intro Rpi Arduino Iot

Capítulo 3Instalación y primerapuesta en marcha3.1. BerryBootHay varias formas de instalar el sistema operativo en la tarje-

ta SD, pero una de las más fáciles es BerryBoot.

BerryBoot es un gestor de arranque compatible conMac,Win-dows y Linux. Funciona al ser descomprimido en una tarjeta SDformateada y luego, cuando el Raspberry Pi está encendida, sepone en marcha.

21

Page 22: Intro Rpi Arduino Iot

3.1. BerryBoot

Una vez cargado, te permite elegir el sistema operativo quequieres instalar y te guía a través del proceso. La aplicación Berry-Boot también ayuda a instalar varios sistemas operativos en unasola tarjeta SD.

3.1.1. Descarga el zip BerryBootNuestra primera tarea será descargar el archivo zip Berry-

Boot. Esto se puede encontrar en:

http://www.berryterminal.com/doku.php/berryboot.

Encuentra el enlace de descarga en la página y descargar elarchivo zip. El archivo es de alrededor de 21,3 MB.

22

Page 23: Intro Rpi Arduino Iot

3.1. BerryBootAhora tienes que extraer el contenido del archivo zip Berry-

Boot que acabas de descargar y moverlo a tu tarjeta SD. El con-tenido del archivo comprimido son los archivos que se utilizaráncuando el Raspberry Pi arranque por primera vez.

Cuando el proceso anterior se haya completado, estamos lis-tos para conectar la Raspberry Pi y los periféricos para poderinstalar el sistema operativo.

3.1.2. Conexión de la Raspberry PiAhora vamos a configurar el hardware de nuestra Raspberry

Pi. Tienes que completar los siguientes pasos antes de intentarencender el Raspberry Pi:

1. Extrae la tarjeta SD de tu PC / Mac y colócalo en el puertode la tarjeta SD de tu Raspberry Pi.

2. Conecta la Raspberry Pi a tu monitor con el cable HDMI.3. Conecta el teclado y el ratón a la Raspberry Pi a través delos puertos USB.

4. Conecta el router al puerto Ethernet de tu Raspberry Pi através de un cable Ethernet.

Una vez completados estos pasos ya puedes encender la Rasp-berry Pi conectándola a la alimentación.

23

Page 24: Intro Rpi Arduino Iot

3.1. BerryBootEn el monitor, ahora deberías ver la pantalla de bienvenida

BerryBoot. Esto nos dice que hemos copiado con éxito los archi-vos en la tarjeta SD y ahora podemos configurar nuestra selec-ción de sistema operativo.

3.1.3. La descarga del sistema operativoAhora tenemos que elegir entre la variedad de sistemas ope-

rativos que están disponibles para instalar en la Raspberry Pi.Para nuestro proyecto de automatización del hogar, vamos a uti-lizar un sistema operativo llamado Raspbian. Hay varias razonespara elegir este sobre otro sistema operativo.

Raspbian se basa en el sistema operativo Debian WheezyLinux y ha sido optimizado para su uso con Raspberry Pi. Mi-ke Thompson y Peter Green de Raspbian. org lo desarrollarony aunque no es un producto oficial de la fundación RaspberryPi, es el sistema operativo que la fundación recomienda para losprincipiantes en su página web.

Si no estás familiarizado con Linux, es un grupo de sistemasoperativos de código abierto que utiliza el kernel de Linux y pro-porciona una alternativa a sistemas como Windows.

Además, el sistema operativo Raspbian, presenta las siguien-tes características:

24

Page 25: Intro Rpi Arduino Iot

3.1. BerryBootRaspbian tiene un entorno de escritorio similar a Win-dows y Mac llamados LXDE, por lo que proporciona unatransición fácil para quienes no estén familiarizados con lalínea de comandos de Linux.Viene preinstalado con el software que será útil para es-cribir código para el Raspberry Pi y Arduino como Python.También incluye otro software que puedes estar interesa-do en explorar. Un ejemplo es el Scratch, una herramientapara la introducción de la programación para los niños.El sistema operativo ha sido adaptado para funcionar enla Raspberry Pi. La compilación de código está optimizadopara los cálculos en el chip de punto flotante (hard-float) enlugar de un método basado en software más lento.Existe un amplio apoyo de la comunidad para el sistemaoperativo, lo que significa que a medida que avanza conproyectos más allá de esta guía, habrá un montón de re-cursos y ayuda a tu disposición.

Una vez que el Raspberry Pi está encendido, verás la pantallade bienvenida BerryBoot. Sigue los pasos para instalar Raspbian.

Desde la ventana emergente de bienvenida, selecciona lossiguientes ajustes:

1. Si tienes fronteras verdes en la parte superior e inferiorde tu monitor, selecciona el botón titulado "Sí (desactivaroverscan)".

25

Page 26: Intro Rpi Arduino Iot

3.1. BerryBoot2. En la opción de conexión de red, selecciona el botón çone-xión de cable".

3. A partir de la configuración regional, selecciona las opcio-nes adecuadas para tu zona horaria y los campos de diseñodel teclado.

4. Una vez terminado, selecciona el botón OK.5. Cuando hayas hecho clic en Aceptar, se te llevará a la pan-talla de selección de discos. Aquí podrás elegir en qué dis-positivo de almacenamiento deseas instalar tu sistema ope-rativo.

Si tienes otros dispositivos de almacenamientomás allá de sutarjeta SD conectada a la Raspberry Pi, que también se te dará laopción de usar estos. Sin embargo vamos a utilizar la tarjeta SD.

1. Selecciona la tarjeta SD de la lista y luego cambie el sistemade archivos a ext4. Al igual que FAT, ext4 es un sistema dearchivos y en este caso está dirigido a Linux.

2. Ahora selecciona el botón Formato.3. Una vez formateada, se nos presenta la opción ”Instalar elsistema” desde donde podemos elegir Raspbian.

4. Haz clic en la opción Debian Wheezy Raspbian.

26

Page 27: Intro Rpi Arduino Iot

3.1. BerryBoot

Esta descarga es de alrededor de 430 MB y en función de lavelocidad de tu conexión a Internet, tardará más o menos.

Una vez completado, se te presentará el editor de menús deBerryBoot. Se trata de una pantalla con un menú y una lista delos sistemas operativos instalados actualmente en tu tarjeta SD.

Hay una serie de opciones en la parte superior de la pantalladel editor de menú BerryBoot:

Añadir OSEditarClonarExportación

27

Page 28: Intro Rpi Arduino Iot

3.2. Raspi-config. Una ayuda para la primeraconfiguraciónEliminarUsar por omisiónSalir

El proceso es muy fácil e intuitivo.

1. Selecciona el sistema operativo que has instalado y haz clicen ”Establecer como predeterminado”. Esto significa queel sistema operativo Raspbian instalado se lanza como laopción por defecto cuando la Raspberry Pi se inicia.

2. A continuación, selecciona Salir.

3.2. Raspi-config. Una ayuda para la primeraconfiguración

Ahora verás en la pantalla a Raspi-config.

Raspi-config es un software que a través de un menú permi-te asignar algunos valores de configuración de tu Raspberry Pi.Puede navegar por la pantalla con las teclas de flechas y use latecla Intro para seleccionar una opción.

28

Page 29: Intro Rpi Arduino Iot

3.2. Raspi-config. Una ayuda para la primeraconfiguración

El menú en esta pantalla consiste en lo siguiente:

Información: Información sobre esta herramientaOverscan: Cambiar overscanconfigure_keyboard: Establecer la distribución del tecladochange_pass: Cambio de contraseña para el usuario ’pi’change_locale: Establecer la configuración regionalchange_timezone: Establecer zona horariamemory_split: Cambiar distribución de la memoriaoverclock: Configurar overclocking

29

Page 30: Intro Rpi Arduino Iot

3.2. Raspi-config. Una ayuda para la primeraconfiguraciónssh: Activar o desactivar el servidor SSHboot_behaviour: Iniciar escritorio en el arranqueActualización: Intenta actualizar Raspi-config<Seleccionar>: Selecciona una opción<Finalizar>: Terminar con el menú

Desde este menú, vamos a cambiar la contraseña y habilitarSSH.

1. En primer lugar tienes que buscar y seleccionar la opcióndel menú change_pass, e introducir la nueva contraseña.La contraseña predeterminada para el Raspberry Pi es rasp-berry. Te recomiendo que cambies la contraseña a una decierta fortaleza.Después de esto, tenemos que configurar SSH para quenos permite conectarnos a la Raspberry Pi de forma re-mota a través de la línea de comandos en una máquinadiferente.

2. Selecciona la opción ssh y habilita el servidor ssh.3. Ahora hemos terminado de configurar los ajustes que ne-cesitamos en la pantalla Raspi-config y puedes salir, paralo que debes ir a la opción <Finalizar>y pulsar la tecla Intropara completar la configuración.

30

Page 31: Intro Rpi Arduino Iot

3.3. Instalación completa3.3. Instalación completaUna prueba final opcional que puedes realizar es conectarte

a tu Raspberry Pi a través de SSH.

Hay varias maneras de obtener la dirección IP asignada a laRaspberry Pi, uno de los cuales es comprobar la tabla DHCP delrouter de tu casa. Sin embargo, un método más fácil es compro-barla en la propia Raspberry Pi.

Para ello el siguiente comando en la terminal:

1 ip addr espectaculo eth0

31

Page 32: Intro Rpi Arduino Iot

Capítulo 4RPi y ArduinoEn esta segunda parte, vamos a configurar una placa de Ar-

duino y la Raspberry Pi para que funcionen juntos. Vamos a ins-talar todas las librerías necesarias para que el software funcionecorrectamente. Una vez seguidos estos pasos, vamos a poner-nos manos a la obra con el IDE de Arduino.

Existen varias formas de conectar una Raspberry Pi y una pla-ca de Arduino como pueden ser I2C, GPIO o comunicación serie.Nosotros vamos a utilizar la forma que creo es más sencilla y esaquella que comunica ambos dispositivos mediante una comu-nicación serie a través de un cable USB. A parte de la sencillez,este método nos facilita mucho la conexión ya que no necesiteningún desembolso de dinero extra puesto que podemos utilizarel mismo cable USB que viene con nuestra placa de Arduino.

32

Page 33: Intro Rpi Arduino Iot

4.1. Instalando pySerial

Para demostrar como funciona he preparado dosmini-proyectos:uno para enviar datos de la Raspberry a Arduino y otro en senti-do opuesto.

4.1. Instalando pySerialpySerial es una librería para la Raspberry Pi que nos permi-

te leer y escribir a través del puerto serie mediante lenguaje deprogramación Python.

33

Page 34: Intro Rpi Arduino Iot

4.2. Arduino -> Raspberry vía USBPara ello, los pasos que debemos seguir son muy sencillos

ya que simplemente debemos ejecutar en la consola de nuestraRPi los siguientes comandos:

1 sudo apt -get update2 sudo apt -get install python - serial

4.2. Arduino -> Raspberry vía USBVamos a saludar a nuestra Rasbperry desde Arduino cada 2

segundos. Este es el código que deberás introducir en tu IDE deArduino:

1 void setup (){2 Serial .begin (9600) ;3 }45 void loop (){6 Serial . println (" Hello Pi ’’);7 delay (2000) ;8 }

Ejecuta Python2 en tu Raspberry Pi. Entrarás en un menunuevo donde deberás incluir los siguientes comandos:

1 import serial2 ser = serial . Serial (’/ dev/ttyACM0 ’, 9600)

34

Page 35: Intro Rpi Arduino Iot

4.2. Arduino -> Raspberry vía USB

El primer argumento es el nombre de la interfaz USB que es-tamos usando. Tal vez el nombre de tu puerto no sea el mismoque el mío. Para averiguar el nombre del puerto tan sólo debe-mos teclear en la terminal de la Raspberry Pi (fuera del editorde Python) y teniendo desenchufada nuestra placa Arduino lasiguiente sentencia:

1 ls /dev/tty*

A continuación, conecta tu Arduino y ejecuta de nuevo el co-mando. Si aparece un nombre de un puerto, entonces, ese es tupuerto.

El segundo argumento (9600) es el baud rate y debe coincidircon el que tengas establecido en tu programa de Arduino.

Una vez aclarado esto, volvamos a donde nos quedamos. Ha-bíamos introducido el comando:

1 python

en nuestra terminal y habíamos entrado en una pantalla contres signos.

Debíamos introducir ahora los comandos:

35

Page 36: Intro Rpi Arduino Iot

4.2. Arduino -> Raspberry vía USB

1 import serial2 ser = serial . Serial (’/ dev/ttyACM0 ’, 9600)

adaptando los parámetros del segundo comando a los denuestro equipo.

Si una vez hecho esto no obtenemos ningún error, es que to-do lo hemos hecho bien y podemos continuar. Es el momentode introducir el bucle que permanecerá escuchando los men-sajes que nos envía nuestro Arduino. Para ello introducimos elsiguiente comando:

1 while 1 :2 ser. readline ()

Es importante que sepas que vas a tener que pulsar dos ve-ces el <enter> trás la segunda linea. Deberías empezar a recibirmensajes ”Hello Pi” cada 2 segundos. Para parar el programa tansolo tienes que pulsar la combinación

1 Ctrl + C

y detendrás el programa de Python.

36

Page 37: Intro Rpi Arduino Iot

4.3. Raspberry Pi -> Arduino4.3. Raspberry Pi -> ArduinoEn este ejemplo, nuestra Raspberry Pi va a estar enviando un

número y la placa de Arduino va a encender un led situado enel Pin 12 tantas veces como el número enviado por la RaspberryPi.

El código a introducir es el siguiente:

1 const int ledPin = 12;2 void setup (){3 pinMode (ledPin , OUTPUT );4 Serial .begin (9600) ;5 }67 void loop (){8 if ( Serial . available ()) {9 light ( Serial .read () - ’0’);10 }11 delay (500);12 }1314 void light(int n) {15 for (int i =0; i < n; i++) {16 digitalWrite (ledPin , HIGH);17 delay (100=;18 digitalWrite (ledPin , LOW);19 delay (100);20 }21 }

37

Page 38: Intro Rpi Arduino Iot

4.3. Raspberry Pi -> ArduinoEn el lado de la Raspberry Pi, vas a necesitar escribir:

1 ser.write (’3’)

Ahora puedes ver como el Led de nuestro Arduino se encien-de 3 veces.

Hemos llegado al final, ahora es tu turno y debes ser creativopara encontrar cuantas cosas diferentes cosas puedes hacer. Seme ocurren algunos ejemplos que espero te sirvan de guía:

Controlar un LCD a través de la Raspberry PiControlar un motor a través de la Raspberry Pi

38

Page 39: Intro Rpi Arduino Iot

““Si piensas que internet ha cambiado tu vida, piénsalo de nuevo. ¡El Inter-net de las Cosas volverá a hacerlo de nuevo!”

— Brendan O’Brien, Aria Systems