Sunteți pe pagina 1din 112

Internet de las cosas con la

Arduino Yun

Proyectos para ayudar a construir un mundo de cosas ms


inteligentes

Marco Schwartz

BIRMINGHAM - MUMBAI

Internet de las cosas con el Arduino Yun


Copyright 2014 Packt Publishing

Todos los derechos reservados. Ninguna parte de esta publicacin puede ser reproducida,
almacenada en un sistema de recuperacin
sistema o transmitida en cualquier forma o por cualquier medio, sin el previo escrito
autorizacin de la editorial, excepto en el caso de breves citas incorporadas en
artculos o comentarios crticos.
Cada esfuerzo se ha hecho en la preparacin de este libro para garantizar la exactitud
de la informacin presentada. Sin embargo, la informacin contenida en este libro es
vende sin garanta, ya sea expresa o implcita. Ni el autor ni Packt
Publishing, y sus concesionarios y distribuidores sern responsables de los daos
causado o presuntamente causado directa o indirectamente por este libro.
Packt Publishing ha esforzado en proporcionar informacin sobre marcas sobre todo de la
compaas y productos mencionados en este libro por el uso apropiado de capitales.
Sin embargo, Packt Publishing no puede garantizar la exactitud de esta informacin.

Primera publicacin: mayo 2014

Produccin de Referencia: 1140514

Publicado por Packt Publishing Ltd.


Livery Place
35 Livery calle
Birmingham B3 2PB, Reino Unido.
ISBN 978-1-78328-800-7
www.packtpub.com

Cubra Imagen de Shweta Suresh Karkera (shwetaimages@gmail.com)

Crditos
Autor
Marco Schwartz

Copie Editores
Tanvi Gaitonde
Dipti Kapadia

Revisores
Fiore Basile
Charalampos Doukas

Coordinador Del Proyecto


Melita Lobo

Francisco Perea
Correctores
Puesta Editor
Anthony Albuquerque

Editor de Adquisicin
Harsha Bharwani

Contenido Editor Desarrollo


Poonam Jain

Editores Tcnicos
Manan Badani
Shashank Desai
Shali Sasidharan

Maria Gould
Ameesha Verde

Indexador
Hemanjini Bari

Coordinador de Produccin
Alwin Roy

Trabajo Cubierta
Alwin Roy

Sobre el Autor
Marco Schwartz es un ingeniero elctrico, empresario y blogger. l tiene un
Mster en Ingeniera Elctrica y Ciencias de la Computacin de Suplec en
Francia, y una maestra en Ingeniera Micro de la EPFL en Suiza.
Marco tiene ms de cinco aos de experiencia en el campo de la ingeniera elctrica.
Sus intereses gravitan en torno a la electrnica, la automatizacin del hogar, el Arduino y
Plataformas Raspberry Pi, proyectos de hardware de cdigo abierto, y la impresin 3D.

Acerca de los revisores


Fiore Basile es un programador, administrador de sistemas, creativo, emprendedor, y
maker. Desde 1996, se ha desempeado como gerente de proyectos, consultor y tecnologa
oficial en proyectos industriales y de investigacin de tamaos variados de toda Italia y Europa.
Ha trabajado en las reas de patrimonio cultural, e-salud, la preservacin digital,
interfaces multimodales y web y la edicin mvil. Durante su carrera, l tiene
tambin comenz dos de TI de nueva creacin, que se celebr talleres en conferencias internacionales
y
eventos, y ha sido entrevistado por la prensa nacional e internacional. Su trabajo
experiencia le permiti construir una amplia experiencia en sistemas, web y mvil
desarrollo de software, software libre y hardware abierto, programacin integrado,
y electrnica. Actualmente est realizando investigaciones sobre tecnologas porttiles,
computacin afectiva, y los dispositivos conectados inteligentes. Tambin trabaja como coordinador
de FabLab Cascina, un laboratorio de fabricacin digital en el medio de la Toscana.

Charalampos Doukas es un investigador y un fabricante de la IO. Empez a jugar con


sensores y Arduino en 2008 al intentar capturar y transmitir los signos vitales. l es
apasionado de la combinacin de diferentes sistemas de hardware con software y servicios
el uso de Internet. l ayuda en la difusin de los conocimientos sobre el software de cdigo abierto y
hardware mediante la organizacin de sesiones de talleres y conferencias.
l ha construido muchos proyectos alrededor vigilancia de la casa y la automatizacin. Contribuye
nodos de hardware para Node-RED y tambin es autor del libro, La construccin de Internet de
Las cosas con el Arduino, CreateSpace.
Cuando Charalampos no est jugando con sensores y actuadores, se las arregla Europea
proyectos de investigacin en CREAR-NET en Trento, Italia.

Francisco Perea es profesor de educacin profesional en Consejera de Educacin


Junta de Andaluca en Espaa con ms de 14 aos de experiencia.
Se especializa en la administracin de sistemas, desarrollo web y gestin de contenidos
sistemas. En su tiempo libre, trabaja como freelance y colabora, entre
otros, con multimedia N, un pequeo estudio de diseo en Crdoba, trabajando como un sistema
administrador y desarrollador web principal.
Tambin colabor como revisor tcnico sobre el libro, SketchUp 2014 para
Visualizacin Arquitectnica, Thomas Bleicher y Robin de Jongh, Packt Publishing.
Cuando no est sentado delante de un ordenador o retoques en su taller, que puede ser
encontrado correr o andar en bicicleta por las pistas y colinas en el Condado de la Axarqua,
dnde vive.

Me gustara dar las gracias a mi esposa, Salom, y nuestros tres hijos, Paula,
lvaro y Javi, por todo el apoyo que me dio, aun cuando
estaban todos ocupados. No hay palabras que seran suficientes para expresar
mi gratitud.
Tambin me gustara dar las gracias a mis colegas en multimedia y mi
estudiantes de los pacientes. La necesidad de estar en el nivel que la demanda es
lo que
me mantiene en el futuro.

www.PacktPub.com

Los archivos de soporte, libros electrnicos, ofertas de


Es
posible que desee
visitar www.PacktPub.com para los archivos de soporte y descargas relacionadas
descuento,
y ms
a su libro.
Sabas que Packt ofrece versiones de libros electrnicos de todos los libros publicados, con PDF
y archivos ePub disponibles? Puede actualizar a la versin de libro electrnico en www.PacktPub.
com y como cliente libro impreso, usted tiene derecho a un descuento en la copia de libros
electrnicos.
Pngase en contacto con nosotros en service@packtpub.com para ms detalles.
En www.PacktPub.com, Tambin se puede leer una coleccin de artculos tcnicos gratuitos, signo
para una serie de boletines gratuitos y recibir descuentos exclusivos y ofertas en Packt
libros y libros electrnicos.
TM

http://PacktLib.PacktPub.com

Necesita soluciones inmediatas a sus preguntas de TI? PacktLib est online Packt
biblioteca de libros digitales. Aqu, usted puede acceder, leer y buscar en todo Packt
biblioteca de libros.

Por qu suscribirse?

Que se puede buscar a travs de cada libro publicado por Packt


Copiar y pegar, imprimir y marcar contenido
En la demanda y accesible a travs del navegador web

Acceso gratis para los titulares de cuentas Packt


Si usted tiene una cuenta con Packt en www.PacktPub.com, Puede usar esto para el acceso
PacktLib hoy y vista nueve libros totalmente gratis. Slo tiene que utilizar sus credenciales de inicio de
sesin
para el acceso inmediato.

Tabla de contenidos
Prefacio
1
Captulo 1: La construccin de una estacin meteorolgica conectada a la nube 9
Los componentes de hardware y software necesarios
Conexin de los sensores a la placa Arduino Yun
Crear una cuenta de Temboo
El envo de datos a Google Docs y mostrarlo
Creacin de alertas de correo electrnico automatizados
La fabricacin de sus datos de sensores a bordo po Arduino Yun
Resumen

Captulo 2: Creacin de un sistema de Monitoreo Remoto de Energa


y
Dispositivo
de control
Los componentes
de hardware y software necesarios
Conexin de los componentes de la junta Yun
Comprobacin de las conexiones de hardware
El envo de datos a Google Docs
La construccin de una interfaz para cambiar las luces de encendido /
apagado a distancia
Resumen

Captulo 3: Cmo hacer que su propia cmara conectada en la nube


Empezando
Los componentes de hardware y software necesarios
Hacer conexiones de hardware
Comprobacin de las conexiones de hardware
Grabar las imgenes cuando se detecta movimiento
Envo de imgenes a Dropbox a intervalos regulares
Video en vivo a travs de Wi-Fi
Resumen

10
11
15
16
21
23
26

27
28
31
35
40
46
50

51
51
52
56
57
61
64
67
73

Tabla de contenidos

Captulo 4: Wi-Fi controlado Mobile Robot


Construccin del robot mvil
Los componentes de hardware y software necesarios
Montaje del robot
Conexin de las placas Arduino Yun y Uno
Prueba de conexiones de hardware del robot
Construyendo el boceto Arduino
La construccin de la interfaz de la computadora
Resumen

ndice

75
75
77
81
84
87
89
93
96

97

[Ii]

Prefacio
El Internet de las Cosas (IoT) es un tema cada vez ms en el mundo de la tecnologa, y ms y
ms proyectos de hardware que se financiar con las campaas de crowdfunding incluyen
algunos objetos conectados. Estos objetos pueden ser relojes inteligentes que se conectan a la Web,
la estacin meteorolgica, cmaras, dispositivos de monitoreo de energa, e incluso robots. Muchos
gigantes de la industria como Google y Samsung tambin estn entrando en el mercado con
objetos relacionados y dispositivos porttiles.
Por otra parte, millones de personas en todo el mundo utilizan la plataforma Arduino
para crear proyectos de hardware. Debido a que Arduino es tan fcil de usar, que permite no slo
aficionados, sino tambin a los artistas y las personas sin un fondo de alta tecnologa para crear
increbles
proyectos de hardware. La plataforma est siempre evolucionando con nuevas soluciones que
permitan
personas para crear ms y ms complejos proyectos de bricolaje.
Una de las ltimas tablas de Arduino Arduino-Yun-mezclas de estos dos mundos
armoniosamente. El lanzamiento de este consejo fue apreciado por los aficionados de todo el mundo
que quera desarrollar objetos conectados. En efecto, el desarrollo de aplicaciones para la IO
siempre ha sido muy complejo y requiere de mucha experiencia tanto en hardware
y el desarrollo de aplicaciones web. Sin embargo, vamos a ver por qu el uso de la
Arduino Yun puede hacer el proceso mucho ms fcil.
El Arduino Yun es el mismo tamao que el Arduino Uno, que es el ms comn
Placa Arduino. Sin embargo, la diferencia es que cuenta con una pequea mquina Linux que
se ejecuta en un procesador independiente, as como a bordo de chip Wi-Fi para que pueda conectarse
al
consejo a su red Wi-Fi local.
Lo inteligente que hicieron con la placa Arduino Yun es crear una biblioteca de Puente
que le permite llamar funciones de la mquina Linux desde el Arduino habitual
microcontrolador que tambin est presente en el tablero. De esta manera, se puede utilizar la poderosa
caractersticas de la mquina Linux desde la programacin de la misma manera como lo hara en
la placa Arduino Uno. Puede, por ejemplo, escribir programas enteros en alto nivel
lenguajes como Python, y llamarlos desde un boceto Arduino.

Prefacio

El hecho de que la Junta tambin tiene a bordo de Wi-Fi cambia todo. La junta fue
desarrollado en estrecha colaboracin con el servicio web Temboo, que ofrece muchos
bibliotecas proporcionan la interfaz del tablero con otros servicios web como Google Docs, Gmail,
y Dropbox.
Por todas estas razones, el uso de la Arduino Yun le permitir construir conectado
aplicaciones sin necesidad de ser un experto en el campo. Usando el poder de
la mquina Linux embebido, la conexin Wi-Fi gratuita, y las bibliotecas Temboo, usted
podr crear fcilmente sus propios dispositivos IO. Para mostrar lo que exactamente el
Arduino Yun puede hacer, he construido cuatro proyectos interesantes que utilizan este consejo, y usted
tambin
ser capaz de construir estos proyectos despus de leer este libro.

Lo que cubre este libro


Captulo 1, La construccin de una estacin meteorolgica conectada a la nube, que introduce a la
Internet de las Cosas cuenta de la Arduino Yun. En este captulo, vamos a construir
una estacin de medicin de tiempo (que mide la temperatura, la humedad, y
niveles de luz) que enva los datos a la web. El proyecto ser enviar datos a un Google Docs
hoja de clculo a travs de Temboo y registro de los resultados en la hoja de clculo donde pueden
estar
se muestra grficamente. Lo bueno de este proyecto es que estos datos entonces puede ser
se accede desde cualquier parte del mundo con slo iniciar sesin en su cuenta de Google y
ir a la hoja de clculo.
Captulo 2, Creacin de un sistema de Monitoreo Remoto de Energa y de dispositivos de control, se
centra en la energa
gestin mediante la creacin de un proyecto para cambiar un dispositivo de encendido y apagado
(como una lmpara),
la medicin de su consumo de energa y el almacenamiento de estos datos a la Web. Vamos
para conectar un sensor de corriente para medir el consumo de energa del dispositivo que es
relacionada con el proyecto. El proyecto tambin ser capaz de cambiar el dispositivo encendido y
apagado
remotamente, y vamos a construir una interfaz para controlar este cambio de
el ordenador
y el dispositivo
mvil. conectada a la nube, nos permite construir nuestra propia DIY
Captulo
3, hacer
su propia cmara
versin de una cmara de seguridad inalmbrica mediante la conexin de una cmara web USB
estndar al
Arduino Yun. Vamos a realizar dos aplicaciones interesantes con este proyecto: en primer lugar, que
cargar automticamente las fotografas de la cmara cuando se detecta algn movimiento
frente a ella, y luego vamos a hacer el video stream en vivo desde la cmara
YouTube, por lo que puede controlar lo que est pasando en su casa desde cualquier lugar.
Captulo 4, Mobile Robot controlado por Wi-Fi, se centra en la robtica. Vamos a construir una
Wi-Fi-controlado robot mvil con dos ruedas y un sensor de distancia por ultrasonidos en
delante de l. Adems, vamos a utilizar las potentes funciones de la Arduino
Yun controlar fcilmente este robot a travs de Wi-Fi. Para ello, vamos a construir una web
interfaz que se utiliza para controlar el movimiento del robot, y esto tambin lo har
mostrar la distancia medida por el sensor de frente.
[2]

Prefacio

Lo que usted necesita para este libro


El objetivo principal de este libro es la placa Arduino Yun; as que, por supuesto, usted necesitar
una de las placas Arduino Yun para hacer los cuatro proyectos del libro. Dependiendo de
el captulo, usted tambin tendr varios componentes de hardware. Los detalles de estos
componentes requeridos se dan al principio de cada captulo.
Usted tambin tendr que haber algn tipo de software instalado en su computadora para hacer la
proyectos de trabajo. La primera de ellas es la ltima versin beta del Arduino IDE (la nica versin
que puede trabajar con el Yun). Para todos estos proyectos, he utilizado el Arduino IDE Versin
1.5.6-r2, pero todas las nuevas versiones deben trabajar tambin. Puede descargar el
IDE Arduino en http://arduino.cc/en/main/software#toc3.
Usted tambin necesitar un servidor Web que se ejecuta en su computadora para algunos de los
proyectos. YO
recomendamos que utilice un software que integra un servidor web y una base de datos, y
que se encarga de todos los detalles para usted. Si est utilizando Windows, le recomiendo usar
EasyPHP, que est disponible en http://www.easyphp.org/.
Bajo OS X, le recomiendo usar MAMP, que est disponible en
http://www.mamp.info/.
Con Linux, puede seguir las instrucciones para instalar un servidor web proporcionada en
http://doc.ubuntu-fr.org/lamp.
Asegrese de que el servidor se est ejecutando en este momento; vamos a utilizarlo en varios de los
proyectos en este libro.
Todos los proyectos se supone que su placa Arduino Yun ya est configurado y
conectado a su red Wi-Fi. Para configurar y conectar el Yun a su red Wi-Fi
red, hay slo unos pocos pasos a seguir. El primero es para tapar el Arduino
tablero en la pared y espere un momento.
Despus de un tiempo, debera ver que una nueva red Wi-Fi ha aparecido en la lista de
Las redes Wi-Fi de su ordenador, creadas por el Yun. Conectarse a l, abrir un navegador,
y escriba el siguiente comando:
arduino.local

Esto debera abrir una pgina servida por la placa Arduino Yun. Se le pedir que
introduzca una contrasea para su tablero Yun; por favor escribe uno que pueda recordar fcilmente,
como usted lo necesitar muchas veces al intentar los proyectos en este libro.
Luego, se le llevar a una nueva pgina que contiene informacin sobre su
Tablero Yun. Puede cambiar el nombre de la tabla (que utilizaremos ms adelante en todo el
proyectos), y tambin establecen los parmetros de conexin Wi-Fi. Tienes que establecer estos
parmetros de forma
que la tarjeta se puede conectar a su red Wi-Fi. Elija la red correcta
de la lista, introduzca su contrasea y haga clic en Configurar y Reiniciar.
[3]

Prefacio

El Yun se reiniciar y conectarse a su red. En este punto, tambin puede


vuelva a conectar el ordenador a la red Wi-Fi local. Despus de un tiempo, puede escribir
el siguiente comando en tu navegador junto con el nombre que le dio su
Placa Arduino:
myarduinoyun.local

Usted debe tomar a la misma pgina de nuevo, pero esta vez, con la junta Yun
conectado a su red Wi-Fi local. Si esto funciona, significa que la junta Yun es
listo para ser utilizado en todos los proyectos en el libro.
Tambin tendr que abrir la API REST del Yun. Esta configuracin se establece en
la pgina de configuracin de la Yun, donde usted tiene que seleccionar OPEN, que est cerca
ACCESO REST API. Reinicie el tablero Yun de nuevo cuando la opcin se ha cambiado.
Tenga en cuenta que usted tiene dos formas de programar su tablero Yun: puede conectarlo
directamente en su ordenador a travs de micro USB, o conectarlo a la pared a travs de un adaptador
USB
y cargar los bocetos a travs de Wi-Fi.

Quin este libro es para


Si usted quiere construir aplicaciones interesantes para la Internet de los objetos utilizando el
Plataforma Arduino, este es el libro para usted. Si usted est planeando construir algn fresco
proyectos para automatizar su casa y monitorear en forma remota, le encantar este libro.
Usted aprender cmo medir los datos, dispositivos de control, supervisar su hogar de forma remota
usando una cmara USB, y construir un robot mvil controlado por Wi-Fi.
En lo que se refiere a las habilidades, este libro asume que usted ya tiene algn
conocimiento de la plataforma Arduino (por ejemplo, con el Arduino Uno) y algunos
conocimientos bsicos de electrnica y programacin. Tenga en cuenta que el libro tambin puede ser
utilizado sin ninguna experiencia previa con el Arduino Yun y el bordo
Mquina Linux.

Convenciones
En este libro, usted encontrar una serie de estilos de texto que distingue entre
diferentes tipos de informacin. Estos son algunos ejemplos de estos estilos, y un
explicacin de su significado.
Las palabras de cdigo en el texto, los nombres de tabla de base de datos, nombres de carpeta,
nombres de archivo, extensiones de archivo,
rutas de acceso, URL ficticias, la entrada del usuario, y las manijas de Twitter se muestran como sigue:
"El mecanismo de alerta se produce en la nueva funcin llamada sendTempAlert eso se llama
si la temperatura est por debajo del lmite ".
[4]

Prefacio

Un bloque de cdigo se establece de la


siguiente manera:
[Default]
Datos String = "";
datos = datos + horaCadena + "," + String (temperatura) + "," +
String (humedad) + "," + String (nivel de luz);

Cuando queremos llamar su atencin sobre una parte especfica de un bloque de cdigo, la
lneas o elementos pertinentes estn establecidas en negrita:
[Default]
si (cliente) {
// Peticin de Procesos
proceso (cliente);

// Cerrar la conexin y recursos gratuitos.


client.stop ();
}

Cualquier entrada de lnea de comandos o la salida se escribe de la


siguiente manera:
# Http: //myarduinoyun.local/arduino/digital/8/1

Nuevos trminos y palabras importantes se muestran en negrita. Palabras que se ven en la


pantalla, en los mens y cuadros de dilogo, por ejemplo, aparecen en el texto as: "Basta con hacer
clic
en interface.html, y la interfaz debe abrirse y hacerse a escala en el telfono
tamao de pantalla. "

Advertencias o notas importantes aparecen en un cuadro como este.

Consejos y trucos aparecen as.

Comentarios de los
Los
comentarios de nuestros lectores es siempre bienvenida. Hganos saber lo que piensa de
lectores
este libro lo que te gusta o te haya disgustado. Comentarios de los lectores es importante para nosotros
para desarrollar ttulos que realmente obtiene el mximo provecho de.
Para enviarnos comentarios generales, basta con enviar un e-mail a feedback@packtpub.com,
y mencionar el ttulo del libro a travs del asunto de su mensaje.

[5]

Prefacio

Si hay un tema que tiene experiencia en y usted est interesado en cualquiera de escritura
o contribuir a un libro, ver nuestra gua autor www.packtpub.com/authors.

Servicio al cliente
Ahora que usted es el orgulloso propietario de un libro Packt, tenemos una serie de cosas para
le ayudar a obtener lo mximo de su compra.

La descarga del cdigo de ejemplo


Puede descargar los archivos de cdigo de ejemplo para todos los libros Packt que ha comprado
de su cuenta al http://www.packtpub.com. Si usted compr este libro
en otros lugares, se puede visitar http://www.packtpub.com/support y registrarse para tener
los archivos enviados por correo electrnico directamente a usted.
Todo el cdigo de arriba-a-fecha de los cuatro proyectos de este libro tambin se puede
encontrar en
https://github.com/openhomeautomation/geeky-projects-yun.

La descarga de las imgenes a color del libro


Tambin le ofrecemos un archivo PDF que tiene imgenes en color de las capturas de pantalla /
diagramas
utilizado en este libro. Las imgenes en color le ayudarn a comprender mejor los cambios en
la salida. Puede descargar este archivo desde: https://www.packtpub.com/sites/
default / files / descargas / 8007OS_ColoredImages.pdf.

Fe de
Aunque
hemos tomado todas las precauciones para asegurar la precisin de nuestros contenidos,
erratas

errores
no suceder. Si usted encuentra un error en uno de nuestros libros, tal vez un error en el texto o
el cdigo que agradecera que le informa de esto a nosotros. Al hacerlo, usted puede
salvar a los dems lectores de la frustracin y aydanos a mejorar versiones posteriores de esta
libro. Si encuentra alguna errata, por favor informe al visitar http: //www.packtpub.
com / support, La seleccin de su libro, al hacer clic en el Formulario de presentacin de erratas enlace, y
entrar en los detalles de su fe de erratas. Una vez que su fe de erratas se verifica, por su presentacin
ser aceptado y la fe de erratas se cargar en nuestro sitio web, o aadirse a ninguna lista
de errata existente, en la seccin de erratas de ese ttulo.

[6]

Prefacio

Piratera
La piratera de material de derechos de autor en Internet es un problema constante en todos los
medios.
En Packt, nos tomamos muy en serio la proteccin de nuestros derechos de autor y licencias. Si tu
venir a travs de las copias ilegales de nuestras obras, en cualquier forma, en Internet, por favor
proporcionarnos la direccin de ubicacin o sitio web nombre de inmediato para que podamos
presentar un recurso.
Por favor contacte con nosotros en copyright@packtpub.com con un enlace a la sospecha
material pirateado.
Apreciamos su ayuda en la proteccin de nuestros autores, y nuestra capacidad para lograr que
contenido valioso.

Preguntas
Puede ponerse en contacto con nosotros en questions@packtpub.com si usted est teniendo un
problema con
cualquier aspecto del libro, y haremos nuestro mejor esfuerzo para resolver el problema.

[7]

La construccin de una Estacin


Meteorolgica
Conectado a la nube

Este captulo le dar a conocer las caractersticas de gran alcance de la Arduino Yun
placa electronica. En este captulo, usted aprender cmo crear un clima sencillo
estacin que enviar datos a la nube utilizando las caractersticas del servicio basado en la web
Temboo. Temboo no es 100 por ciento libre, pero usted ser capaz de hacer 1.000 llamadas a
Temboo por mes usando su plan gratuito. Usted aprender cmo conectar sensores que
medir la temperatura, la humedad y el nivel de luz a tu Arduino Yun. Estos sensores
primero ser probado por separado para asegurarse de que las conexiones de hardware que hacen
son correctas.

Entonces, vamos a usar las bibliotecas Temboo Arduino enviar estas mediciones
a la nube y para diferentes servicios web para que puedan acceder en forma remota
independientemente de dnde se encuentre en el mundo. Temboo es un servicio basado en web que
permite
conectar diferentes servicios web juntos y propone bibliotecas listas para su uso
para el Arduino Yun.
Por ejemplo, lo primero que vamos a hacer con Temboo es enviar los datos de
sus medidas a una hoja de clculo de Google Docs, donde se registrarn a lo largo de
con los datos de medicin. Dentro de esta hoja de clculo, usted ser capaz de trazar este
derecha de datos en el navegador web y ver los datos que llega consiguiendo almacena en su
Google Docs cuenta.
Entonces, vamos a utilizar Temboo nuevo para enviar un correo electrnico automatizado basado en el
grabado
datos. Por ejemplo, a usted le gustara enviar una alerta cuando la temperatura baja
por debajo de un cierto nivel en su casa, lo que indica que un calentador tiene que estar encendido.
Por ltimo, vamos a terminar el captulo utilizando Temboo para publicar los datos en regulares
intervalos en una cuenta de Twitter, por ejemplo, cada minuto. Al hacer esto, podemos tener
una cuenta de Twitter dedicado para su casa que los diferentes miembros de su familia pueden
seguir para tener informacin en tiempo real acerca de su casa.

La construccin de una estacin meteorolgica conectada a


la nube

Despus de completar este captulo, usted ser capaz de aplicar lo que ha aprendido a otra
proyectos que las mediciones slo inclemencias del tiempo. Se puede aplicar lo que se ve en
este captulo para cualquier proyecto que puede medir los datos, con el fin de registrar estos datos
en el
Web y publicarlo en Twitter.
La placa Arduino Yun se muestra en la siguiente imagen:

El hardware y el software necesarios


componentes
Por supuesto, usted necesita tener su placa Arduino Yun listo en su escritorio, junto con
un cable micro USB para hacer la programacin y las pruebas iniciales. Adems, se recomienda
que dispone de una toma de corriente al adaptador micro USB para que pueda encenderse
Arduino Yun directamente de la pared sin tener el ordenador tumbado
alrededor. Esto ser til al final del proyecto, como usted quiere que su
Placa Arduino Yun para realizar mediciones de forma autnoma.

[10]

Captulo 1

A continuacin, tendr los diferentes sensores que se utilizarn para detectar datos sobre
el medio ambiente. Para este proyecto, vamos a utilizar un sensor para medir DHT11
temperatura y humedad y una simple clula fotoelctrica para medir los niveles de luz. DHT11 es
un sensor de temperatura y humedad digital de muy barato que se utiliza ampliamente con el
Plataforma Arduino. Tambin puede utilizar un sensor DHT22, que es ms preciso, ya que el
Biblioteca Arduino es el mismo para ambos sensores. Hay varios fabricantes para stos
sensores, pero se puede encontrar fcilmente, por ejemplo, en Sparkfun o Adafruit. Para el
fotoclula, se puede utilizar cualquier marca que usted desea; slo tiene que ser un componente que
cambia su resistencia de acuerdo a la intensidad de la luz ambiental.

Para que el sensor DHT11 y trabajo fotoclula, necesitaremos una resistencia de 4.7k Ohm
y una resistencia de 10k Ohm tambin. Usted tambin necesitar un pequeo tablero con al menos
dos carriles de alimentacin en el lado y algunos cables de puente entre machos para hacer la elctrica
conexiones entre los diferentes componentes.
En cuanto al software, necesitar la ltima versin beta de la Arduino IDE, que
es el nico IDE que soporta la placa Arduino Yun (usamos la versin 1.5.5 cuando
haciendo este proyecto). Tambin tendr la biblioteca DHT para el sensor DHT11, que
se puede descargar desde https://github.com/adafruit/DHT-sensor-library.
Para instalar la biblioteca, simplemente descomprimir los archivos y extraer el DHT carpeta a su
bibliotecas carpeta en la carpeta principal de Arduino.

Conexin de los sensores a la Arduino


Tablero Yun
Antes de hacer nada relacionado con la Web, primero asegrese de que nuestro hardware
est trabajando correctamente. Vamos a hacer las conexiones de hardware correctos
entre los diferentes componentes y escribir un simple boceto Arduino para probar todos estos
sensores individualmente. Al hacer esto, nos aseguraremos de que usted haga todo el hardware
conexiones correctamente, y esto va a ayudar mucho si se encuentra con problemas en la prxima
secciones de este captulo que utilizan bocetos Arduino ms complejas.
Las conexiones de hardware necesarios para nuestro proyecto son en realidad muy simple. Tenemos
que
conectar el sensor de DHT11 y luego la parte responsable de la medicin de nivel de luz
con la fotoclula realizando los siguientes pasos:
1. En primer lugar, nos conectamos + 5V pin de la placa Arduino Yun al carril rojo en el
tablero y el conector de tierra al carril azul.

[11]

La construccin de una estacin meteorolgica conectada a


la nube

2. Luego, conecte el pin nmero 1 del sensor DHT11 al carril rojo en el


protoboard y el pin nmero 4 a la barandilla azul. Adems, conecte el nmero de pin
2 del sensor al pin nmero 8 de la placa Arduino Yun.
3. Para completar las conexiones del sensor DHT11, sujetar la resistencia de 4.7k Ohm
entre nmeros de los pines 1 y 2 del sensor.
Para la fotoclula, primero poner la clula en serie con la resistencia de 10k Ohm en el
protoboard. Esta resistencia de cada se asegurar de que durante la operacin, si hay
hay luz en absoluto, la tensin visto por la placa Arduino ser 0V. A continuacin, conecte
el otro extremo de la fotoclula al carril de color rojo en el tablero y el final de la
resistencia a la tierra. Por ltimo, conecte el pin comn a la placa Arduino Yun
A0 pin analgico.
La siguiente imagen hecha con el software Fritzing resume la
conexiones de hardware:

Ahora que las conexiones de hardware se hacen, vamos a trabajar en las pruebas de los sensores
sin subir nada a la Web. Vamos a travs de las partes importantes de
el cdigo.
En primer lugar, tenemos que importar la biblioteca para el sensor DHT11, de la
siguiente manera:
#include "DHT.h"

[12]

Captulo 1

Entonces, tenemos que declarar un par de variables que almacenar las mediciones, como
se muestra en el siguiente cdigo. Estas variables se declaran como flota porque la DHT
vuelve biblioteca sensor flotan nmeros.
int nivel de luz;
flotar la humedad;
flotar temperatura;

Tambin, podemos definir el pin de sensor y tipo de sensor de la siguiente


manera:
#define DHTPIN 8
#define DHTTYPE DHT11

Crear la instancia de DHT como sigue:


DHT DHT (DHTPIN, DHTTYPE);

Ahora, en el preparar () parte del dibujo, tenemos que iniciar la conexin en serie,
como sigue:
Serial.begin (115.200);

A continuacin, con el fin de inicializar el sensor de DHT, tenemos lo siguiente:


dht.begin ();

En el loop () parte, vamos a realizar las diferentes mediciones.


En primer lugar, vamos a calcular la temperatura y la humedad, de la siguiente manera:
humedad float = dht.readHumidity ();
temperatura del bao = dht.readTemperature ();

A continuacin, medir el nivel de luz, como sigue:


int nivel de luz = analogRead (A0);

Por ltimo, es la impresin de todos los datos en el monitor de serie, como se muestra en el siguiente
cdigo:
Serial.print ("Temperatura:");
Serial.println (temperatura);
Serial.print ("Humedad:");
Serial.println (humedad);
Serial.print ("Nivel de luz:");
Serial.println (nivel de luz);
Serial.println ("");

[13]

La construccin de una estacin meteorolgica conectada a


la nube

Repita esto cada 2 segundos, como se muestra:


retardo (2000);

El esquema completo de esta parte se puede encontrar en https://github.com/


openhomeautomation / geek-proyectos-yun / rbol / maestro / chapter1 / sensors_
prueba.

Ahora es el momento de probar el boceto y subirlo a la placa Arduino. Entonces, abierta


el monitor de serie y usted debe tener la informacin que proviene de los sensores son
aparece, como se muestra en la siguiente captura de pantalla:

Si usted puede ver las diferentes mediciones que se muestran como en la anterior
pantalla, significa que usted ha hecho las conexiones de hardware correctas en su
protoboard y que se puede proceder a las siguientes secciones de este captulo.
Si no es el caso, por favor revise todas las conexiones de nuevo individualmente siguiendo
las instrucciones de esta seccin. Por favor, asegrese de que no ha olvidado el 4.7k
Resistencia de Ohm con el sensor de DHT, ya que las mediciones de este sensor no funcionarn
sin el.

La descarga del cdigo de ejemplo


Puede descargar los archivos de cdigo de ejemplo para todos los libros Packt que tienes
comprado a su cuenta en http://www.packtpub.com. Si tu
comprar este libro en otros lugares, se puede visitar http: //www.packtpub.
com / support y registrarse para tener los archivos enviados por correo electrnico
directamente a usted.
Todo el cdigo de arriba-a-fecha de los cuatro proyectos de este libro tambin se puede
encontrar en
https://github.com/openhomeautomation/geeky-projects-yun.

[14]

Captulo 1

Crear una cuenta de Temboo


El siguiente paso de este proyecto es crear y configurar una cuenta en el servicio web
Temboo, para que pueda utilizar la amplia gama de servicios prestados por Temboo subir
datos a Google Docs y utilizar sus bibliotecas de Gmail y Twitter. Esta cuenta
en realidad se utiliza en todo el libro para los otros proyectos tambin.
Para ello, el primer paso es simplemente ir a la pgina web en Temboo http://temboo.com/.
En la pgina principal, entra tu direccin de correo electrnico para registrar y haga clic en Contratar,
como se muestra en la siguiente captura de pantalla:

A continuacin se le pedir que ingrese alguna informacin bsica acerca de su cuenta, como
su nombre de cuenta, como se muestra en la siguiente captura de pantalla:

A continuacin, se le pedir que cree su primera aplicacin. Asegrese de guardar los detalles
de su cuenta, como el nombre de su primera aplicacin y la clave que se le dar a
usted; vamos a necesitar para el resto de este libro.
En caso de que usted necesite obtener estos valores de nuevo o crear una nueva aplicacin, puede
siempre acceder a estos datos en el Mi Cuenta seccin del sitio web Temboo haciendo clic
en el GESTIONAR botn de abajo APLICACIONES, tal y como se muestra en la
siguiente captura de pantalla:

Estamos ahora todo listo para empezar a utilizar las bibliotecas Temboo que se hacen
especficamente para
la placa Arduino y Yun cargar algunos datos a la nube.
[15]

La construccin de una estacin meteorolgica conectada a


la nube

El envo de datos a Google Docs y mostrarlo


En esta seccin, vamos a usar nuestra primera biblioteca Temboo (llamado Choreo) a
subir las mediciones de la Arduino Yun a la Web y registrar los datos en una
Google Docs hoja de clculo.
En primer lugar, vamos a echar un vistazo a lo que un Choreo es y cmo se puede generar el cdigo
para
la placa Arduino Yun. Si usted va a la pgina principal Temboo, ver que
usted puede elegir diferentes plataformas y lenguajes, como Arduino, JavaScript o
Python. Cada uno de estos enlaces le permitir seleccionar un Choreo, que es un dedicado
biblioteca escrito para la plataforma que usted eligi y puede interactuar con un servicio web
determinada
tales como Google Docs.
Para la plataforma Arduino, Temboo incluso ofrece para generar todo el cdigo para usted.
Puede hacer clic en el icono de Arduino en el sitio web Temboo y luego haga clic en Arduino
Yun; obtendr acceso a una interfaz paso a paso para generar el cdigo. Sin embargo, como
queremos obtener el control completo de nuestro dispositivo y escribir nuestro propio cdigo, no vamos
a utilizar
esta caracterstica para este proyecto.
Google Docs es muy conveniente, ya que es una lnea (y gratis) versin del popular
Software Office de Microsoft. La principal diferencia es que, ya que todo est en la
nube, usted no tiene que almacenar archivos de forma local o guardarlos-Todo se hace en lnea.
Para
nuestro proyecto, la ventaja es que se puede acceder a estos archivos de forma remota desde
cualquier web
navegador, incluso si no est en el equipo habitual. Slo tiene su Google
nombre de cuenta y la contrasea y puede acceder a todos sus archivos.
Si usted no tiene una cuenta de Google, puedes crear uno en menos de cinco minutos
en https://drive.google.com/.
Esto tambin crear una cuenta para el servicio de Gmail, que tambin vamos a utilizar ms
adelante.
Por favor, asegrese de que usted tiene su nombre de usuario y contrasea de Google Docs como
usted
van
a necesitar
pronto.
Antes
de empezar
a escribir cdigo Arduino, tenemos que preparar un Google Docs
hoja de clculo que ser la sede de los datos. Basta con crear una nueva en la raz de su
Cuenta de Google Docs; puede que el nombre lo que quieras (por ejemplo, Yun). Esto es
hecho desde la pgina principal de Google Docs slo hacer clic en Crear.

[16]

Captulo 1

En la hoja de clculo, es necesario configurar el nombre de las columnas de los datos que sern
conectado; esto es, Tiempo,Temperatura,HumedadY Nivel de luz. Esto se muestra en
la siguiente captura de pantalla:

Ahora, vamos a empezar la construccin del boceto Arduino dentro del IDE de Arduino. Primero
necesitamos
para importar todas las libreras necesarias, de la siguiente manera:
#include <Bridge.h>
#include <Temboo.h>
#include <Process.h>

La Puente biblioteca es algo que se introdujo para la placa Arduino Yun


y es responsable de hacer la interfaz entre la mquina Linux del Yun
y el procesador Atmel, donde nuestro boceto Arduino se ejecutar. Con esta biblioteca, es
posible utilizar la potencia de la mquina Linux derecha dentro del boceto Arduino.
La Proceso biblioteca se utiliza para ejecutar algunos programas en el lado de Linux, y la
Temboo archivo contendr toda la informacin que se refiere a su cuenta Temboo.
Por favor, vaya dentro de este archivo para introducir la informacin correspondiente a su propio
cuenta. Esto es como se muestra en el siguiente cdigo:
#define
TEMBOO_ACCOUNT "temboo_account_name" // Su Temboo
cuenta
nombre
#define
TEMBOO_APP_KEY_NAME "temboo_app_name" // Su Temboo
clave de aplicacin
nombre
#define
TEMBOO_APP_KEY "temboo_api_key" // La llave aplicacin Temboo

Tenga en cuenta que tambin incluimos un modo de depuracin en el boceto que


puede fijar a verdadero si quieres un poco la salida de depuracin que se imprimirn
en
el monitor serie. Sin embargo, para una operacin autnoma de la
tablero, le sugerimos que desactive este modo de depuracin para ahorrar
algo de memoria dentro de Yun.

En el boceto, entonces tenemos que introducir la informacin de Google Docs. Necesitas poner
su nombre de usuario y contrasea aqu, junto con el nombre de la hoja de clculo de Google
donde desea que los datos que se registran, como se muestra en el siguiente cdigo:
const Cadena GOOGLE_USERNAME = "sunombredeusuario";
const Cadena GOOGLE_PASSWORD = "YourPassword";
const Cadena SPREADSHEET_TITLE = "Yun";

[17]

La construccin de una estacin meteorolgica conectada a


la nube
En el preparar () parte del dibujo, ahora estamos empezando el puente entre el Linux

mquina y el microcontrolador Atmel ejecutando la siguiente lnea de cdigo:


Bridge.begin ();

Tambin estamos comenzando un proceso de fecha para que nosotros tambin podamos registrar
los datos de cuando cada
la medicin se registr, como se muestra en el siguiente cdigo:
tiempo = millis ();
if (! date.running ()) {
date.begin ("fecha");
date.addParameter ("+% D-% T");
date.run ();
}

La fecha ser en el formato: fecha del da seguido por el tiempo. El proceso de la fecha
estamos utilizando aqu es en realidad una utilidad muy comn para Linux, y usted puede buscar
la documentacin de esta funcin en la Web para obtener ms informacin sobre el perodo distinto
y formatos de tiempo que puede utilizar.
Ahora, en el loop () parte del dibujo, enviamos las mediciones de forma continua
usando la siguiente funcin:
runAppendRow (nivel de luz, temperatura, humedad);

Vamos a entrar en los detalles de esta funcin. Comienza declarando la Choreo (el
Temboo servicio) que vamos a utilizar:
TembooChoreo AppendRowChoreo;

La funcin anterior es especfico de las hojas de clculo de Google Docs y obras de


el envo de un conjunto de datos separados por comas en una fila dada. Hay Choreos para
todos los servicios que se conecta a Temboo, como Dropbox y Twitter. Por favor, consulte
a las pginas de documentacin Temboo para obtener los detalles sobre este especfico Choreo.
Despus de declarar la Choreo, hay que aadir los diferentes parmetros de la Choreo
como insumos. Por ejemplo, el nombre de usuario Google, como se muestra en la siguiente lnea de
cdigo:
AppendRowChoreo.addInput ("nombre de usuario", GOOGLE_USERNAME);

Lo mismo se hace con los otros parmetros necesarios, como se muestra en el siguiente cdigo:
AppendRowChoreo.addInput ("Password", GOOGLE_PASSWORD);
AppendRowChoreo.addInput ("SpreadsheetTitle", SPREADSHEET_TITLE);

[18]

Captulo 1

La parte importante de la funcin es cuando realmente formatear los datos para que pueda
se adjuntar a la hoja de clculo. Recuerde, los datos tienen que ser delimitado utilizando
comas de forma que se aade a las columnas correctas en la hoja de clculo, como se muestra en
el siguiente cdigo:
Datos String = "";
datos = datos + horaCadena + "," + String (temperatura) + "," +
String (humedad) + "," + String (nivel de luz);

El Choreo continuacin se ejecuta con la siguiente lnea de cdigo:


unsigned int returnCode = AppendRowChoreo.run ();

La funcin se repite cada 10 minutos. De hecho, estos valores normalmente


cambiar lentamente en el transcurso de un da, por lo que este es intil a los datos que se est
conectando
continuamente. Adems, recuerde que el nmero de llamadas a Temboo es limitado
dependiendo del plan que usted eligi (1.000 llamadas al mes en una planta libre, la cual es
aproximadamente 1 llamada por hora). Esto se hace usando la funcin de retardo, como sigue:
retardo (600,000);

Para fines de demostracin, los datos se registra cada 10 minutos. Sin embargo, usted puede
cambiar esto con slo cambiar el argumento de la retardo () funcin. La completa
cdigo para esta parte se puede encontrar en https://github.com/openhomeautomation/
geek-proyectos-yun / rbol / maestro / chapter1 / temboo_log.
Ahora puede cargar el boceto a la placa Arduino Yun y abrir el Google Docs
hoja de clculo para ver lo que est sucediendo. Todo est sincronizado en vivo con el Google Docs
servidores, por lo que no es necesario para actualizar nada. Despus de un tiempo, usted debe ver el
primer conjunto de medidas est registrando, como se muestra en la siguiente captura de pantalla:

[19]

La construccin de una estacin meteorolgica conectada a


la nube

Con el fin de mostrar lo que se puede hacer uso de este proyecto, se utiliz el integrado
capacidades de grficos de Google Docs para trazar estos datos usando las medidas que
obtenido durante ms de 24 horas. La siguiente captura de pantalla es un extracto de los datos en
bruto:

Ahora, para trazar realmente algunos datos, slo tiene que utilizar el Insertar tablas funcin de
Google Docs. Elegimos el sencillo Lnea grfico para nuestros datos. La siguiente captura de pantalla
muestra los resultados para la temperatura y la humedad:

[20]

Captulo 1

Hicimos lo mismo para las mediciones de nivel de luz, como se muestra en la siguiente captura de
pantalla:

Estas tablas se pueden colocar automticamente en sus respectivas hojas dentro de su


hoja de clculo y que, por supuesto, ser actualizado automticamente a medida que llegan nuevos
datos.
Tambin puede utilizar las capacidades de uso compartido de Google Docs para compartir estas
hojas con
nadie, por lo que tambin puede seguir las medidas de su casa.

Creacin de alertas de correo electrnico


En
esta parte, no slo vamos a construir sobre lo que hemos hecho en la seccin anterior
automatizados

con Google Docs, sino tambin crear algunas alarmas e-mails automticos en la parte superior con un
Google
cuenta. Esta vez, vamos a utilizar la biblioteca Temboo que interacta directamente con
Gmail, en este caso, para enviar automticamente un correo electrnico usando su cuenta.
Lo que haremos es el programa de la placa Arduino Yun para enviar un e-mail a los elegidos
abordar si la temperatura desciende por debajo de un nivel determinado, por ejemplo, lo que indica
que
debe encender la calefaccin en su casa.
En comparacin con el boceto previo Arduino, tenemos que aadir el destino de correo electrnico
direccin. Us mi propio domicilio a efectos de probar, pero por supuesto, este destino
direccin puede ser completamente diferente a la de su cuenta de Gmail. Para
ejemplo, si desea automticamente por e-mail a alguien que es responsable de su
casa si algo sucede, ejecute la siguiente lnea de cdigo:
const Cadena TO_EMAIL_ADDRESS = "your_email_address";

[21]

La construccin de una estacin meteorolgica conectada a


la nube

Tenga en cuenta que el envo de un correo electrnico a ti mismo puede ser visto como spam por su
Gmail
cuenta. Por lo tanto, es aconsejable enviar estas alertas a otro e-mail de su eleccin, para
ejemplo, en una cuenta especial para estas alertas. Tambin tenemos que fijar una temperatura
limitar, en el boceto. En mi versin del proyecto, es la temperatura bajo la cual el
Arduino Yun enviar una alerta por e-mail, pero se puede modificar, por supuesto, el significado de
este lmite de temperatura, como se muestra en la siguiente lnea de cdigo:
int temperature_limit = 25,0;

En el loop () parte del dibujo, qu cambios en comparacin con el esquema de la


seccin anterior es que podemos comparar la temperatura registrada hasta el lmite.
Esto se hace con un simple si declaracin:
si (temperatura <temperature_limit) {
si (debug_mode == true) {Serial.println ("Envo de alerta");}
sendTempAlert ("La temperatura es demasiado baja!");
}

Entonces, el mecanismo de alerta se produce en la nueva funcin llamada sendTempAlert que


se llama si la temperatura est por debajo del lmite. La funcin tambin toma una cadena como un
argumento, que es el contenido del mensaje que ser enviado cuando la alerta es
disparado. Dentro de la funcin, empezamos de nuevo al declarar el tipo de Choreo que
vamos a utilizar. Esta vez, el Choreo que vamos a utilizar es especfica de Gmail y se utiliza para
enviar un e-mail con el asunto y el cuerpo del mensaje, como se muestra en la siguiente
lnea de cdigo:

TembooChoreo SendEmailChoreo;

As como el Choreo utilizamos para registrar datos en Google Docs, esta nueva Choreo requiere
un conjunto dado de parmetros que se definen en la documentacin oficial Temboo.
Tenemos que especificar todos los insumos necesarios para la Choreo, por ejemplo, la direccin de
correo de
lnea de asunto que usted puede personalizar, as, como se muestra en la siguiente lnea de cdigo:
SendEmailChoreo.addInput ("Asunto", "ALERTA: Home Temperatura");

El cuerpo del mensaje se define en la siguiente lnea de cdigo:


SendEmailChoreo.addInput ("MessageBody", mensaje);

Tenga en cuenta que la mensaje variable es la aprobada en el loop () parte del boceto
y puede ser personalizado, as, por ejemplo, aadiendo el valor de la medida
la temperatura. Por ltimo, el Choreo se ejecuta con la siguiente lnea de cdigo:
SendEmailChoreo.run ();

El cdigo completo de esta parte se puede encontrar en https://github.com/


openhomeautomation / geek-proyectos-yun / rbol / maestro / chapter1 /
temboo_alerts.
[22]

Captulo 1

Ahora, puede compilar y actualizar el boceto para su Yun. Tambin puede ir a la


Interfaz de Gmail para comprobar si hay nuevos mensajes de correo electrnico. Si la temperatura cae
por debajo de la de hecho
valor que establece como lmite, lo siguiente es lo que debe recibir en su buzn:

Una vez ms, se puede jugar con este bosquejo y crear alertas ms complejas basadas en el
datos que se ha medido. Por ejemplo, puede agregar la humedad y el nivel de luz en el
mezclar y crear lmites especficos y alertas para estos valores. Tambin puede programar
Arduino Yun para que los correos electrnicos que los datos en s, a intervalos regulares, incluso si
no hay
se alcanza el lmite de temperatura.

La fabricacin de su junta po Arduino Yun


datos del sensor
Finalmente, en la ltima parte de este proyecto, vamos a hacer la placa Arduino Yun enviar su
mensajes propios en Twitter. Usted puede incluso crear una nueva cuenta de Twitter slo para su
Tablero Yun, y se puede decir a la gente que sabe de seguirlo en Twitter para que puedan
estar informado en todo momento sobre lo que est pasando en su casa!
El proyecto se inicia en el sitio web de Twitter porque hay que declarar una nueva aplicacin
en Twitter. Entrar usando sus credenciales de Twitter y luego ir a https: // apps.
twitter.com/.
Ahora, haga clic en Crear nueva App para iniciar el proceso, como se muestra en la
siguiente captura de pantalla:

[23]

La construccin de una estacin meteorolgica conectada a


la nube

Usted tendr que dar un nombre a su aplicacin. Por ejemplo, hemos llamado a la nuestra
MyYunTemboo. Usted tendr que obtener una gran cantidad de informacin en el sitio web de
Twitter.
Las primeras cosas que hay que conseguir son la clave de la API y el secreto de la API. Estos son
disponible en el Claves API pestaa, como se muestra en la siguiente captura de pantalla:

Asegrese de que el Nivel de acceso de su aplicacin se establece en Leer Escribir, y Directo mensajes.
Esto podra no ser activa por defecto, y en las primeras pruebas, mi placa Arduino no lo hizo
responder ms porque no me impuse correctamente estos parmetros. Por lo tanto, asegrese de que
su aplicacin tiene el nivel de acceso correcto.
Entonces, usted tambin va a necesitar un smbolo para su aplicacin. Usted puede hacer esto de ir a
la Su token de acceso seccin. Desde esta seccin, usted necesita para obtener la La seal de
acceso
y la Acceso secreto token. Una vez ms, asegrese de que el nivel de acceso de su token es
ajustado correctamente.
Ahora podemos proceder a escribir el boceto Arduino, por lo que la placa Arduino puede Yun
enviar automticamente tweets. El Twitter Choreo es bien conocido por el uso de una gran cantidad
de
memoria en el Yun, por lo que este boceto slo tuitear datos sin datos de registro en
tu cuenta de Google Docs. Tambin recomiendo que desactive cualquier depuracin
mensajes en el puerto serie para preservar la memoria de su Yun. En el boceto,
primero tendr que definir su informacin aplicacin de Twitter, como se muestra en el siguiente
cdigo:
const Cadena TWITTER_ACCESS_TOKEN = "yourAccessToken";
const Cadena TWITTER_ACCESS_TOKEN_SECRET = "
yourAccessTokenSecret ";
const Cadena TWITTER_API_KEY = "yourApiKey";
const Cadena TWITTER_API_SECRET = "yourApiKeySecret";

Entonces, el boceto se twittear peridicamente los datos acerca de su casa con la siguiente
funcin:
tweetAlert (nivel de luz, temperatura, humedad);

Esta funcin se repite cada minuto utilizando una retardo () funcin, como sigue:
retardo (60000);

Por supuesto, este retraso se puede cambiar de acuerdo a sus necesidades. Vamos a ver los detalles
de
esta funcin. Comienza declarando la Choreo correcta para enviar actualizaciones en Twitter:
TembooChoreo StatusesUpdateChoreo;
[24]

Captulo 1

Despus se construye el texto que queremos tuitear como una cadena. En este caso, slo
formateados los datos del sensor en una cadena, como se muestra en el siguiente cdigo:
Cadena tweetText = "Temperatura:" + String (temperatura) + ",
Humedad: "+ String (humedad) +", el nivel de luz: "+
String (luz);

La clave de acceso token y API que hemos definido anteriormente se declaran como
entradas:
StatusesUpdateChoreo.addInput ("AccessToken",
TWITTER_ACCESS_TOKEN);
StatusesUpdateChoreo.addInput ("AccessTokenSecret",
TWITTER_ACCESS_TOKEN_SECRET);
StatusesUpdateChoreo.addInput ("ConsumerKey", TWITTER_API_KEY);
StatusesUpdateChoreo.addInput ("ConsumerSecret",
TWITTER_API_SECRET);

El texto que queremos tuitear tambin se declar simplemente como una entrada de Twitter
Coreo con la variable de cadena construimos anteriormente:
StatusesUpdateChoreo.addInput ("StatusUpdate", tweetText);

El cdigo completo de esta parte se puede encontrar en https://github.com/


openhomeautomation / geek-proyectos-yun / rbol / maestro / chapter1 / temboo_
gorjeo.

Ahora que el boceto Arduino est listo, podemos probarlo. Usted puede simplemente subir el
cdigo a su Arduino Yun, y espere un momento. Su consejo debe automticamente
conectarse a la cuenta de Twitter que ha elegido e imprimir los datos como un nuevo mensaje, como
se muestra en la siguiente captura de pantalla:

Si no aparece nada en su cuenta de Twitter, hay varias cosas que usted puede
comprobar. Ya he mencionado el uso de memoria; tratar de desactivar la salida de depuracin en el
puerto serie para liberar algo de memoria. Adems, asegrese de que ha introducido la correcta
informacin sobre su aplicacin de Twitter; es muy fcil cometer un error entre
diferentes claves de la API y de credenciales de acceso.
Para este proyecto, he utilizado la cuenta de Twitter de mi sitio web dedicado al hogar
automatizacin, pero por supuesto, usted puede crear una cuenta dedicada Twitter para el proyecto
por lo que muchas personas pueden seguir las ltimas actualizaciones sobre su casa!

[25]

La construccin de una estacin meteorolgica conectada a


la nube

Tambin se puede combinar el cdigo de esta parte con la idea de la seccin anterior,
por ejemplo, para crear alertas automatizadas basadas en los datos medidos y posterior
mensajes en Twitter en consecuencia.

Resumen
Vamos a resumir lo que hemos aprendido en este captulo. Construimos un clima sencillo
estacin de medida basado en la placa Arduino Yun que enva los datos automticamente
en la nube.
En primer lugar, usted aprendi cmo conectar sensores simples a tu placa Arduino Yun y
escribir un boceto de prueba para el tablero de Yun con el fin de asegurarse de que todos estos
sensores son
trabajando correctamente.
Entonces, nos interconecta la placa Arduino Yun a los servicios Temboo mediante el uso de la
bibliotecas Temboo dedicados para el Yun. El uso de estas bibliotecas, que los datos registrados
en una hoja de clculo de Google Docs, creado alertas de correo electrnico automatizados
basados en nuestra
mediciones, y se publican estas mediciones en Twitter.
Para ir ms lejos, se pueden combinar las diferentes partes de este proyecto conjunto, y
Tambin aadir muchas juntas Arduino Yun al proyecto, por ejemplo, en dos diferentes
reas de su casa. En el prximo captulo, vamos a usar el poder de la
Temboo bibliotecas de nuevo para enviar los datos de medicin de potencia a la Web, por lo que el
el consumo de energa de su hogar se puede controlar de forma remota.

[26]

Creacin de un remoto
Monitoreo de Energa y
Dispositivo de control
En el segundo proyecto del libro, vamos a seguir para utilizar las funciones de la
Arduino Yun para conectarse a la Web mediante el servicio web Temboo. Una cosa
la gente suele quieren hacer en la domtica es seguir el consumo de energa
de sus aparatos elctricos y convertirlos de forma remota, por ejemplo, el uso de su
smartphones o tabletas.
Por supuesto, muchos dispositivos que existen actualmente puede medir el consumo de energa
en una toma de corriente, as como ser capaz de cambiar el dispositivo que est conectado a
esta toma encendido y apagado. Estos dispositivos son ahora muy compacto y fcil de conectar
a una red Wi-Fi local y estos tambin pueden comunicarse con dispositivos mviles
a travs de Bluetooth. Muchos fabricantes de productos electrnicos grandes han desarrollado su propio
soluciones, y ahora todo el mundo puede comprar estos productos e instalarlos en sus hogares.
En este proyecto, vamos a construir nuestro propio do-it-yourself versin de un dispositivo de este tipo
y construir un interruptor de encendido y el medidor de la energa con el fin de activar un dispositivo
elctrico en
y fuera, as como para seguir su consumo de energa.
Los siguientes son los principales puntos fuertes de este captulo:

Conexin de un rel a una de las salidas digitales Arduino Yun y el uso de la


Yun REST API para comandar este rel desde un navegador web
El uso de un sensor de corriente analgica para obtener una medicin de la corriente
instantnea
consumo desde el dispositivo que est conectado al rel, y calcular la
consumo de potencia instantnea de esta medida

Creacin de un Monitoreo de Energa Remota y Control Device

El envo de estos datos a una hoja de clculo de Google Docs de modo que se puede
acceder
de forma remota desde cualquier navegador web o desde la aplicacin mvil de Google Docs,
y
calcular el consumo de energa y algunos otros datos tiles, tales como la
costo de la energa total del dispositivo conectado a su proyecto
Creacin de una simple interfaz web para controlar la lmpara usando el ordenador o
cualquier smartphone o tablet

El hardware y el software necesarios


componentes
La primera parte de este proyecto es conseguir las piezas necesarias que vamos a utilizar para nuestra
medidor de consumo de energa y el proyecto interruptor de alimentacin. Aparte de la Arduino Yun
tablero, que ser el "cerebro" del proyecto, que tendr que tener dos partes principales
listo en su escritorio en la construccin del proyecto. Estas piezas son el mdulo de rel, que
vamos a utilizar para cambiar la lmpara de encendido y apagado, y el sensor de corriente analgica,
que se utiliza
para medir la potencia y ms tarde el consumo de energa de la lmpara.
Un rel es bsicamente un interruptor electromagntico utilizado en proyectos en los que tenemos que
cambiar un muy gran tensin (110V o 230V) mediante un pequeo voltaje que el comando
seal (5 V de la placa Arduino). Para el rel, se utiliz un mdulo bsico de rel de 5V
desde Polulu, que puede cambiar hasta 10A y es ms que suficiente para muchos hogar
aparatos como lmparas. (En Europa, con 230, se puede conectar hasta 2300W). El
propio mdulo es simplemente un rel montado en una placa de circuito impreso junto con el
componentes necesarios que son necesarios para operar el rel y algunas grandes cabeceras
y traza para llevar hasta 10 si es necesario. Se utiliza un rel Omron G5LE-14-DC5. La
siguiente imagen es el rel utilizado:

[28]

Capitulo 2

Por supuesto, puede utilizar cualquier mdulo rel equivalente. Slo asegrese de que puede ser
encendido / apagado utilizando una seal de 5V digitales como el que tenemos en la placa Arduino Yun
y que puede cambiar al menos 5A, slo para estar seguro para este proyecto. La lmpara somos
utilizando en este proyecto slo utiliza alrededor de 130 mA, pero es posible que desee conectar ms
grande
dispositivos a su proyecto ms adelante. Si usted quiere construir su propio mdulo de una
retransmisin,
slo tendr que aadir un diodo en serie con el rel para proteger su placa Arduino
cuando el rel est cambiando.
No intente utilizar un rel solo en un circuito junto con el
componentes necesarios para operarlo. Las pequeas pistas en el tablero
no pueden soportar altas corrientes y tensiones y que se ejecutar en serio
problemas de seguridad si lo hacen, como el colapso potencial de estas pistas,
que puede provocar un incendio. Por lo tanto, utilizar un mdulo de rel dedicado para este
proyecto.

Entonces, es necesario un sensor de corriente para obtener el consumo de corriente instantnea de la


lmpara.
Se utiliz un mdulo de ITead de estudio, que es bsicamente un tablero del desbloqueo para el
Sensor ACS712. Un tablero del desbloqueo es simplemente un tablero que se compone de un impreso
placa de circuito, el propio chip, y todos los componentes necesarios para hacer el chip
trabajar, tales como resistencias y condensadores. Este sensor proporciona una seal analgica como
de salida, que es proporcional a la corriente medida. Esta seal puede entonces ser fcilmente
convertido a la corriente correspondiente a la placa Arduino Yun. Vamos a adquirir
esta seal analgica utilizando uno de los conversores analgico-digital integrado de la Yun
bordo. Tenga en cuenta que tambin hay sensores de corriente no invasivo que pueda simplemente
recortar alrededor del cable que se quiere medir, pero estos suelen ser ms grande y no lo hacen
integrarse bien con proyectos de Arduino. La siguiente es una imagen del sensor utilizado
para este proyecto:

[29]

Creacin de un Monitoreo de Energa Remota y Control Device

Al igual que para el mdulo de rel, se puede utilizar cualquier sensor de corriente equivalente para este
proyecto. Los parmetros importantes a considerar son la corriente mxima que
puede fluir a travs del sensor (5A para la que utilizamos) y la sensibilidad del sensor
(185 mV / A para la que usamos). Si estos dos parmetros son similares al sensor I
utilizado en este proyecto, o si son mejores, se puede utilizar el sensor.
Tambin es necesario para conectar la lmpara para el proyecto de alguna manera. Por supuesto, de
una forma
sera cortar directamente el cable de alimentacin de la lmpara y conectar la lmpara directamente a
nuestro proyecto, pero no me gusta esta opcin porque es bastante complicado. Como mencion en el
introduccin de este proyecto, yo no quiero que toques tu lmpara u otro dispositivo en
de cualquier manera, y yo quiero que seas capaz de conectar la lmpara de nuevo a la toma de
corriente
en la pared si quieres.
Us dos cables de alimentacin de modo que pueda conectar mi proyecto a la toma de corriente en
un
laterales y conectar la lmpara para el proyecto en el otro lado, al igual que lo hara con un
dispositivo comercial compr fuera de la plataforma.
Lo siguiente es lo que utilic para el cable de alimentacin donde voy a tapar la lmpara:

El siguiente es el cable de alimentacin voy a utilizar para conectar el proyecto para el enchufe de la
pared:

[30]

Capitulo 2

Tenga en cuenta que algunos enchufes tienen tres cables (el cable adicional de ser para el
conexin a tierra), pero como vamos a trabajar con cargas pequeas, como las lmparas, la
tercera cable no es necesario para este proyecto.
En cuanto al hardware, tambin utilic una pequea pieza de un tablero para que el poder
conexiones del rel y el sensor de corriente (porque la placa Arduino Yun
slo tiene un pin 5V). Pero, por supuesto, se puede utilizar un tablero de tamao completo para que
stos
conexiones.
En cuanto al software, necesitar la ltima versin beta de la Arduino IDE, que
es el nico que apoya la placa Arduino Yun (I utiliza la versin 1.5.5, mientras que
haciendo este proyecto).

Conexin de los componentes a la


Tablero Yun
Ahora vamos a conectar el mdulo de rel y el sensor de corriente a la placa Arduino
Tablero Yun, conecte el cable de alimentacin que se encienda la lmpara, y finalmente conectar
todo a la toma de corriente en la pared. Esta parte es un poco ms difcil de lo que
las conexiones de hardware en Captulo 1, La construccin de una estacin meteorolgica conectada a
la
Nube, ya que implica ms pasos y utiliza un voltaje mayor que obligue a tomar
algunas precauciones. As que, por favor, tener cuidado y seguir todos los pasos.
El primer paso es poner la placa Arduino Yun, el mdulo de rel, y la corriente
placa del sensor cerca uno del otro, como se muestra en la siguiente imagen:

[31]

Creacin de un Monitoreo de Energa Remota y Control Device

Entonces, vamos a conectar la fuente de alimentacin del mdulo del rel y la corriente
sensor. Como dije al principio de este captulo, la placa Arduino Yun slo tiene un 5V
pin. Es por ello que he conectado las clavijas 5V de los dos mdulos de una pequea pieza de un
breadboard primero y luego conectado este tablero al pasador Arduino 5V, como
se muestra en la siguiente imagen:

Despus de esto, tenemos que conectar los pines de tierra de los dos mdulos para el pin de tierra
de la placa Arduino Yun como se muestra en la siguiente imagen. La placa Arduino Yun
tiene dos patillas de tierra en el tablero, por lo que no tiene que usar el tablero para esto.

[32]

Capitulo 2

Para terminar con la conexin de los dos mdulos, tenemos que conectar sus respectivas
pernos de la seal a la placa Arduino. El rel se controla a travs del pin nmero 8 de la
Placa Arduino Yun, as que conecte el pin de seal del mdulo rel de precisar el nmero 8 de
la junta Yun.
El sensor de corriente tiene una salida analgica, por lo que tiene que estar conectado a una entrada
analgica
de la placa Arduino con el fin de adquirir la seal utilizando uno de los Yun integrado
de analgico a digital. Este convertidor adquirir la seal analgica que viene
del sensor y la transforman en valores digitales que van de 0 a 1023 (que
corresponder a un 10-bit de precisin). Conectar el pin de salida del mdulo de sensor de corriente
al pin A0 nmero de la placa Arduino Yun, como se muestra en la siguiente imagen:

[33]

Creacin de un Monitoreo de Energa Remota y Control Device

Eso es bsicamente todo por la parte de baja potencia. Ahora, nos centraremos en la conexin de la
proyectar a los dos cables de alimentacin para que podamos conectar el proyecto en la pared
enchufar y conectar la lmpara con el proyecto. Comenzaremos por conectar el cable que va a
ir a la pared, como se muestra en la siguiente imagen:

Por ltimo, conecte el enchufe hembra que vamos a conectar la lmpara, como se muestra en
la siguiente imagen:

[34]

Capitulo 2

Por ltimo, es el momento de encender todo. Usted puede conectar su placa Arduino Yun en
al ordenador mediante un cable USB (si quieres subir directamente bocetos y desea
espacio para que el equipo sea todo el proyecto) o por medio de una toma de corriente de la pared a
un
Adaptador USB (si va a cargar los bocetos a travs de Wi-Fi y dejar el proyecto para
trabajar por su cuenta).
A continuacin, conecte la lmpara o el dispositivo que desea controlar en el poder femenino
enchufe del proyecto. Para terminar, conecte el enchufe macho a la toma de corriente en el
pared. Tenga cuidado al realizar este paso: asegrese de que no hay conductores elctricos
estn expuestos, todos los terminales de tornillo estn atornillados correctamente y estn sosteniendo
los cables
firmemente, y no hay conductores elctricos desnudos se toquen entre s.

Comprobacin de las conexiones de hardware


Ahora que las conexiones se hacen, vamos a probar todo antes de que
iniciar el envo de los datos de consumo de energa a la nube y la construccin de la interfaz para
controlar el rel. Vamos a probar los diferentes mdulos como si el proyecto ya fue
en operacin. Para toda la duracin de las pruebas, vamos a conectar el proyecto a
la toma de corriente en la pared y la lmpara que queremos controlar. De esta manera, lo haremos
asegrese de que todas las conexiones de hardware son correctas antes de seguir adelante.
El rel, por ejemplo, se controlar a travs de Wi-Fi utilizando el Arduino Yun REST
API, tal como lo ser en la versin final del proyecto. Bsicamente, nos limitaremos a enviar
un comando desde el navegador web para configurar directamente el valor de la clavija a la que el
rel est conectado. Ms adelante en el proyecto, vamos a hacer esta llamada a travs de una grfica
de usuario
interfaz en lugar de realmente escribiendo el comando en un navegador.
Para el sensor de corriente, vamos a leer simplemente el valor medido en el
A0 pin analgico utilizando el convertidor de analgico a digital de la Yun, convertir a un utilizable
corriente, y luego calcular el valor de la corriente efectiva y la potencia efectiva
como ya sabemos el valor de la tensin eficaz (110V o 230V dependiendo
donde vives).
Primero vamos a echar un vistazo a el cdigo de Arduino. Se inicia mediante la importacin de las
bibliotecas adecuadas,
como se muestra en el siguiente cdigo. Necesitamos la Puente biblioteca para que podamos utilizar
las funciones de la mquina Linux a bordo del Yun, y la YunServer y
YunClient bibliotecas para que puedan recibir rdenes externas utilizando el API REST.
APIs REST slo se usan por los desarrolladores web, pero Arduino propone realidad
un boceto que implementa una API para el Arduino Yun. Este bosquejo est directamente
accesible en la biblioteca que viene con el Arduino Yun, y en este proyecto, he usado
una versin modificada de este bosquejo de referencia.
#include <Bridge.h>
#include <YunServer.h>
#include <YunClient.h>
[35]

Creacin de un Monitoreo de Energa Remota y Control Device

Para utilizar la API REST del Yun, tenemos que crear un YunServer ejemplo, como se muestra
en la siguiente lnea de cdigo. Este servidor funcionar continuamente y esperar
comandos entrantes.
Servidor YunServer;

Tambin tenemos que definir los pines que nuestros sensores estn conectados, como se muestra
en la
siguientes lneas de cdigo:
#define CURRENT_SENSOR A0
#define RELAY_PIN 8

Una parte importante del boceto es declarar el valor de la tensin efectiva,


que ser utilizado ms adelante para calcular la potencia eficaz del dispositivo, como se muestra
en la siguiente lnea de cdigo. Este valor depende de donde usted se encuentre (por
ejemplo, 230 para Europa, y 110 para los EE.UU.):
flotar effective_voltage = 230;

En el preparar () parte, tenemos que empezar el puente entre el Arduino


microcontrolador y la mquina Linux como sigue:
Bridge.begin ();

Tambin tenemos que iniciar el servidor web de la siguiente


manera:
server.listenOnLocalhost ();
server.begin ();

Entonces, la ltima y ms importante parte de la preparar () funcin es para calibrar el


sensor con el fin de determinar qu valor se devuelve cuando la corriente es nula. Esto es
realizado por la siguiente lnea de cdigo:
zero_sensor = getSensorValue ();

Entremos en esta funcin. Podramos simplemente obtener una medicin de la corriente


sensor, pero que sera una mala idea. De hecho, el valor que se obtiene desde el sensor
vara ligeramente con el tiempo, en torno a una media que en realidad queremos medir. Este
es un comportamiento tpico cuando se utilizan sensores analgicos que tienen sensibilidades
importantes,
como el que estamos utilizando aqu. Esta es la razn por la funcin bsicamente muestras y promedios
la seal a travs de varias medidas con las siguientes lneas de cdigo:
for (int i = 0; i <nb_measurements; i ++) {
sensorValue = analogRead (CURRENT_SENSOR);
avgSensor = avgSensor + flotador (sensorValue);
}
avgSensor = avgSensor / float (nb_measurements);

[36]

Capitulo 2

Despus de estas mediciones, volvemos a la media de la siguiente manera:


volver avgSensor;

De esta manera, estamos seguros de obtener un valor estable de la lectura del sensor cada vez. Este
valor se utiliza a continuacin, a travs de todo el boceto como valor de referencia para la corriente
lecturas de los sensores. Por ejemplo, si el valor medido es igual a esta referencia, se
se sabe que la corriente en la lmpara es nulo. La lectura del sensor real durante
la operacin del proyecto utiliza la misma funcin, por lo que siempre nos dan un establo
medicin.
Ahora, viene la loop () parte del dibujo. En realidad se compone de dos partes: en la
primera parte, vamos a recibir conexiones entrantes en el servidor web Yun que
empezamos antes, y en la segunda parte, vamos a imprimir las mediciones que vienen
desde el sensor de corriente.
Por la parte del servidor web, podemos escuchar las conexiones de la siguiente
manera:
YunClient cliente server.accept = ();

Si se detecta un cliente, procesamos la solicitud con el siguiente cdigo:


si (cliente) {
// Peticin de Procesos
proceso (cliente);
// Cerrar la conexin y recursos gratuitos.
client.stop ();
}

No voy a detallar la Proceso funcin, ya que es el mismo que en la Puente ejemplo para
Arduino Yun que utilizamos antes (esto est disponible como un ejemplo en el Yun
Puente biblioteca). Para saber ms acerca de la API REST Yun, se puede visitar el funcionario
Documentacin Arduino en el sitio web de Arduino en http://arduino.cc/en/Guide/
ArduinoYun.
Ahora, vamos a escribir la parte del dibujo que es responsable de la actual
mediciones. Se inicia cuando se obtiene una medida estable, tal como lo hicimos anteriormente para
la corriente nula como sigue:
flotar Sensor_value = getSensorValue ();

No voy a entrar en los detalles de esta funcin, ya que es la misma que la que se utiliz para obtener
el valor de la corriente nula. Ahora podemos hacer algunos clculos en esta medida
valor. En primer lugar, tenemos que convertirlo en un valor corriente utilizable de la siguiente manera:
amplitude_current = (float) (sensor_valuezero_sensor) / 1024 * 5/185 * 1000000;
[37]

Creacin de un Monitoreo de Energa Remota y Control Device

Esta es la amplitud de la corriente, que es una corriente sinusoidal. Esta frmula


se pueden encontrar en la hoja de datos del sensor, as como en la pgina web ITead Studio.
Porque sabemos que esta informacin sobre el actual, para obtener la corriente de efectivo, que
slo tendr que dividir por la raz cuadrada de dos de la siguiente manera:
effective_value = amplitude_current / 1.414;

Para obtener el poder efectivo, entonces necesitamos transformar esta corriente en amperios por
dividiendo el valor por 1000 y multiplicando con la tensin eficaz. Tambin he aadido
un operador valor absoluto para que el poder es siempre positiva, incluso cuando usted
conectar el sensor de corriente para medir corrientes negativas, como sigue:
abs (effective_value * effective_voltage / 1000);

El boceto termina imprimiendo todos estos valores en el monitor de serie y se repite


cada 50 milisegundos. El esquema completo de esta parte est disponible en el GitHub
repositorio del libro en https://github.com/openhomeautomation/geekyproyectos-yun / rbol / maestro / captulo2 / sensors_test.
Ahora usted puede cargar el boceto a la placa Arduino. Recuerde que en este punto,
la placa Arduino Yun debe ser alimentada por el ordenador o un poder USB
adaptador, la lmpara debe estar enchufado al proyecto en el cable de poder femenino, y la
proyecto en s debe ser enchufado en la toma de corriente.
El rel es bastante fcil de prueba; slo tiene que ir a su navegador web y escriba
el comando de la derecha. La API REST del Yun trabaja escribiendo el nombre de su
Placa Arduino Yun seguido de .local (En mi caso, yo nombr myarduinoyun).
Entonces, si es seguido por arduino /, Se puede utilizar directamente los comandos para cambiar la
valor de los pines de Arduino. Por ejemplo, para cambiar el valor de la clavija de rel 1, se
necesitar agregar digitales / 8/1, Como se muestra en la siguiente captura de pantalla:

El comando anterior significa que usted est llamando el comando


digitalWrite (8, HIGH) utilizando la API REST. Usted debe escuchar al instante el rel
cambiar y ver la luz se enciende. Intntalo de nuevo mediante la adicin de un 0despus del comando
en lugar
de un 1; el rel debe cambiar de nuevo y apagar la luz. No te preocupes, como ms tarde en
el proyecto, vamos a construir una agradable interfaz grfica de modo que usted no tiene que escribir
esto
ordenar en todo momento.

[38]

Capitulo 2

Ahora vamos a comprobar las medidas procedentes del sensor de corriente. Hacer
Asegrese de que la lmpara est apagada, restablezca el microcontrolador Arduino para asegurarse
de que el boceto
comienza desde el principio otra vez, y luego abrir el monitor de serie. Para ello, la
Placa Arduino Yun tiene que estar conectado al ordenador mediante el cable USB. La
Lo primero que debe ver es la medida para una corriente nula de la siguiente manera:
Valor del sensor: 493.05

Entonces, el dibujo muestra continuamente el valor de la lectura del sensor, la corriente


amplitud, la corriente eficaz, y el poder efectivo. Incluso si la corriente es nula,
Recordemos que tenemos una media de las lecturas de los sensores durante varias mediciones, por lo
que hay
puede haber fluctuaciones de menor importancia en el valor, como se muestra en el siguiente cdigo:
Valor del sensor: 492.87
Amplitud de la corriente (en mA):
4.5
Valor eficaz de corriente (en mA)
3.2
Potencia efectiva (en W):
0.7

Si a continuacin, encienda la lmpara sobre el uso de la llamada REST en su navegador,


usted debe
ver inmediatamente un cambio en las lecturas de corriente y potencia de la siguiente manera:
Valor del sensor: 486.52
Amplitud de la corriente (en mA):
-163.1
Valor eficaz de corriente (en mA)
-115.4
Potencia efectiva (en W):
26.5

Si usted puede ver estos valores y su repetidor est respondiendo a las llamadas REST en su
navegador, significa que el hardware funciona correctamente y se puede proceder a
el siguiente paso. Si no funciona, el primer paso es comprobar las diferentes conexiones de
el mdulo de sensor y rel de corriente. Tambin compruebe que ha seleccionado la correcta
Velocidad de serie en el monitor de serie para que coincida con la velocidad definida en el boceto.

[39]

Creacin de un Monitoreo de Energa Remota y Control Device

El envo de datos a Google Docs


El primer paso es la creacin de una hoja de clculo de Google Docs para el proyecto. Crear un nuevo
hoja, darle un nombre (I llamado a la ma Energa para este proyecto, pero puede que el nombre como
lo desea), y establece el ttulo de las columnas que vamos a utilizar: Intervalo De Tiempo,
Poder, y Energa (Que se calcula a partir de las dos primeras columnas), como se muestra en
la siguiente captura de pantalla:

Tambin podemos calcular el valor de la energa utilizando las otras mediciones. Desde
teora, sabemos que durante un perodo determinado de tiempo, la energa se multiplica por el poder
tiempo; esto es, Energa = potencia * Tiempo.
Sin embargo, en nuestro caso, la energa se calcula a intervalos regulares, y queremos
estimar el consumo de energa para cada uno de estos intervalos. En trminos matemticos,
Esto significa que necesitamos para calcular la integral de la potencia como una funcin del tiempo.
No tenemos la funcin exacta entre el tiempo y la energa que nos muestra esta funcin
a intervalos de tiempo regulares, pero podemos estimar esta integral utilizando un mtodo llamado
la regla trapezoidal. Esto significa que, bsicamente, estimamos la integral de la funcin,
que es el rea debajo de la curva de potencia, por un trapecio. La energa en el C2 clula en
la hoja de clculo se da entonces por la frmula:
Energa = (PowerMeasurement + NextPowerMeasurement) * TimeInverval / 2.
Concretamente, en Google Docs, tendr la frmula, D2 = (B2 + B3) * C2 / 2.
La placa Arduino Yun le dar la medida de potencia, y el intervalo de tiempo es
propuesta por el valor fijamos en el boceto. Sin embargo, el tiempo entre dos mediciones
puede variar de medicin a medicin. Esto es debido al retardo introducido por
la red. Para resolver este problema, vamos a transmitir el valor exacto junto con el poder
la medicin para obtener una mejor estimacin de la consumo de energa.
Entonces, es el momento de construir el boceto que vamos a utilizar para el proyecto. El objetivo de
este
bosquejo es bsicamente que esperar para los comandos que provienen de la red, para cambiar la
retransmitir o desactivar, y para enviar datos a la hoja de clculo de Google Docs a intervalos
regulares
para realizar un seguimiento del consumo de energa.
Vamos a construir el boceto en la parte superior del boceto construimos anteriormente as que voy a
explicar lo que
componentes necesitan ser aadido. En primer lugar, es necesario incluir sus credenciales Temboo
con la siguiente lnea de cdigo:
#include "TembooAccount.h"
[40]

Capitulo 2

Ya que no podemos medir continuamente los datos de consumo de energa (los datos
transmitimos sera enorme, y vamos a superar rpidamente nuestro lmite de acceso mensual
para Temboo!), al igual que en el boceto de prueba, tenemos que medirlo a slo determinados
intervalos.
Sin embargo, al mismo tiempo, tenemos que comprobar continuamente si un comando es
recibida desde el exterior para cambiar el estado del rel. Esto se hace mediante el establecimiento de
la
horarios correctos primero, como se muestra en el siguiente cdigo:
int server_poll_time = 50;
int power_measurement_delay = 10000;
int power_measurement_cycles_max = power_measurement_delay / server_
poll_time;

El tiempo de sondeo del servidor ser el intervalo en el que comprobamos las conexiones entrantes.
La medicin de potencia de retardo, como se puede adivinar, es el retraso en la cual el poder es
medido.
Sin embargo, no podemos usar una funcin de retardo simple para esto, ya que pondr todo el boceto
en espera. Lo que vamos a hacer en su lugar es contar el nmero de ciclos de la
bucle principal y luego activar una medicin cuando la cantidad correcta de ciclos tiene
ha alcanzado mediante un sencillo si comunicado. La cantidad correcta de ciclos est dada por la
medicin de potencia cycles_max variable.
Tambin tendr que introducir sus credenciales de Google Docs mediante las siguientes lneas
de cdigo:
const Cadena GOOGLE_USERNAME = "yourGoogleUsername";
const Cadena GOOGLE_PASSWORD = "yourGooglePass";
const Cadena SPREADSHEET_TITLE = "Power";

En el preparar () funcin, usted necesita para comenzar un proceso de fecha que mantener un
seguimiento de
la fecha de medicin. Queremos mantener un seguimiento de la medicin durante varios
da, por lo que transmitirn la fecha del da, as como el tiempo, como se muestra en la
siguiente cdigo:
tiempo = millis ();
if (! date.running ()) {
date.begin ("fecha");
date.addParameter ("+% D-% T");
date.run ();
}

En el loop () funcin del boceto, comprobamos si es el momento para llevar a cabo una
medicin desde el sensor de corriente, como se muestra en la siguiente lnea de cdigo:
si (power_measurement_cycles> power_measurement_cycles_max)

[41]

Creacin de un Monitoreo de Energa Remota y Control Device

Si ese es el caso, se mide el valor del sensor, de la siguiente manera:


flotar Sensor_value = getSensorValue ();

Tambin recibimos el intervalo exacto de medicin que vamos a transmitir, junto con la
poder para obtener una estimacin correcta del consumo de energa medido, como sigue:
measurements_interval = millis () - last_measurement;
last_measurement = millis ();

A continuacin, calcular la potencia efectiva de los datos que ya tenemos. La amplitud


de la corriente se obtiene de las mediciones del sensor como se muestra anteriormente. Entonces
podemos obtener el valor efectivo de la corriente dividiendo esta amplitud por el
raz cuadrada de 2. Finalmente, como sabemos la tensin efectiva y que el poder es actual
multiplicado por la tensin, podemos calcular la potencia eficaz, as, como se muestra en la
siguiente cdigo:

// Convertir a la corriente
amplitude_current = (float) (Sensor_value-zero_
sensor) / 1024 * 5/185 * 1000000;
effective_value = amplitude_current / 1.414;

// Calcular la potencia
flotar effective_power = abs (effective_value *
effective_voltage / 1000);

Despus de esto, enviamos los datos con el intervalo de tiempo a Google Docs y restablecer los
contador para mediciones de potencia, como sigue:
runAppendRow (measurements_interval, effective_power);
power_measurement_cycles = 0;

La funcin para enviar datos a Google Docs es casi la misma que la que vimos en
Captulo 1, La construccin de una estacin meteorolgica conectada a la nube. Vamos rpidamente
a entrar en la
detalles de esta funcin. Comienza declarando el tipo de biblioteca Temboo queremos
utilizar, como sigue:
TembooChoreo AppendRowChoreo;

Comience con la siguiente lnea de cdigo:


AppendRowChoreo.begin ();

Entonces, necesitamos configurar los datos que se refiere a su cuenta de Google, por ejemplo, la
nombre de usuario, como sigue:
AppendRowChoreo.addInput ("nombre de usuario", GOOGLE_USERNAME);

[42]

Capitulo 2

El formato real de los datos se realiza con la siguiente lnea de cdigo:


datos = datos + horaCadena + "," + String (intervalo) + "," +
String (effectiveValue);

Aqu, intervalo es el intervalo de tiempo entre dos mediciones, y


effectiveValue es el valor de la potencia medida que queremos iniciar sesin en
Google Docs. El Choreo continuacin se ejecuta con la siguiente lnea de cdigo:
AppendRowChoreo.run ();

Por ltimo, hacemos esto cada 50 milisegundos y obtenemos un incremento de la potencia


contador de medicin cada vez, de la siguiente manera:
retardo (server_poll_time);
power_measurement_cycles ++;

El cdigo completo de esta seccin est disponible en https://github.com/


openhomeautomation / geek-proyectos-yun / rbol / maestro / captulo2 / energy_log.

El cdigo para esta parte se ha completado. Ahora puede cargar el boceto y despus de eso,
abrir la hoja de clculo de Google Docs y luego slo tiene que esperar hasta que la primera
medicin
llega. La siguiente captura de pantalla muestra la primera medicin que tengo:

Despus de unos momentos, me dieron varias mediciones registradas en mi Google Docs


hoja de clculo. Tambin jugu un poco con el control de la lmpara por el encendido y apagado de
manera
que en realidad podemos ver los cambios en los datos medidos. La siguiente captura de pantalla
muestra las primeras medidas:

[43]

Creacin de un Monitoreo de Energa Remota y Control Device

Es bueno tener algunos datos registrados en la hoja de clculo, pero es an mejor para mostrar
estos datos en un grfico. Us la incorporada en el trazado de las capacidades de Google Docs para
trazar la
el consumo de energa a travs del tiempo en un grfico, como se muestra en la siguiente captura de
pantalla:

Utilizando el mismo tipo de grfico, el usuario puede trazar el consumo de energa calculada
datos a travs del tiempo, como se muestra en la siguiente captura de pantalla:

De los datos que se obtiene en esta hoja de clculo de Google Docs, tambin es muy fcil de conseguir
otros datos de inters. Puede, por ejemplo, calcular el consumo total de energa
con el tiempo y el precio que le costar. El primer paso es el clculo de la suma de la
columna de consumo de energa mediante la funcionalidad suma integrada de Google Docs.

[44]

Capitulo 2

Entonces, usted tiene el consumo de energa en Julios, pero eso no es lo que la electricidad
empresa por lo general le cobra por. En su lugar, utilizan kWh, que es bsicamente el Joule
valor dividido por 3.600.000. La ltima cosa que necesitamos es el precio de un solo kWh. De
Por supuesto, esto depender del pas que est viviendo, pero en el momento de la escritura
este libro, el precio en los EE.UU. fue de aproximadamente $ 0,16 por kWh. Para obtener el total
precio, a continuacin, slo tiene que multiplicar el consumo total de energa en kWh con la
precio por kWh.

Este es el resultado con los datos que grab. Por supuesto, ya que slo tom una muestra corta de
datos, me cost casi nada al final, como se muestra en la siguiente captura de pantalla:

Tambin puede estimar el / apagado tiempo en el dispositivo que se est midiendo. Para esto
propsito, simplemente agregu una columna adicional al lado Energa nombre Encendido Apagado.
YO
simplemente se utiliza la frmula = SI (C2 <2; 0; 1).
Esto significa que si el poder est a menos de 2W, contamos como un estado de apagado; de lo
contrario,
contamos como un estado encendido. Yo no puse la condicin de 0W contarlo como un estado de
apagado
debido a las pequeas fluctuaciones en el tiempo desde el sensor de corriente. Entonces, cuando usted
tener estos datos sobre los diferentes estados activado / desactivado, es bastante simple para contar el
nmero
He
aplicado estas
en lapor
hoja
de clculo
de estados,
Google Docs,
y la siguiente
de ocurrencias
de frmulas
cada estado,
ejemplo,
en los
utilizando
= De CONTAR.SI (E: E, "1").
captura de pantalla es el resultado con los datos de ejemplo que grab:

[45]

Creacin de un Monitoreo de Energa Remota y Control Device

Tambin es muy conveniente para representar estos datos en un grfico. Para ello, he usado un grfico
circular,
que creo que es la grfica ms adaptable para este tipo de datos. La siguiente
captura de pantalla es lo que tengo con mis medidas:

Con el tipo anterior de grfico, puede comparar el uso de una lmpara dada desde
da a da, por ejemplo, para saber si ha dejado las luces encendidas cuando ests
no ah.

La construccin de una interfaz para cambiar las


luces
Ahora
que nuestro proyecto
registra automticamente
los datos
relativos al consumo de energa en
encendido
/ apagado
de forma
remota
Google Docs, es hora de volver al control del rel. Por ahora, hemos probado el rel
entrar en un navegador web y escriba la funcin REST correcta con el nombre de la
pin queremos cambiar.

Sin embargo, eso no es muy conveniente. Usted no quiere que escriba algo en tu web
navegador cada vez que quieras encender una luz en su hogar. Lo que nos gustara
tener lugar es una bonita interfaz grfica con botones que se pueden pulsar para activar
una luz encendida o apagada. Sera an mejor si esta interfaz se poda acceder no slo
desde un navegador web en su computadora, pero tambin desde cualquier telfono inteligente o una
tableta en
tu hogar. Eso es exactamente lo que vamos a construir ahora.
Necesitamos varios componentes para hacerlo, y vamos a mezclar varios programacin
lenguajes para construir la mejor interfaz grfica posible. Vamos a utilizar HTML para el
pgina principal que albergar el botn de encendido / apagado, JavaScript para manejar las acciones
de este
botn, y PHP para transmitir el comando correcto al servidor Arduino. Somos
Tambin va a usar un poco de CSS para que la interfaz se ve mucho mejor y de forma automtica
adaptarse al dispositivo que est utilizando, por ejemplo, un telfono inteligente.
[46]

Capitulo 2

En primer lugar, vamos a tratar con el cdigo HTML. Tenemos que importar la librera jQuery y el
archivo que contendr todo el cdigo JavaScript de la siguiente manera:
<Script src = "jquery-2.0.3.min.js"> </ script>
<Script src = "script.js"> </ script>

Adems, importe el archivo de estilo CSS, de la


siguiente manera:
<Link rel = "stylesheet" type = "text / css" href = "style.css">

El ncleo de este archivo HTML es crear dos botones; un botn para cambiar el rel
y el otro para apagarlo de nuevo. El siguiente, por ejemplo, es el cdigo de la
En botn:
<Input type = id "botn" = "on" class = valor "commandButton" = "On"
onclick = "relayOn ()" />

Ahora, si usted fuera a tomar realmente este archivo ya que es, se vera muy mal como algunos
estilos por defecto se aplicaran a los botones. Es por eso que adjuntamos un archivo CSS para
hacer que la interfaz se vea un poco mejor. Por ejemplo, he decidido centrar alinear el principal
formulario que contiene los dos botones, como sigue:
#relay {
text-align: center;
}

Tambin me dio un poco de estilo a los botones de s mismos, como un fondo de color naranja; YO
hecho ms grande y tambin poner un bonito borde negro alrededor de ellos, como se muestra en la
siguiente cdigo:
.commandButton {
background-color: orange;
frontera: 1px solid negro;
font-size: 40px;
cursor: puntero;
border-radius: 10px;
Ancho: 300px;
altura: 100px;
}

Ahora la interfaz se ve mucho mejor en el equipo. Pero y si alguien lo abre


desde un smartphone? No se adaptara en absoluto a la pequea pantalla de un telfono inteligente.
Para realizar automticamente la interfaz adaptarse al dispositivo que est utilizando, vamos a utilizar
una
propiedad de CSS3 llamada preguntas de los medios. Esta caracterstica de CSS3 puede, por ejemplo,
detectar
si un tamao de pantalla ms pequea se utiliza para acceder a la pgina. Entonces, cuando usted tiene
este
informacin, se puede utilizar para modificar el estilo de los diferentes elementos en consecuencia,
por ejemplo, podemos querer que nuestros botones aparecen de manera diferente en la pgina.
[47]

Creacin de un Monitoreo de Energa Remota y Control Device

En nuestro caso, queremos hacer que los botones tienen todo el espacio disponible en el ms pequeo
pantalla. Tambin queremos duplicar la altura de cada botn, as como duplicar la fuente
tamao de modo que puede ser muy legible en una pequea pantalla como en un smartphone. Todo
esto se hace mediante el siguiente fragmento de cdigo:
pantallamedia y (max-dispositivo-width: 400px) {
.commandButton {
width: 100%;
altura: 200px;
frontera: 2px slido negro;
font-size: 80px;
margin-bottom: 50px;
text-align: center;
background-color: orange;
}
}

El archivo JavaScript simplemente hace que la interfaz entre la GUI slo diseamos y
el archivo PHP que realmente se conectar a la placa Arduino Yun. La siguiente, por
ejemplo, es el cdigo de llamada por un botn:
relayOn function () {
$ .get ("Update_state.php", {comando: "1"});
}

La comando variables simplemente contiene el estado del rel que queremos enviar
a la placa Arduino Yun y fijar el valor del pin que el rel est
conectado a.
Ahora vamos a ver el archivo PHP. La primera lnea del cdigo obtiene la variable de comando desde
el cdigo JavaScript y construye el comando que ser enviado a la Yun, de la siguiente manera:
$ Service_url = 'http: //myarduinoyun.local/arduino/digital/8/'. $ _
OBTENER ["comando"];

Para enviar realmente el comando, vamos a utilizar una funcin de PHP llamada rizo que
vamos a utilizar para llamar a la API REST del Yun. Primero tenemos que inicializar esta funcin
con el URL hemos construido antes, como sigue:
$ Rizo = curl_init ($ service_url);

Por ltimo, en realidad ejecutamos este comando con el siguiente cdigo:


curl_setopt ($ rizo, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
$ Curl_response = curl_exec ($ rizo);
curl_close ($ rizo);

[48]

Capitulo 2

La opcin con conjunto en la primera lnea de cdigo se utiliza simplemente para acelerar el acceso a la
Placa Arduino. Antes de probar la interfaz, asegrese de que el servidor web en su
equipo est funcionando y que todos los archivos del proyecto se encuentra en la raz de
la carpeta del servidor web. El cdigo completo para esta parte del proyecto est disponible en
https://github.com/openhomeautomation/geeky-projects-yun/tree/master/
captulo2 / web_interface.

Usted debe ver a los dos botones de la interfaz del programa en su navegador, como se muestra
en la siguiente captura de pantalla:

Ahora puede probar esta sencilla interfaz. Basta con hacer clic en un botn y el cdigo PHP
debe dar el comando correcto en tu placa Arduino Yun, hacer el cambio vaya
dentro o fuera de forma instantnea.
Tambin puede probar la interfaz en un telfono inteligente o tableta. Us mi telfono para hacerlo.
Slo tienes que abrir tu navegador favorito, vaya a la direccin o el nombre de la red IP de su
ordenador,
y usted debera ver los diferentes archivos de su proyecto que se muestran. Simplemente haga clic en
interface.html y la interfaz debe abrir y escalar a tamao de la pantalla de su telfono,
como se muestra en la siguiente captura de pantalla:

[49]

Creacin de un Monitoreo de Energa Remota y Control Device

As como para la interfaz en el equipo, slo tiene que pulsar un botn y el


la luz se enciende o apaga al instante. Ahora, usted es capaz de comandar esta luz de
donde quiera que est en su hogar; slo tienes que estar conectado a su localidad
Red Wi-Fi.

Resumen
Vamos a ver lo que hemos aprendido en este proyecto. Al inicio del proyecto, que vio cmo
para interconectar los componentes necesarios de este proyecto para la placa Arduino Yun: un rel
mdulo, un sensor de corriente, y una lmpara que ser controlada por la junta Yun.
Luego, escribimos un boceto sencillo para probar los diferentes componentes del proyecto y
se asegur de que todos ellos trabajaban correctamente.
Entonces, hemos construido el consumo de energa tala parte del proyecto, y se registra la
el consumo de energa en el interior de una hoja de clculo de Google Docs. Tambin utilizamos el
built-in
capacidades de Google Docs para calcular el consumo real de energa, energa total
costo y de encendido / apagado hora del dispositivo.
Finalmente, en la ltima parte del proyecto, construimos una interfaz grfica de usuario para controlar el
retransmitir desde un navegador web, desde su ordenador, o un smartphone / tablet.
Por supuesto, hay muchas maneras de tomar lo que has aprendido en este proyecto y
extenderlo ms. La primera cosa que puedes hacer es agregar ms dispositivos al proyecto. Para
ejemplo, Arduino Yun tiene seis entradas analgicas en total, por lo que en teora podra conectarlo
mismo nmero de sensores de corriente en el Yun. Siguiendo los mismos principios, se
Tambin podra aadir ms placas Arduino Yun al proyecto.
Tambin puede utilizar el proyecto con ms caractersticas de Temboo, tales como la integracin de
las mediciones de potencia con los medios sociales, por ejemplo, alertando al usuario
Twitter cuando el consumo de energa supera un determinado umbral. El usuario podra
a continuacin, apague la lmpara respondiendo a este tweet.
En el prximo captulo, vamos a utilizar otras caractersticas de la Arduino Yun como el USB
puerto y la mquina Linux embebido para crear una cmara de seguridad inalmbrica. Este
cmara cargar automticamente las imgenes a una carpeta de Dropbox y tambin transmitir los
viven video en YouTube para que pueda supervisar su hogar de forma remota.

[50]

Hacer su propio
La cmara est conectada en
la nube

En este proyecto, vamos a construir una cmara de seguridad que carga automticamente
fotos a la web. Vamos a conectar una cmara a la placa Arduino Yun, y utilizar
sus caractersticas de gran alcance para el control de esta cmara fcilmente y subir fotos a la web.
Lo que vamos a construir es un sistema que puede detectar el movimiento, y si algn movimiento
se detecta, puede tomar automticamente una imagen y guardarla tanto en la tarjeta SD locales
conectado a la placa Yun y un almacenamiento en la nube; en nuestro caso, Dropbox. Tambin
estamos
va a hacer que la cmara de transmisin en vivo de un vdeo en un feed privado YouTube.

Empezando
Vamos a ver lo que vamos a hacer en este proyecto con ms detalle:

En primer lugar, vamos a construir la parte de hardware del proyecto con un tpico
USB de la cmara, un sensor de movimiento PIR, y una tarjeta SD.

Entonces, vamos a escribir algo de cdigo para probar todas las conexiones de hardware
de la
proyecto. Vamos a comprobar si el sensor de movimiento est funcionando correctamente
y
tratar de tomar una foto con la cmara mientras est conectada a la placa Arduino
Tablero
DespusYun.
de probar el hardware, vamos a construir la primera aplicacin, que
capta imgenes siempre que se detecte algn movimiento y automticamente tiendas
estas fotos en la tarjeta SD.

Hacer su propio cmara conectada en la nube

Justo despus de la construccin de esta aplicacin local sencillo, vamos a conectar el


proyecto para la nube. El proyecto va a hacer lo mismo que en el caso anterior, tomar
imgenes cuando se detecta algn movimiento, pero esta vez las imgenes tambin sern
subido a su carpeta de Dropbox. De esta manera, las imgenes se puede ver en bienes
momento desde cualquier lugar, como usted puede iniciar sesin en Dropbox desde cualquier
navegador web.

Por ltimo, vamos a transmitir un video en la Web, por lo que siempre podemos comprobar
lo que est pasando en su casa desde un telfono mvil o tablet, donde quiera que
estn en el mundo. Para esta aplicacin, vamos a instalar una transmisin
biblioteca en el tablero Yun y hacerlo arroyo continuamente un vdeo a travs de WiFi. Esta corriente ser adquirida por el equipo y se enva a travs de YouTube
un software dedicado. En YouTube, entonces vamos a ser capaces de acceder a este en vivo
transmitir tal como lo hara ver un video tpico YouTube.

El hardware y el software necesarios


componentes
En primer lugar, vamos a ver qu componentes que necesitamos para el proyecto. Aparte de la junta
Yun,
usted tendr tres componentes: una cmara USB, un sensor de movimiento PIR, y una tarjeta SD
tarjeta. Slo haremos conexiones directas a Yun en esta parte, por lo que no necesitaremos una
protoboard para hacer las conexiones elctricas.
El componente ms importante de este proyecto es la cmara USB. Estamos utilizando un
cmara web USB estndar de Logitech, el modelo C700, que puede grabar imgenes
hasta la resolucin de alta definicin. Por supuesto, puede utilizar otras cmaras si ya tiene
uno en su escritorio. Asegrese de que la cmara es compatible con Clase de vdeo USB
(UVC). La mayora de las webcams recientes son compatibles con este protocolo. Puede que funcione
con una cmara que no es oficialmente compatible con UVC, pero no hay ninguna garanta.
Puede encontrar una lista de todas las cmaras compatibles UVC en http://en.wikipedia.org/
wiki / List_of_USB_video_class_devices.

Adems, trate de elegir una cmara con un mnimo de resolucin de alta definicin, para que pueda
obtener agradable y
imgenes claras. No es tan importante para la parte de transmisin, pero puede ser grande si usted
que desee utilizar este proyecto para otras aplicaciones que la seguridad, por ejemplo, para crear
vdeos time-lapse. La siguiente es una imagen de la cmara USB que estamos utilizando, la
C700 cmara web USB de Logitech:

[52]

Captulo 3

Entonces, hay el sensor de movimiento PIR. Este sensor es un sensor de bajo costo que realmente
utiliza imgenes infrarrojas para detectar el movimiento en una habitacin de cualquier cosa que emite
calor,
tales como seres humanos. Podramos haber utilizado la cmara directamente a detectar el
movimiento, pero que
no habra sido tan eficiente. La cmara utiliza un buen montn de energa cuando el equipo est
encendido,
mientras que un sensor de movimiento PIR utiliza casi ningn poder. Tambin hubiera sido ms
difcil escribir el software necesario para detectar el movimiento de la cmara de manera eficiente
grabacin. Se utiliz un sensor de movimiento PIR de Parallax, que se puede ver en el
siguiente imagen:

[53]

Hacer su propio cmara conectada en la nube

Una vez ms, puede utilizar otras marcas de sensores PIR. Lo principal a tener en cuenta es que
que debera funcionar con niveles de tensin de 5V porque ese es el nivel de tensin que utiliza el
Yun. La mayora de los sensores de trabajar con ambos niveles de voltaje de 3.3V y 5V, por lo que no
deberan tener
muchos problemas con esta caracterstica. Cuando se detecta movimiento, lo que debera simplemente
ponga un alto nivel lgico en el pin de seal.
Para la tarjeta SD, se utiliz una tarjeta estndar SD micro. Por lo general, usted tendr una
Ya en su cmara digital o un telfono inteligente. Usted tendr que formatearlo correctamente
de modo que el Yun puede utilizarlo. Le recomendamos que utilice la tarjeta oficial SD
formateador de la asociacin de tarjetas SD, consulte https://www.sdcard.org/downloads/
formatter_4 /.
Ahora, en cuanto al software, usted necesitar un poco ms que el Arduino IDE.
Vamos a instalar el software necesario para la cmara directamente en el Yun
bordo cuando nos conectamos a ella a travs de SSH, pero necesitar el SDK Temboo Python
subir fotos a Dropbox. Usted puede encontrar el SDK en https://www.temboo.com/
descargar.
Entonces, tambin es necesario tener una cuenta de Dropbox, para que puedas subir fotos a ella.
Usted puede simplemente crear una cuenta, vaya a https://www.dropbox.com/home.
Una vez creada la cuenta, es necesario crear una aplicacin que ser utilizado por el
proyecto. Esto bsicamente significa que usted tiene que autorizar el proyecto que se va a
construir en este captulo para enviar automticamente imgenes a su cuenta de Dropbox sin
tener que introducir su nombre de usuario y contrasea cada vez. Tambin se le dar toda la
informacin requerida (como una clave API) que vamos a entrar ms tarde en el Python
script en Yun.
Realice los siguientes pasos para crear una aplicacin:
1. Para crear una aplicacin, primero ir a https://www.dropbox.com/developers/apps.
2. A continuacin, haga clic en Crear aplicacin en la esquina superior derecha de la ventana.
Puedes
ahora elegir el tipo de aplicacin que desea crear. En nuestro caso, queremos usar
la API de Dropbox directamente, como se muestra en la siguiente captura de pantalla:

[54]

Captulo 3

3. A continuacin se le pedir que elija el tipo de datos de su aplicacin necesita


tienda. Queremos subir fotos, as que elige Los archivos y almacenes de datos, como se
muestra
en la siguiente captura de pantalla:

4. A continuacin, puede terminar el proceso de creacin de su aplicacin


Dropbox.
5. En la pgina de confirmacin que describe la aplicacin, usted tendr que escribir
por la Clave App y Secreto App, que vamos a necesitar para el resto de
el proyecto.
6. Tambin, asegrese de que el Tipo de Permiso campo se establece en Carpeta de la aplicacin.
Esto har
asegrese de que las imgenes se cargan en la carpeta dedicada a la aplicacin y
que el Yun no tendr acceso al resto de la carpeta de Dropbox.
7. Lo que hay que conseguir ahora es la clave de emergencia y relativo secreto simblico a su
Aplicacin Dropbox, para que pueda entrar en ellos ms tarde en el software de nuestro proyecto.
Para conseguirlos, el primer paso es ir a la InitialiseOAuth Choreo en el
Temboo sitio web https://temboo.com/library/Library/Dropbox/
OAuth / InitializeOAuth /. En este caso, tendr que introducir la clave App y
Secreto App. Esto generar alguna informacin adicional, como una devolucin de llamada
Identificacin y un secreto comprobante temporal. Tambin le pedir que visite un enlace a
Dropbox para confirmar la autenticacin.
8. Por ltimo, vaya a la pgina FinalizeOAuth para finalizar el proceso. Se le pedir
para ingresar su clave App, App secreto, ID de devolucin de llamada, y comprobante temporal
secreto en https://temboo.com/library/Library/Dropbox/OAuth/
FinalizeOAuth /.
Despus de este paso, se le dar su secreto final clave y simblico simblico. Escribir
hacia abajo a medida que van a necesitar ms tarde.

[55]

Hacer su propio cmara conectada en la nube

Hacer conexiones de hardware


Ahora es el momento de montar nuestro proyecto. Como vamos a utilizar la mayor parte del Yun
conectividad, como el puerto USB, ser muy fcil y rpido de montar la
proyecto. En primer lugar, slo tiene que poner la tarjeta micro SD formateada en el lector de tarjetas
SD de la
Yun, que se encuentra por debajo de la placa de Yun, como se muestra en la siguiente imagen:

A continuacin, conecte la cmara USB en el puerto USB Yun, como se


muestra:

[56]

Captulo 3

Por ltimo, es necesario conectar el sensor de movimiento PIR a la junta Yun. Bsicamente tiene
tres pines: VCC, GND, y SIG (pin de seal). Conecte VCC al pin 5V de la Yun, GND
al suelo Yun, y SIG al pin nmero 8 del Yun. Usted debe terminar con una
configuracin similar a la siguiente imagen:

Por ltimo, se puede conectar el Yun al ordenador mediante un cable USB micro o poder
con un adaptador USB si desea utilizar el proyecto de forma remota y cargar el Arduino
bocetos a travs de Wi-Fi.

Comprobacin de las conexiones de hardware


Ahora que todas las conexiones se realizan, podemos probar el proyecto. Para empezar, vamos a
cuidar el sensor de movimiento. Para ello, vamos a escribir un boceto muy simple que
slo hacer uso del microcontrolador Atmel incorporado en la placa Yun. Nos primero
que declarar el PIN que el sensor est conectado a, los siguientes:
const int sensor_pin = 8;

Luego, en el preparar () funcin, vamos a iniciar la conexin de serie, de la siguiente manera:


Serial.begin (9600);
retardo (1000);

[57]

Hacer su propio cmara conectada en la nube

Tambin podemos establecer alguna demora antes de los datos se leen desde el sensor, ya que
necesita un poco de tiempo
para inicializar y trabajar correctamente. En el loop () funcin, leemos continuamente el valor
del nmero de pin 8. Recuerde que el sensor se devuelva un estado lgico alto
si se detecta algn movimiento y un estado bajo de lo contrario. Esto significa que podemos almacenar
la
lectura del sensor en una variable booleana, como se muestra en la siguiente lnea de cdigo:
Sensor_value boolean = digitalRead (sensor_pin);

Cada segundo, este valor se imprime a continuacin en el monitor de serie usando la siguiente
lneas de cdigo:
Serial.println (Sensor_value);
retardo (100);

El cdigo completo de esta parte se puede encontrar en https://github.com/


openhomeautomation / geek-proyectos-yun / rbol / maestro / captulo3 / pir_test.
Ahora puede cargar el cdigo anterior a su tablero Yun. Abra la serie
monitorear y tratar de pasar la mano delante del sensor; usted debe ver el valor
cambiar instantneamente en el monitor de serie, como se muestra en la siguiente captura de
pantalla:

Si usted puede ver los valores cambian al instante al pasar la mano delante de la
sensor, esto significa que el Yun est cableado correctamente. Tambin se dar cuenta de que el sensor
se vuelve rojo cuando detecta movimiento.

[58]

Captulo 3

Ahora vamos a probar la cmara USB. De hecho, podemos probar la cmara sin
escribir ningn boceto Arduino. Lo que vamos a hacer en su lugar es conectar directamente
a la junta Yun a travs de SSH. De hecho, la cmara se interconecta directamente a la Linux
mquina de la Yun a travs del puerto USB, por lo que el boceto Arduino tendr despus de usar el
Puente biblioteca con el fin de acceder a la cmara.
Por ahora, basta con ir a una ventana de terminal (terminal tpico que viene instalado con
OS X o Linux, o instalar uno como HyperTerminal si es menor de Windows), y
escriba el siguiente comando:
ssh root@yourYunName.local

Por supuesto, usted tendr que poner el nombre que le dio a su propio Yun en lugar de
yourYunName. Por ejemplo, el nombre de mi Yun es myarduinoyun; Por lo tanto, necesito
escribir myarduinoyun.local. Esto establecer una conexin directa con el Linux
mquina de la Yun.
A continuacin se le pedir que introduzca la contrasea que escogi para su Yun. Si se
obras, debera ver la siguiente captura de pantalla que se muestra en tu terminal,
lo que indica que usted est ahora trabajando directamente sobre el Yun:

[59]

Hacer su propio cmara conectada en la nube

Puede acceder a todas las funciones de su mquina Yun Linux. Ahora vamos
para instalar el software necesario para la cmara. Esto requiere que el Arduino Yun ser
conectado a Internet para que pueda obtener los paquetes requeridos, como se describe en la
siguientes pasos:
1. El proceso se inicia mediante la actualizacin del gestor de paquetes, opkg, Como sigue:
actualizacin opkg

2. Instale los controladores UVC, de la siguiente


manera:
opkg instalar kmod-video-uvc

3. Instale el python-openssl paquete que vamos a utilizar ms adelante en el proyecto,


se muestra en el siguiente comando:
opkg instalar python-openssl

4. Por ltimo, se puede instalar el fswebcam software que vamos a utilizar para tomar
imgenes, como se muestra en el siguiente comando:
opkg instalar fswebcam

5. Una vez que esta parte se hace y el software est instalado en el Yun, podemos probar
la cmara y tomar una foto. Para probar tambin si la tarjeta SD est trabajando
al mismo tiempo, ir a la carpeta de la tarjeta SD, que normalmente se llama sda1,
con el siguiente comando:
cd / mnt / sda1

6. Ahora puede tomar una foto al escribir el siguiente comando:


fswebcam prueba.png

7. Usted debe ver algn mensaje est impreso que se inicia con el siguiente:
--- Apertura / dev / video0 ...
Tratando fuente del mdulo v4l2 ...
/ Dev / video0 abri.

Algunos errores pueden ser impresos, as, pero esto no importa para el proceso de toma de
una foto.
Para comprobar si esto funciona correctamente, primero puede comprobar si hay un archivo
nombre prueba.png ubicado en la tarjeta SD. Para ello, slo tiene que escribir el
siguiente comando:
ls

El comando anterior se imprimir la lista de todos los archivos de la carpeta actual; en el


presente caso, la tarjeta SD. Usted debe ver al menos un archivo nombrado prueba.png.
[60]

Captulo 3

Ahora, para comprobar que la imagen est muy bien y no corrompido, se puede, por ejemplo,
retire la tarjeta SD de la Yun (por desmontarlo primero utilizando el desmontar / dev /
sda1 comando) y conectarlo directamente a su computadora usando una tarjeta micro SD para
adaptador de tarjeta SD normal. Usted debe ver la siguiente captura de pantalla en tu navegador
(Ya aadimos los archivos que son necesarios para las siguientes secciones del proyecto en este
punto, lo que explica los otros archivos que se encuentran en la tarjeta SD):

Si usted ve una imagen en la tarjeta SD en este punto, abrirlo para comprobar que se trataba de
correctamente tomada. Si ese es el caso, enhorabuena! Todo est ahora preparado para usted
para escribir aplicaciones emocionantes con este proyecto. Si usted no puede ver una imagen en este
punto,
el primer paso es repetir todo el proceso de nuevo. Tenga cuidado de realidad unmount
la tarjeta SD despus de tomar la fotografa. Tambin puede conectar la cmara directamente a su
ordenador para comprobar si el problema viene de la propia cmara.

Grabar las imgenes cuando el movimiento


es
La primera aplicacin que vamos a construir con el hardware que slo damos un paso hacia arriba
detectado
ser slo local, as que nada va a ser enviado a la Web todava. En esta seccin, slo queremos
para construir una cmara que se activa el sensor de movimiento.
Con esto, usted puede, por ejemplo, comprobar si alguien entr en su casa
mientras usted no estaba all porque el sensor de movimiento PIR instantneamente cuenta
ella. Esta seccin es realmente la base de todo el proyecto. Vamos a volver a utilizar
el cdigo desarrollado en esta seccin ms adelante cuando escribimos la pieza de cdigo para
cargar
fotos a Dropbox.
Para esta parte del proyecto, que no queremos utilizar el acceso SSH para tomar fotos
ms; tenemos que indicar a la cmara desde el boceto Arduino. Para esto,
se va a utilizar el Puente biblioteca y el Proceso biblioteca para llamar a un comando en el
Mquina Linux, tal y como si estuviera escribiendo en una ventana de terminal.
El boceto comienza declarando las bibliotecas que tenemos que utilizar:
#include <Bridge.h>
#include <Process.h>

[61]

Hacer su propio cmara conectada en la nube

Para llamar a algunos comandos en la mquina Linux del Yun, tendremos que declarar
proceso, que es un objeto que llamaremos emular algunas entradas de terminal:
Imagen de proceso;

Tambin construiremos un nombre de archivo para cada imagen que se tomar, como se muestra
en la
siguiente lnea de cdigo. De hecho, hemos llamado el archivo prueba.png antes, pero en este
aplicacin, queremos que cada imagen tomada por el proyecto tenga un nombre diferente:
Nombre de archivo de cuerdas;

Declarar el pasador en la que est conectado el sensor de movimiento, como sigue:


int pir_pin = 8;

Tambin tenemos que definir dnde se almacenarn las imgenes. Recuerde, queremos
almacenarlas todas en la tarjeta SD, de la siguiente manera:
String path = "/ mnt / sda1 /";

Tambin puede guardar las imgenes localmente en el Yun, pero sera saturar rpidamente el
memoria de la Arduino Yun.
Luego, en el preparar () funcin, empezamos el puente entre el Atmel
microcontrolador y la mquina Linux de la Yun, como sigue:
Bridge.begin ();

Adems, establecimos el pasador del sensor de movimiento PIR como una entrada,
de la siguiente manera:
pinMode (pir_pin, INPUT);

En el loop () funcin, lo que queremos hacer es leer continuamente los datos de la


sensor de movimiento y disparar la cmara si se detecta movimiento.
Esto se hace mediante una si declaracin que comprueba el valor del sensor, como sigue:
si (digitalRead (pir_pin) == true)

Entonces, si se detecta algn movimiento, tenemos que preparar todo para tomar la fotografa.
El primer paso es la construccin de un nombre de archivo que contendr la fecha en que la imagen
fue tomada. Para ello, estamos utilizando el comando date Linux que da salida a la actual
fecha y hora. Esto es importante porque queremos saber qu hora era la imagen
tomada en y dar un nombre nico a cada imagen. Al final, tambin queremos
especifica que esta fotografa se tomar en un PNG formato. La parte de formato de nombre de archivo
es
realizado por el siguiente cdigo:
filename = "";
picture.runShellCommand ("date +% s");
[62]

Captulo 3
while (picture.running ());
while (picture.available ()> 0) {
Char c = picture.read ();
nombre de archivo + = c;
}
filename.trim ();
nombre de archivo + = ".png";

Por ltimo, podemos tomar la fotografa. Lo que vamos a hacer aqu es llamar al fswebcam
comandos utilizando de nuevo la runShellCommand funcin de nuestro proceso de imagen que har
emular una entrada de terminal.
Tambin queremos utilizar la resolucin mxima disponible en la cmara. En el caso de
la cmara que elegimos, era 1280 x 720 (resolucin estndar HD). Tenemos un buen
gran cantidad de espacio disponible en la tarjeta SD (4 GB con la que yo us), para que pueda utilizar
el
resolucin mxima sin caer en problemas. Le recomendamos que utilice
una tarjeta SD dedicada para este proyecto por lo que no llegas a tener problemas con otros
archivos que pueden ser almacenadas en la tarjeta. En aras de la simplicidad, no vamos a aadir una
control automatizado para ver si la tarjeta est llena, pero esto es algo que debiera
considerar si desea que el proyecto funciona de forma constante en el tiempo. Puede especificar
la resolucin mediante la -o comando en el final de la llamada. Por ltimo, podemos construir la
cdigo completo para tomar una imagen:
picture.runShellCommand ("fswebcam" + camino + nombre + "-r
1280x720 ");
while (picture.running ());

Tenga en cuenta que tambin estamos utilizando un while () declaracin aqu para asegurarse de que el
fswebcam utilidad tiene el tiempo suficiente para tomar la fotografa. El cdigo completo puede ser
encontrado en https://github.com/openhomeautomation/geeky-projects-yun/tree/
maestro / captulo3 / triggered_camera.
Ahora puede cargar el cdigo para la junta Yun y probar el proyecto. Una vez que est
subido, trate de mover la mano delante del sensor. El Arduino Yun debe
disparar la cmara para tomar una foto y guardarla en la tarjeta SD. Asegurarse
que se tom una foto en este momento, slo tiene que comprobar en la propia cmara.
Por ejemplo, la cmara web Logitech que utilic tiene un pequeo LED que se vuelve verde
siempre est activo.

[63]

Hacer su propio cmara conectada en la nube

Despus de un tiempo, retire la tarjeta SD de la Arduino Yun (como antes, desmontar el


Tarjeta SD de la Yun primero), y lo puso en su ordenador con el adaptador utilizamos
anterior. Usted debe ver todas las fotos que se tomaron en la raz de la tarjeta SD, como
se muestra en la siguiente captura de pantalla:

Una vez ms, estas fotos para asegurarse de que no estn daados y que
todo funcion como estaba previsto.

Envo de imgenes a Dropbox en regulares


intervalos
Ahora vamos a ampliar el cdigo que construimos en el apartado anterior y escribir algunos
nuevo cdigo que carga automticamente las imgenes que fueron tomadas por la cmara
Dropbox. Para ello, tendremos que construir un software poco ms complejo que en el
parte anterior.
Por ahora, slo utilizamos los Choreos (bibliotecas Temboo) para el Arduino Yun.
Sin embargo, en realidad hay muchas otras Choreos disponibles para otros idiomas, tales
como para Python. Esta es una gran noticia porque la mquina Linux del Yun es capaz de
ejecutar cdigo Python fuera de la caja.
En realidad es mucho ms fcil acceder a la API de Dropbox desde Python, as que eso es lo que
se va a utilizar en esta parte. Vamos a construir una secuencia de comandos de Python que carga las
imgenes
nos llev a Dropbox, y llamamos a este script desde el boceto Arduino utilizando el Puente
biblioteca y nuestros procesos de imagen.
Ahora voy a explicar el contenido de la secuencia de comandos de Python. Ms tarde, vamos a
salvar a todos estos
lneas de cdigo en un archivo separado, y lo puso en la tarjeta SD junto con la Temboo
SDK Python.
La secuencia de comandos de Python empieza con las siguientes lneas
de cdigo:
desde temboo.core.session TembooSession importacin
desde temboo.Library.Dropbox.FilesAndMetadata UploadFile importacin

[64]

Captulo 3

La secuencia de comandos de Python tambin tomar un argumento: el nombre del archivo que va
a cargar.
De esta manera, podemos pasar directamente el nombre del archivo (construido por el cdigo de
Arduino con un
fecha
y hora) a la secuencia de comandos de Python. Las siguientes lneas de cdigo hacen
con abierta (str (sys.argv [1]), "rb") como image_file:
exactamente
esto: = base64.b64encode (image_file.read ())
Encoded_String
Dentro de la secuencia de comandos, es necesario definir sus credenciales Temboo, de la
siguiente manera:
session = TembooSession ('yourTembooName', 'yourTembooApp',
'YourTembooKey')

Estas son exactamente las mismas credenciales que utilizamos para Temboo antes. Entonces,
necesitamos
declarar la Choreo archivo de carga para Python que se utilizar para cargar automticamente
fotos a Dropbox, de la siguiente manera:
uploadFileChoreo = UploadFile (sesin)
uploadFileInputs = uploadFileChoreo.new_input_set ()

El siguiente paso es configurar los diferentes insumos, que usted haba hecho cuando cre
su aplicacin Dropbox, de la siguiente manera:
uploadFileInputs.set_AppSecret ("appSecret")
uploadFileInputs.set_AccessToken ("accessToken")
uploadFileInputs.set_FileName (str (sys.argv [1]))
uploadFileInputs.set_AccessTokenSecret ("accessTokenSecret")
uploadFileInputs.set_AppKey ("appKey")
uploadFileInputs.set_FileContents (Encoded_String)
uploadFileInputs.set_Root ("caja de arena")

Por ltimo, podemos ordenar uploadFileChoreo para subir el archivo a la carpeta de Dropbox
en la carpeta correspondiente de su aplicacin, como sigue:
uploadFileResults =
uploadFileChoreo.execute_with_results (uploadFileInputs)

Ahora puede guardar el cdigo en un archivo llamado upload_picture.py y lo puso en el


raz de la tarjeta SD. Recuerde la biblioteca Temboo Python hemos descargado antes?
Es el momento de descomprimirlo y colocarlo en la raz de la tarjeta SD tambin. Slo asegrese
que aparece con el nombre temboo en la raz de la tarjeta SD, por lo que el archivo de Python
que acabamos de crear puede acceder a l correctamente. Si no hay imgenes se grabaron sin
embargo, la
siguiente captura de pantalla muestra lo que su carpeta de la tarjeta SD debe ser similar a:

[65]

Hacer su propio cmara conectada en la nube

Tambin tenemos que modificar ligeramente el boceto Arduino subir fotos en Dropbox.
Hemos utilizado exactamente la misma base de cdigo como en el apartado anterior, as que slo
detalle
el nuevo cdigo que se ha aadido.
En la parte que se ejecuta cuando se detecta movimiento, justo al final del bucle, se
necesitar utilizar el proceso de imagen de nuevo para ejecutar la secuencia de comandos de Python,
como se muestra en la
siguiente cdigo:
picture.runShellCommand ("python" + ruta + "upload_picture.py" +
ruta + nombre de fichero);
while (picture.running ());

Tenga en cuenta que estamos pasando a lo largo del mismo nombre de archivo y la ruta que las
imgenes que se encuentran
registrado en la tarjeta SD, por lo que el mismo nombre exacto imagen se graba localmente y enviada
a Dropbox.
El cdigo completo de esta parte se puede encontrar en https://github.com/
openhomeautomation / geek-proyectos-yun / rbol / maestro / captulo3 / dropbox_log.

Ahora puede poner la tarjeta SD de nuevo en el Arduino Yun, subir la actualizacin


Boceto Arduino, y la cabeza a su carpeta de Dropbox. En este punto, usted debe tener en cuenta
que una nueva carpeta se cre en su Aplicaciones carpeta con el nombre de su Dropbox
aplicacin que se establece en el sitio web de Dropbox, como se muestra en la siguiente captura de
pantalla:

Ahora, si se detecta movimiento, el boceto no slo debe registrar las imgenes de la tarjeta SD
tarjeta, sino tambin en la carpeta de Dropbox. Si todo funciona correctamente, puede
ver que las imgenes lleguen a tiempo real dentro de su carpeta de Dropbox como Yun toma la
fotografas con la cmara USB.
El aspecto bueno de estas aplicaciones de nuestro proyecto es que esto se puede hacer a partir de
en cualquier parte del mundo. Usted puede hacer esto desde su ordenador, por supuesto, pero tambin
de
un navegador web. Muchos dispositivos mviles tambin pueden ejecutar la versin mvil de Dropbox,
por lo
se puede ver si alguien ha entrado en su casa desde su dispositivo mvil. En
mi equipo, por ejemplo, Dropbox tambin me enva una notificacin de que un nuevo archivo fue
subido, por lo que puedo ver inmediatamente si algo est sucediendo en mi casa y
puede actuar en consecuencia.

[66]

Captulo 3

Video en vivo a travs de Wi-Fi


Para terminar este captulo, vamos a ver otra aplicacin fresco que podemos hacer
con el Arduino Yun y nuestra cmara USB. Recuerde que la cmara es en realidad un
cmara web estndar, y que tambin se hace para capturar videos. No sera genial para
transmitir automticamente el vdeo en un canal de video privado en la Web, para que pueda ver
por encima de su casa a tiempo real desde cualquier lugar simplemente por entrar en un navegador
web? Eso es
exactamente lo que vamos a hacer en esta seccin.
Muchas cmaras IP comerciales realmente estn haciendo esto con soluciones propietarias, pero
Quera usar herramientas corrientes; es por eso que elegimos el YouTube en vivo
servicio de eventos para transmitir el video que a continuacin se puede acceder desde cualquier
dispositivo.
Para hacer el trabajo de la aplicacin, en primer lugar hay que instalar algn software adicional
paquetes en el Yun, como se muestra en los siguientes pasos:
1. Conctese a la Yun nuevo usando SSH con su nombre Arduino Yun y
contrasea y escriba el siguiente comando para obtener el paquete correcto para
transmisin en vivo:
wget http://www.custommobileapps.com.au/downloads/mjpgstreamer.ipk

2. Tenga en cuenta que si el enlace ya no es vlida y usted no puede encontrar los archivos, este
paquete tambin est disponible en el cdigo de este captulo. Ahora puede instalar
con el siguiente comando:
opkg instalar mjpg-streamer.ipk

3. Ahora puede iniciar el software de streaming en vivo en tu Arduino Yun usando


el siguiente comando:
mjpg_streamer -i "input_uvc.so -d / dev / video0 -r 640x480 -f
25 "-o" output_http.so -p 8080 w / www / webcam "y

Aqu, el parmetro despus de -h es la resolucin y la siguiente -yo es el


puerto en el que la corriente estar disponible. Tambin se especifica el nmero
de fotogramas por segundo usando el -YO comandos. Las otras opciones son menos
importante y usted no tiene que preocuparse de ellos.
Tenga en cuenta que no nos arroyo en resolucin de alta definicin; parece que fue demasiado para el
Arduino Yun, y el flujo de vdeo sufrieron retraso significativo y tambin haban corrompido
imgenes, que no es lo que queremos en absoluto. A continuacin, puede acceder a su torrente yendo
a la direccin de su Arduino Yun en su navegador web, seguido de 8080 para especificar el
puerto correcto. Por ejemplo, en mi caso, era http: //myarduinoyun.local: 8080 /
stream.html.

[67]

Hacer su propio cmara conectada en la nube

En realidad, esto le da acceso directo a la transmisin en vivo. A continuacin, debera ver el


transmitir interfaz con la transmisin en vivo en el centro de la pgina, como se muestra en la
siguiente captura de pantalla:

Tambin puede utilizar los diferentes elementos del men de la izquierda para explorar otros
posibilidades de este software de streaming. Por ejemplo, se puede obtener un enlace para
VideoLAN, para que pueda acceder a su derecho corriente desde el reproductor VLC.
Ahora, esto ya es grande y se poda parar aqu para acceder a su flujo de vdeo de
su red Wi-Fi local. Pero sera an mejor si la corriente estaba disponible
en lnea, por lo que podra acceder a l desde cualquier parte del mundo, incluso sin ser
conectado a su red Wi-Fi local.

[68]

Captulo 3

El primer paso es ir a tu cuenta de YouTube GESTOR DE VDEO y la


Eventos en Vivo men de la izquierda, como se muestra en la siguiente captura de pantalla:

Desde este men, puede crear su flujo de igual forma que crear una nueva
Vdeo de YouTube. Asegrese de que usted ponga el video como no cotizan en bolsa a menos que
usted quiere el otro
personas en YouTube para poder ver lo que est pasando en su casa. En comparacin con una
video privado, usted todava ser capaz de compartir el video con la gente que conoces slo
dndoles la URL de la corriente. Luego, en la siguiente pgina, YouTube le preguntar
elegir qu codificador que desea utilizar.
Eleg Wirecast de la lista y descargado desde su pgina web. En el wirecast
interfaz, es necesario configurar la fuente de vdeo correcta (por defecto, se transmitir desde
webcam de su ordenador). En el men donde puede seleccionar la fuente de video, seleccione
Web Stream Fuente y configurarlo, como se muestra en la siguiente captura de pantalla:

Bsicamente, usted tiene que elegir HTTP como el protocolo, el uso Motion JPEG como el formato,
y poner la URL de la pestaa VideoLAN de la interfaz de streaming. Por ejemplo, para
mi proyecto, que era myarduinoyun.local: 8080 / action = corriente.

[69]

Hacer su propio cmara conectada en la nube

Despus de un momento, si todo est funcionando bien, debera ver la transmisin en vivo desde
la cmara USB aparece directamente en la ventana principal de wirecast. No se preocupe si
hay cierto retraso en este punto; es slo un retraso por lo general; en mi caso, yo tena alrededor de
1.2
segundos de retardo en el software wirecast. La siguiente es la imagen que tengo en el
interfaz principal wirecast despus de agregar el flujo de vdeo derecha:

Adems, asegrese de que esta corriente es el nico que se enviar a YouTube. Para esto
propsito, eliminar todas las otras corrientes de la interfaz wirecast. De hecho, por defecto,
Wirecast pone la corriente que viene de tu cmara web en la interfaz.

Tambin tenga en cuenta que el uso de una secuencia HTTP es una caracterstica de la
versin de pago
de wirecast; funciona perfectamente en la versin gratuita, pero usted recibir una
marca de agua aparece en el video de vez en cuando. No te preocupes; que es
en realidad no es un problema para monitorear lo que est pasando en su casa.

El siguiente paso es para transmitir datos en realidad a YouTube. Haga clic en la Corriente botn en
la parte superior de la interfaz, que debe ponerse en rojo, despus de lo cual se le pedir que
introducir las credenciales de YouTube. A continuacin, debera detectar automticamente su evento
en vivo
vdeo que acaba de crear en YouTube.

[70]

Captulo 3

Acepte la configuracin, asegrese de que se transmite desde wirecast, y volver a la


Interfaz de YouTube. Ahora puede ir al gestor de vdeo, e ir a la Vivo
Sala De Control ficha. Aqu es donde usted debe ver que YouTube est recibiendo realmente
algunos datos de tu Arduino Yun travs wirecast ejecutando en el equipo. Debera
indicar que la Estado del Arroyo es BUENO, como se muestra en la siguiente captura de pantalla:

Si este no es el caso, por favor, vuelva a la aplicacin wirecast para comprobar que el
proceso de streaming est funcionando correctamente. En este momento, no se preocupe; su
corriente
no est funcionando por el momento. Usted debe ver que el Preestreno botn, como se muestra en
la
siguiente captura de pantalla, ya est disponible y se puede hacer clic. Simplemente haga clic en l.

YouTube preparar el arroyo, como se muestra en la siguiente captura de pantalla, y


usted tendr que esperar por un momento (alrededor de 30 segundos cuando lo prob):

Despus de un tiempo, la pgina se actualizar automticamente para que pueda pasar a la


siguiente paso y comienzan realmente la transmisin, como se muestra en la siguiente captura de
pantalla:

[71]

Hacer su propio cmara conectada en la nube

Tenga en cuenta que antes de hacer la transmisin en vivo, se puede obtener una vista previa utilizando
las opciones de la
pgina anterior. Si lo que ves es satisfactoria, ahora se puede hacer click en Iniciar emisin
para finalmente terminar el proceso. A continuacin, tendr acceso a la corriente en esta pgina o
directamente en la pgina dedicada de la corriente. La siguiente captura de pantalla es la final
como resultado, en la interfaz de YouTube:

Se puede ver en el punto rojo debajo del vdeo que el vdeo se est transmitiendo en vivo.
Debido a que el vdeo se marca como No Cotizadas, slo las personas con la URL pueden acceder a
l.
Puede, por ejemplo, marcar el vdeo como favorito en su cuenta de YouTube y
luego acceder a ella desde cualquier lugar. Usted tambin puede compartir con su familia y amigos,
as
tambin pueden ver el funcionamiento de sus navegadores.

[72]

Captulo 3

Tenga en cuenta que debido a que estamos usando el software wirecast en nuestro ordenador para
codificar
La corriente de YouTube, tenemos que tener nuestro ordenador por esto funcione. En el
cuando este libro fue escrito, sin necesidad de software estaba disponible para transmitir
directamente el video
a YouTube sin la ayuda de un ordenador, pero esto podra cambiar en el futuro,
eliminando la necesidad de una computadora para transmitir el vdeo.

Resumen
Ahora vamos a resumir lo que hemos aprendido en este proyecto. Lo que hemos construido en este
proyecto
es una cmara de seguridad que puede registrar automticamente las imgenes a nivel local como a
Dropbox
cuando se detecta movimiento. Tambin aprendimos cmo se debe transmitir el vdeo que viene
de esta cmara en vivo en YouTube a travs de Wi-Fi.
Estuvieron los principales comida para llevar de este proyecto:

En la primera parte del proyecto, conectamos la cmara USB a la


Arduino Yun, as como el sensor de movimiento PIR. Tambin nos enchufamos una micro SD
tarjeta al Yun por lo que tambin puede grabar imgenes a nivel local, aunque el Internet
conexin no est disponible. Tambin instalamos los paquetes de software necesarios
para el proyecto, tales como el conductor, para acceder a la cmara desde un USB
comando de terminal.

Luego, probamos nuestro hardware comprobando si el sensor de movimiento era


trabajando adecuadamente y asegurndose de que realmente podemos hacer fotos
utilizar la cmara USB.

Entonces, hemos construido una aplicacin sencilla utilizando nuestro hardware de forma
automtica
tomar una fotografa cuando se detecta movimiento y almacenarla en la tarjeta micro SD.
Nosotros
probado este software en el Yun, y cuando nos registramos tarde, encontramos que
algunas imgenes
fueron aplicacin,
efectivamente
enen
la el
tarjeta
SD.
Despus
de esta sencilla
quealmacenan
construimos
boceto
para cargar
automticamente
las fotos en nuestra carpeta de Dropbox tambin. Para ello, hemos escrito un script de Python
que puede cargar automticamente archivos en Dropbox. Este script se llamaba entonces
desde el boceto Arduino subir fotos a Dropbox siempre
se detecta movimiento.

Finalmente, en la ltima parte del boceto, utilizamos las capacidades de video de la


cmara para transmitir video en vivo en YouTube. De esta manera, se puede controlar lo
que hay
pasando en su casa desde donde se encuentre en el mundo; solo falta
una conexin a Internet y un dispositivo que puede acceder a YouTube, por ejemplo,
un telfono inteligente.

[73]

Hacer su propio cmara conectada en la nube

Por supuesto, hay muchas maneras en que puede mejorar y ampliar este proyecto basado en
lo que hemos aprendido en este captulo. Puede, por supuesto, tienen muchos de estos mdulos
con una cmara y un sensor de movimiento dentro de su hogar. De esta manera, usted puede tener
un
completo sistema de seguridad que monitorea su hogar de forma remota.
Una forma de mejorar el proyecto es integrar ms Choreos en el proyecto.
Por ejemplo, se puede inyectar el Gmail Choreo se utiliz en el primer captulo de
enviar automticamente una alerta por correo electrnico, as cada vez que se detecta algn
movimiento. Este
crear otra capa de seguridad en su hogar. De manera similar, tambin se puede utilizar
la Twilio Choreo que le enviar un SMS cuando se detecta movimiento en su hogar.
Tambin puede utilizar el proyecto para propsitos completamente diferentes. Al probar la
proyecto, que, por ejemplo, cre un dispositivo de lapso de tiempo que toma imgenes a intervalos
regulares
intervalos de tiempo (por ejemplo, cada minuto) y carga de estas imgenes en Dropbox.
En el prximo captulo, vamos a utilizar las capacidades Wi-Fi de la Arduino Yun por
una aplicacin completamente diferente: para controlar un robot mvil. Vamos a utilizar
el poder de la Arduino Yun controlar remotamente este robot y dio lectura a los datos
que viene del robot, todo dentro de una sencilla aplicacin web que se ejecuta en su
computadora.

[74]

Controlada por WiFi


Robot mvil

En este ltimo captulo del libro, vamos a utilizar el Arduino Yun en un completo
diferentes campos: la robtica. Usted aprender cmo conectar motores de corriente continua, as
como la forma
para construir su propio robot mvil con el Arduino Yun como el cerebro del robot, un
sensor de distancia para el robot, y el control inalmbrica mediante Wi-Fi y una simple web
interfaz. Usted tambin ser capaz de obtener una visualizacin en directo de las mediciones realizadas
por
el robot, por ejemplo, la distancia que se mide en frente del robot por el
sensor ultrasnico.

Construccin del robot mvil


Placas Arduino son ampliamente utilizados en robots mviles porque son fciles para interactuar
con las diferentes partes de un robot, tales como sensores, actuadores tales como motores de
corriente continua,
y otros componentes tales como pantallas LCD. Arduino incluso lanz su propio robot
recientemente que la gente pueda experimentar en una plataforma robtica comn. Estos robots
generalmente se programan una vez y luego a la izquierda por s sola para realizar ciertas tareas, tales
como
moverse sin chocar con obstculos o recoger objetos.
En este proyecto, vamos a hacer las cosas de manera diferente. Lo que queremos es construir una
robot mvil que tiene el Arduino Yun como su "cerebro" y controlar por completo a travs de WiFi desde un ordenador o un dispositivo mvil, como un smartphone o una tableta. Para ello,
programar un boceto Arduino para el robot que va a recibir comandos y enviar
datos de nuevo, y el programa de una interfaz grfica en su ordenador. De esta manera, si
quieren construir aplicaciones ms complejas en el futuro, slo hay que cambiar
el software que se ejecuta en el ordenador y dejar que el robot sin tocar.

Wi-Fi controlado Mobile Robot

Estamos primero vamos a construir el robot utilizando algunas partes mecnicas y elctricas bsicas.
Nosotros no slo le mostrar cmo construir el robot usando un kit especfico, sino tambin dar
que una gran cantidad de consejos sobre la construccin de su propio robot utilizando otros
componentes equivalentes.
Para que os hagis una idea de lo que vamos a construir, la siguiente es una imagen de
el robot montado:

En la parte inferior del robot, que tiene la mayora de las partes mecnicas, tales como la
chasis, las ruedas, los motores de corriente continua, y el sensor ultrasnico. Usted tambin tiene la
de la batera en el centro de la base del robot. A continuacin, puede ver la diferente Arduino
juntas en la parte superior. A partir de la parte inferior, usted tiene la placa Arduino Yun, un
Arduino Uno, un escudo del motor, y un escudo de prototipos.
Montaje de los componentes de este proyecto ser un poco diferente que antes, porque
vamos a realmente tener dos placas Arduino en el proyecto: la Yun, que recibir
comandos directamente desde el mundo exterior, y una placa Arduino Uno, que lo har
ser conectado a el protector del motor.
A continuacin, se realice la prueba habitual en las partes individuales del robot, tales como
prueba de los dos motores de corriente continua del robot y el sensor ultrasnico distancia que es
situado en la parte frontal del robot. Para probar el motor, simplemente vamos a hacerlos
acelere gradualmente para ver si el circuito de mando est funcionando correctamente.
Las mediciones se reciben desde el sensor de distancia ultrasnico ser simplemente
visualizada en el monitor serie.

[76]

Captulo 4

El siguiente paso es construir el software Arduino que va a recibir comandos desde el


ordenador y transmitirlos a los motores que mueven el robot alrededor. En este punto,
tambin vamos a codificar la parte que va a transmitir la informacin de distancia de nuevo a
la computadora. Porque queremos estandarizar nuestro cdigo y hacerlo utilizable por otros
proyectos, vamos a construir esta parte con la inspiracin de la API REST del Arduino
Tablero Yun que ya hemos utilizado en Captulo 2, Creacin de un sistema de Monitoreo Remoto de
Energa y
Dispositivo de control.
Por ltimo, vamos a construir la interfaz grfica del lado del servidor en el equipo,
para que pueda controlar fcilmente el robot desde el ordenador o un dispositivo mvil y
recibir algunos datos sobre el robot, como las lecturas del sensor de ultrasonidos.
Este software de servidor volver a usar HTML para mostrar la interfaz, JavaScript para
manejar las acciones de los usuarios, y PHP para hablar directamente a la placa Arduino Yun a travs
de la
CURL funcin.

El hardware y el software necesarios


componentes
Usted tendr varios componentes mecnicos y elctricos para este proyecto
aparte de la Arduino Yun. El primer conjunto de componentes es para el propio robot.
Usted necesita bsicamente tres cosas: una base de robot o chasis que apoyarn todo el
componentes, dos motores de corriente continua con ruedas para que el robot pueda moverse, y por lo
menos
un sensor de ultrasonidos en frente del robot. Se utiliz un kit robot mvil de DFRobot
(http://www.dfrobot.com/) Que se puede ver en la siguiente imagen:

[77]

Wi-Fi controlado Mobile Robot

El kit se llama Chasis 2 Ruedas miniQ Balancing Robot y cuesta $ 32.20 en


el momento de escribir este libro. Por supuesto, usted no necesita este kit especficamente para
construir
este proyecto. Siempre y cuando usted tiene un kit que incluye los tres tipos de componentes que
se mencion antes, usted es probablemente bueno para ir en este proyecto.
Para los motores, tenga en cuenta que el circuito que se utiliz en el protector del motor puede
manejar hasta
12V DC, a fin de utilizar los motores que se hacen para trabajar con un voltaje bajo 12V. Asimismo,
el uso
Los motores que tienen un reductor de velocidad integrado. De esta forma, aumentar la
par disponible de sus motores (para hacer que el robot se mueva ms fcilmente).
Para el sensor de ultrasonidos, usted tiene muchas opciones disponibles. Hemos utilizado una que
puede
interconectarse a travs de la pulseIn () funcin de Arduino, por lo que cualquier sensor que funciona
esto
manera debe ser compatible con el cdigo que vamos a ver en el resto de este captulo. La
referencia de este sensor en DFRobot es URM37. Si va a usar otro tipo de
sensores de distancia, como los sensores que funcionan con la interfaz I2C, que tendrn que
modificar el cdigo en consecuencia.
Entonces, usted necesita una placa Arduino que estar en comunicacin directa con los motores de
corriente continua
a travs de un escudo motor. En este punto, usted puede preguntar por qu nosotros no estamos
conectando toda la
componentes directamente al Arduino Yun sin tener otra placa Arduino
en el centro. De hecho, es posible que ver con los sensores del robot, pero no
los motores.
No podemos conectar los motores directamente a una placa Arduino; por lo general requieren ms
corriente de lo que los pines de Arduino pueden ofrecer. Es por ello que vamos a utilizar un motor
escudo que se ha especializado en esa tarea. Por lo general, el Arduino Yun no puede utilizarlas motor
escudos sin sufrir daos, por lo menos en el momento de escribir este libro. Esto es debido
al hecho de que los escudos de motor se disean generalmente para las placas Arduino Uno y la
patillas equivocadas en el escudo se pueden conectar a los terminales equivocados en el Yun. Por
supuesto,
tambin sera posible hacer eso con los componentes externos de la placa, pero
usando un escudo aqu realmente simplifica las cosas.
Es por ello que vamos a interconectar todos los componentes con una placa Arduino estndar y
luego hacer la junta Yun comunicarse con la placa Arduino estndar. Solamos
un tablero DFRduino para este proyecto, que es el nombre que DFRobot dio este clon de
la placa Arduino Uno. Esto es como se muestra en la siguiente imagen:

[78]

Captulo 4

Por supuesto, cualquier tablero equivalente funcionar tan bien, siempre y cuando sea compatible con
el
junta oficial Arduino Uno. Tambin puede utilizar otros consejos, como un Arduino
Leonardo, pero nuestro cdigo no ha sido probado en otras placas.
Entonces, usted necesita un escudo motor para interconectar los dos motores de corriente continua con
el Arduino Uno
bordo. Tambin utilizamos un escudo motor de DFRobot para este proyecto. La referencia en el
Pgina web es DFRobot 1A Motor escudo para Arduino, como se muestra en la siguiente imagen:

[79]

Wi-Fi controlado Mobile Robot

Una vez ms, la mayora de los escudos de motor va a trabajar para este proyecto. Usted necesita
bsicamente un escudo
que puede mandar al menos dos motores. El escudo tambin tiene que ser capaz de manejar la
motores que desea controlar en trminos de voltaje y corriente. En nuestro caso, necesitbamos un
escudo que puede manejar los dos motores de 6 V DC del robot, con una corriente mxima
de 1A.
Por lo general, usted puede buscar escudos de motor que incluyen el controlador de motor L293D IC.
Este
circuito integrado es un chip dedicado para el control de motores de corriente continua. Puede manejar
hasta
dos motores a 12 Voltios con 1A de corriente, que va a trabajar para el robot mvil somos
tratando de construir aqu. Por supuesto, si su escudo puede manejar ms corriente o voltaje,
que trabajara tambin. El punto importante a buscar es cmo establecer la velocidad de
el robot: la IC que he mencionado pueden tomar directamente un comando PWM que viene de
la placa Arduino, as que si usted desea utilizar el cdigo prescrito en el presente captulo,
necesitar usar un escudo que utiliza un tipo similar de comando para establecer la velocidad del motor.
Por ltimo, hemos aadido un sencillo escudo de prototipos en la parte superior del robot para
producir energa
conexiones ms fcil y por lo que podemos aadir ms componentes en el futuro, como se muestra
en
la siguiente imagen:

Una vez ms, se puede utilizar cualquier escudo de prototipos equivalente, por ejemplo, el funcionario
escudo prototipo de Arduino. Es sobre todo por lo que no tiene muchos cables mal
alrededor, pero tambin se puede utilizar para ampliar su proyecto de robot con ms componentes,
tal como un acelermetro o un giroscopio.

[80]

Captulo 4

Usted tambin necesitar una fuente de alimentacin para su robot. Como los motores de corriente
continua pueden utilizar bastante
una gran cantidad de corriente, realmente recomendamos que no utiliza el poder que viene de su
puerto USB del ordenador al probar el robot o correr el riesgo de daarlo. Es por eso
siempre vamos a utilizar una batera cuando se trabaja con los motores del robot. Se utiliz una
De la batera de 7,2 V con un conector jack DC, por lo que puede ser fcilmente insertado en el
Arduino
Uno bordo. Esta batera tambin se puede encontrar en el sitio web DFRobot. Puedes
tambin utilizar algunas pilas AA en lugar de un paquete de bateras. Usted tendr que asegurarse de
que la tensin total de estas bateras es mayor que la tensin nominal de su
Motores de corriente continua.
En cuanto al software en s, no es necesario que no sea el Arduino IDE y un nada
servidor web instalado en su equipo.

Montaje del robot


Ahora es el momento de montar el robot. Le mostraremos los pasos que debe seguir
en el kit robot se utiliz para este proyecto, sino que se puede aplicar a cualquier otro
kit robot equivalente. El primer paso es poner la batera en la base del robot, como
se muestra en la siguiente imagen:

[81]

Wi-Fi controlado Mobile Robot

Tenga en cuenta que algunos espaciadores metlicos tambin se utilizaron en la base del robot para
mantener la
de la batera en su lugar y para proporcionar soporte para el resto de los componentes. Estos
separadores
Tambin se puede encontrar en el sitio web DFRobot. Entonces, se puede atornillar en dos
espaciadores ms
y la placa Arduino Yun a la parte superior del chasis, como se muestra en la siguiente imagen:

A continuacin, aadimos el tablero compatible Arduino Uno en la parte superior de los dos metlica
espaciadores. En este punto, se puede atornillar la placa Arduino Uno; todos los dems
componentes slo pueden conectar a estas tablas, como se muestra en la siguiente imagen:

[82]

Captulo 4

A continuacin, slo tiene que conectar el protector del motor en la parte superior de la placa
Arduino Uno. En
este punto, tambin puedes conectar los cables que vienen de los motores de corriente continua a
la
cabeceras de tornillo escudo de motor. Tenga cuidado con este paso; es muy fcil de conectar la
cables equivocadas de los motores de corriente continua. Tendr que conectar cada motor en un
diferente
conector de la placa protector del motor, como se muestra en la siguiente imagen:

Por ltimo, se puede conectar el blindaje de prototipos en la parte superior del robot. En este punto, se
ya conectado el sensor ultrasnico: planta va a Arduino tierra, VCC a
Pin 5V del Arduino en el escudo de prototipo, y el pasador de seal entra en pin A0 de la
Placa Arduino. Si el sensor ultrasnico funciona con una interfaz digital, por ejemplo,
es posible que desee utilizar diferentes pines. Por favor, lea la hoja de datos de su ultrasnica
sensor para ms informacin. La siguiente imagen muestra el estado del robot en
este paso:

[83]

Wi-Fi controlado Mobile Robot

Conexin de la Arduino Yun y


Tableros Uno
No hemos terminado todava! Por ahora, no hay conexiones entre el Arduino Yun
y la placa Arduino Uno, por lo que la junta Yun no podr acceder a los motores de corriente continua
y los sensores del robot. Para resolver este problema, el primer paso es conectar la alimentacin
de la placa Arduino Uno a la junta Yun. De esta manera, cuando en que impulsamos el proyecto
uso de la batera, la junta Yun estar propulsado tambin.
Para ello, basta con conectar los pines de tierra, junto y conecte el pin Vin en el
Arduino Yun al carril 5V del Arduino Uno, como se muestra en la siguiente imagen:

Para finalizar la conexin de las dos placas Arduino, tenemos que conectarlos para que puedan
hablar juntos cuando el proyecto est en funcionamiento. Para ello, vamos a utilizar el
Interfaz I2C de las placas Arduino para que puedan enviar mensajes entre s. I2C
representa Inter Integrated Circuit y es un protocolo de comunicacin simple que era
desarrollado para la comunicacin entre los circuitos, y es ampliamente utilizado en la electrnica.
Hay dos cables para conectar con ese fin: SDA y SCL. Para ello, basta con
conecte el pin 2 de la tarjeta Yun al pin A4 de la junta Uno, y el pin 3 del Yun
junta a la clavija A5 de la junta Uno, como se muestra en la siguiente imagen:

[84]

Captulo 4

La siguiente imagen resume la conexin entre las dos tarjetas:

[85]

Wi-Fi controlado Mobile Robot

Por ltimo, se puede encender el proyecto insertando el conector jack DC de la


batera en el conector de alimentacin de la placa Uno como se muestra en la siguiente imagen:

Si todo se hizo correctamente en este paso, debera ver que ambas tarjetas (el
Yun y el Uno) se encienden, con algunos de sus indicadores LED. Para ayudarle a construir
el robot, que tambin incluy dos imgenes de los lados del robot que la muestran
diferentes conexiones. La siguiente es una imagen de un lado del robot que muestra el
conexiones de alimentacin a la Yun:

[86]

Captulo 4

La siguiente imagen muestra las conexiones de la interfaz I2C al Yun:

Prueba de conexiones de hardware del robot


Antes de la construccin de la parte de control remoto del proyecto, queremos asegurarnos de que
el hardware est conectado correctamente, sobre todo entre la junta y el Arduino Uno
diferentes motores y sensores. Es por esto que estamos primero vamos a construir un boceto sencillo
para la placa Arduino Uno para probar los diferentes componentes.
En este punto, vamos a encender los motores del robot en; as que asegrese de que el robot
est de pie sobre una pequea plataforma, por ejemplo, para evitar que se mueva alrededor mientras
que est probando sus diferentes bocetos Arduino con el cable USB conectado a
tu computadora.
El boceto comienza declarando los pasadores para los motores, como se muestra en la siguiente
cdigo. Tenga en cuenta que estos pines son especficamente para el protector del motor estamos
utilizando; por favor
consulte la hoja de tu escudo si est utilizando una diferente.
int
int
int
int

speed_motor1 = 6;
speed_motor2 = 5;
direction_motor1 = 7;
direction_motor2 = 4;

Declarar el pasador utilizado por el sensor de ultrasonidos como sigue:


int distance_sensor = A0;

[87]

Wi-Fi controlado Mobile Robot

Tambin queremos hacer que la velocidad del motor variar durante el funcionamiento, por lo que
declaramos
la variable como sigue:
int robot_speed;

En el preparar () parte del dibujo, hay que especificar que los pasadores de motor se comportarn
como pines de salida, como se muestra en el siguiente cdigo:
for (int i = 4; i <= 7; i ++)
{
pinMode (i, OUTPUT);
}

Tambin tenemos que establecer una velocidad de partida para el robot. Tenga en cuenta que la
velocidad de cada motor
ser establecido por los comandos PWM procedentes del Arduino, as que tenemos que especificar un
valor entre 0 (sin tensin aplicada al motor) y 255 (tensin mxima aplicada
al motor). Tambin, debido a la resistencia mecnica de los motores, no hay lineal
relacin entre el valor de la orden PWM y la velocidad del motor.
Se utiliz el valor 75 como una velocidad de partida, que es una velocidad muy lenta en nuestro DC
motores. Sin embargo, dependiendo de su propia configuracin, este valor tendr un completo
efecto diferente. En este punto, tambin se puede experimentar para ver lo que el PWM mxima
valor es que le dar exactamente la velocidad cero en sus motores de corriente continua. Asegrese de
que el
robot todava no est en el piso, ya que comenzara a avanzar y posiblemente daos
cosas. Ponemos en un pequeo stand para que las ruedas no toquen nada.
En el loop () parte, todo se hace por la funcin send_motor_command, Que
ser llamado para ambos motores. Por ejemplo:
send_motor_command (speed_motor1, direction_motor1, robot_speed, 1);

Vamos a ver los detalles de esta funcin. Se inicia escribiendo la velocidad del motor en el
correcta pin como sigue:
analogWrite (speed_pin, PWM);

Entonces, tenemos que ajustar el perno de la direccin a la direccin correcta. Esto se hace por una
simple digitalWrite funcin como sigue:
digitalWrite (direction_pin, dir);

An en el loop () funcin, que llamamos una funcin para medir la distancia frente a la
robot e imprimir el resultado en la Serial puerto:
Serial.println (measure_distance (A0));

[88]

Captulo 4

Vamos a ver los detalles de esta funcin. Comienza por conseguir la medicin cruda de
el sensor usando el pulseIn funcin. Bsicamente, el sensor devuelve un pulso cuya
longitud es proporcional a la distancia medida. Se mide la longitud del impulso
con la siguiente funcin de Arduino dedicado a tal efecto:
unsigned long DistanceMeasured = pulseIn (pin, LOW);

Luego, comprobamos si la lectura es vlida y si lo es, lo convertimos a centmetros


utilizando la siguiente frmula:
Distancia = DistanceMeasured / 50;

Esto se volvi con el siguiente cdigo:


volver Distancia;

Por ltimo, actualizamos la velocidad en cada iteracin del bucle por aumentarla por uno
unidad, y reiniciamos si se alcanza el 255, como se muestra en el siguiente cdigo:
robot_speed ++;
si (robot_speed> 255) {robot_speed = 75;}

El cdigo de esta seccin est disponible en el repositorio GitHub del libro y es


almacenado en un archivo llamado robot_test:https://github.com/openhomeautomation/
geek-proyectos-yun / rbol / maestro / captulo4 / robot_test

Ahora es el momento de cargar el cdigo para el robot. Antes de hacerlo, asegrese de


que el robot es alimentado por la batera. Ambos motores del robot debe gradualmente
acelerar al llegar a la velocidad mxima y luego comenzar de nuevo a una velocidad inferior.
Tambin puede abrir el monitor de serie en este punto para comprobar las lecturas de la
sensor de distancia. Trate de mover la mano o un objeto delante del robot; debieras
ver la distancia cambiando en consecuencia en el monitor serie.

Construyendo el boceto Arduino


Ahora es el momento de construir el boceto final para nuestro proyecto. Para ser realmente precisos,
debe decir bocetos, porque vamos a tener que desarrollar dos de ellos: uno para el Uno
bordo y una para la junta Yun. Slo tienes que hacer un simple cambio en la
hardware en este punto: conectar el sensor de ultrasonidos directamente a la placa Yun por
conectar el pin de seal al pin A0 de la junta Yun.

[89]

Wi-Fi controlado Mobile Robot

Del primer foco en el boceto Arduino Uno Let. El dibujo est inspirado en el esbozo de prueba
escribimos antes, por lo que ya incluye las funciones para el control de los dos motores de corriente
continua.
Para comunicarse entre las dos placas, tenemos que incluir la librera Wire que es
encargado de manejar las comunicaciones I2C:
#include <Wire.h>

Luego, en el preparar () parte del dibujo, tenemos que declarar que estamos conectando
al bus I2C y empezar a escuchar a los eventos entrantes. La junta Uno ser
configurado como un esclavo, recibir comandos de la placa Yun, que actuar como
maestro. Esto se hace mediante el siguiente fragmento de cdigo:
Wire.begin (4);
Wire.onReceive (receiveEvent);

Vamos a ver los detalles de esta receiveEvent parte, que es en realidad una funcin que
se pasa como un argumento a la OnReceive () la funcin de la biblioteca de alambre. Este
funcin ser llamada cuando se recibe un evento en el bus I2C. Que es esto
funcin no es, bsicamente, leer los datos entrantes desde el Yun, que tiene que seguir una
formato especfico, como se puede ver en el siguiente ejemplo:
speed_motor_1, direction_motor_1, speed_motor_2, direction_motor_2

Por ejemplo, la primera parte del mensaje anterior se vuelve a leer con el
siguiente cdigo:
int PWM1 = Wire.read ();
Serial.print (PWM1);
Char c = Wire.read ();
Serial.print (c);

Estos comandos que vienen de la Yun se aplican entonces a los motores de la siguiente manera:
send_motor_command (speed_motor1, direction_motor1, PWM1, dir1); send_
motor_command (speed_motor2, direction_motor2, PWM2, dir2);

Fijmonos ahora en el boceto Yun. Este bosquejo est inspirado en el esbozo del puente que
viene con el Arduino IDE y se basa en la API REST del Arduino Yun. A
facilitar las cosas, vamos a crear un nuevo tipo de llamada REST llamado robot.
De esta manera, vamos a ser capaces de comandar el robot por llamadas de ejecucin como el
siguiente en su navegador:
myarduinoyun.local / arduino / robot / parada

[90]

Captulo 4

En primer lugar, tenemos que incluir las bibliotecas correctas para el boceto de la
siguiente manera:
#include
#include
#include
#include

<Wire.h>
<Bridge.h>
<YunServer.h>
<YunClient.h>

A continuacin, cree un servidor web en la pizarra:


Servidor YunServer;

En el preparar () funcin, tambin nos sumamos el bus I2C:


Wire.begin ();

Entonces, empezamos el puente:


Bridge.begin ();

La preparar () funcin termina iniciando el servidor web de la siguiente manera:


server.listenOnLocalhost ();
server.begin ();

Entonces la loop () funcin consiste en escuchar las conexiones entrantes de la siguiente manera:
YunClient cliente server.accept = ();

Las solicitudes que provienen de estos clientes se pueden procesar con la


siguiente comando:
si (cliente) {
// Peticin de Procesos
proceso (cliente);

// Cerrar la conexin y recursos gratuitos.


client.stop ();
}

Si se conecta un cliente, lo procesamos para comprobar si es o no un comando robot era


recibido, como sigue:
Comando String = client.readStringUntil ('/');
si (comando == "robot") {
robotCommand (cliente);
}

[91]

Wi-Fi controlado Mobile Robot

Esta funcin procesa la llamada REST para ver lo que tenemos que hacer con los motores
del robot. Por ejemplo, consideremos el caso en el que queremos hacer la
robot vaya hacia adelante a toda velocidad. Tenemos que enviar el siguiente mensaje a la
Arduino Uno bordo:
255,0,255,0

Esto se hace mediante el siguiente fragmento de cdigo:


si (comando == "fullfw") {
Wire.beginTransmission (4);
Wire.write (255);
Wire.write ("");
Wire.write (0);
Wire.write ("");
Wire.write (255);
Wire.write ("");
Wire.write (0);
Wire.endTransmission ();
}

Se incluyeron otros tres comandos para esta API REST simple: detngase (Que obviamente
detiene el robot), girar a la izquierda (Que hace que el robot gire a la izquierda a una velocidad moderada),
gire a la derecha (Que hace que el robot gire a la derecha), y getDistance para devolver el
distanciarse procedente del sensor de ultrasonidos. Tambin nos insertamos el measure_distance
funcin en el boceto para leer los datos que vienen desde el sensor ultrasnico.
Ahora estamos listos para cargar el cdigo para el robot. Recuerde que usted tiene que
subir dos bocetos aqu: una para la junta Uno y otro para la junta Yun. La
el orden no importa mucho, slo subir los dos Arduino esboza con xito
asegurando cuidadosamente que est cargando el cdigo correcto a la junta correcta.
Ambos bocetos estn disponibles en el siguiente repositorio en GitHub: https: // github.
com / openhomeautomation / geek-proyectos-yun / rbol / maestro / captulo4 /
control remoto.

A continuacin, puede probar que la junta Yun est transmitiendo correctamente comandos al Uno
bordo. En este punto, puede desconectar todos los cables y alimentar el robot con el
batera solamente. Luego, ir a un navegador web y escriba el siguiente cdigo:
myarduinoyun.local / arduino / robot / TurnRight

[92]

Captulo 4

El robot debe comenzar inmediatamente dar vuelta a la derecha. Para detener el robot, puede
simplemente escriba el siguiente cdigo:
myarduinoyun.local / arduino / robot / parada

Tambin puede escribir el siguiente cdigo:


myarduinoyun.local / arduino / robot / getDistance

Esto debera imprimir el valor de la distancia frente al robot en su navegador web.


Si usted puede ver una distancia realista est impreso en su navegador web, significa que
el comando funciona correctamente.

La construccin de la interfaz de la
Ahora
vamos a crear una interfaz para que pueda controlar el robot de forma remota desde
computadora
el ordenador o un dispositivo mvil. Esto es en realidad muy similar a lo que hicimos para
el proyecto de control de rel, la principal diferencia es que nosotros tambin queremos leer algunos
de nuevo los datos de la robot (en el presente caso, la medicin de la distancia desde el
sensor de ultrasonidos). Habr un archivo HTML que ser la sede de los diferentes elementos de
la interfaz, algo de cdigo PHP para comunicarse con la junta Yun, algo de JavaScript
para establecer el vnculo entre HTML y PHP, y finalmente un poco de CSS para dar alguna
estilo de la interfaz.

El primer paso es crear el archivo HTML que ser nuestro punto de acceso al robot
control. Este archivo bsicamente alberga cuatro botones que usaremos para controlar nuestro robot y
un campo para mostrar continuamente la distancia medida por el sensor de ultrasonidos. La
botones se declaran dentro de una forma; El siguiente es el cdigo para un botn:
<Input type = id = "button" "stop" class = valor "commandButton" = "Stop"
onclick = "stopRobot ()" />

La informacin de la distancia se mostrar mediante la siguiente lnea de cdigo:


<Div id = "distanceDisplay"> </ div>

El siguiente campo se actualizar con algo de JavaScript:


<Script type = "text / javascript">
setInterval (function () {
$ ("# DistanceDisplay") load ('get_distance.php.');
}, 1000);
</ Script>

[93]

Wi-Fi controlado Mobile Robot

Vamos a ver el contenido de este archivo PHP. Bsicamente se hace una llamada a la API REST de
la
Tablero Yun, y devuelve la respuesta que se mostrarn en la interfaz. Una vez ms, lo har
hacer uso de la rizo funcin de PHP.
Se inicia haciendo que la CURL llame a su tablero Yun con el getDistance parmetro
hemos definido en el esquema anterior:
$ Service_url = 'http: //myarduinoyun.local/arduino/robot/getdistance';

A continuacin, se prepara la llamada con el siguiente cdigo:


$ Rizo = curl_init ($ service_url);

Recibimos la respuesta con el siguiente cdigo:


$ Curl_response = curl_exec ($ rizo);

Luego imprimimos atrs con el eco funcin de PHP:


echo $ curl_response;

El script PHP que comanda los motores es bastante similar, as que no lo har detalle aqu.
Vamos a ver el archivo JavaScript que se encarga de los diferentes botones de la interfaz. Cada
botn de la interfaz est bsicamente relacionada con una funcin de JavaScript que enva el
correcta parmetro al Arduino Yun, a travs del archivo PHP. Por ejemplo, el detngase botn
llama a la funcin siguiente:
stopRobot function () {
$ .get ("Update_state.php", {comando: "parar"});
}

Lo mismo se hace con la funcin de hacer que el robot vaya a toda velocidad hacia adelante. Hacer
que girar a la izquierda oa la derecha, se puede implementar un comportamiento ms complejo. Lo que
habitualmente
queremos no es para que el robot gire continuamente por s mismo, pero por ejemplo, para activar
fuera de cuarto de vuelta. Aqu es donde el enfoque que tomamos en este proyecto se convierte en
poderoso. Podemos hacer que la derecha en el lado del servidor sin tener que cambiar la
boceto de la placa Arduino.
Es por eso que a la derecha para una determinada cantidad de tiempo, por ejemplo, vamos a
implementar
una serie de comandos en el servidor y luego se detiene. Esto se hace por el
siguiente cdigo:
turnRight function () {
$ .get ("Update_state.php", {comando: "TurnRight"});
sueo (350);
$ .get ("Update_state.php", {comando: "parar"});
}
[94]

Captulo 4

La sueo propia funcin se implementa en el mismo archivo y funciona mediante la comparacin


el tiempo que pasa desde que la funcin se llama, como se muestra en el siguiente cdigo:
sueo funcin (milisegundos) {
inicio var = new Date () getTime ().;
for (var i = 0; i <1E7; i ++) {
if ((new Date () getTime () -. marcha)> milisegundos) {
break;
}
}
}

Por supuesto, te invitamos a jugar con esta funcin del sueo de conseguir el ngulo deseado. Para
ejemplo, fijamos nuestra funcin dormir de manera que el robot se apaga alrededor de un cuarto de un
gire cada vez que pulsamos el Gire A La Derecha botn.
El cdigo para la interfaz est disponible en el repositorio GitHub del proyecto:
https://github.com/openhomeautomation/geeky-projects-yun/tree/master/
captulo4 / remote_control

Ahora, es el momento de iniciar el proyecto. Asegrese de colocar todos los archivos en la raz de su
web
servidor y asegrese de que se ejecuta el servidor web. Luego, vaya a la carpeta de su
servidor web en su navegador (normalmente escribiendo localhost) Y abra el archivo HTML.
El proyecto tambin contiene una hoja CSS para hacer que la interfaz se vea mejor. La siguiente
es lo que usted debe ver en su navegador:

El campo que muestra la lectura de distancia del sensor de ultrasonidos debe ser
actualiza automticamente cada segundo, para que pueda ver si es o no est funcionando
inmediatamente. Trate de mover la mano o un objeto delante del robot y el valor
debe cambiar en consecuencia.
Antes de hacer el robot se mueva, le recomendamos que pruebe las diferentes
botones mientras el robot est todava en un pequeo soporte de forma que no se pueden mover. En
efecto, si
algo se codifica errneamente en el servidor o en el boceto Arduino, el robot
no responder ms y llegar al azar objetos en su casa.
Ahora tambin puede probar los diferentes botones. Puede centrarse especialmente en los botones
que hacen que el robot gire hacia la izquierda o la derecha y ajuste el sleep () funcin en el PHP
cdigo para hacer que hagan exactamente lo que quieres. Tenga en cuenta que mientras el robot es
movindose alrededor, la distancia detectada por el sensor ultrasnico delante del robot es
actualizado en consecuencia.
[95]

Wi-Fi controlado Mobile Robot

Resumen
Vamos a ver cules son los principales robos de baln de este
captulo son:

Empezamos el proyecto construyendo el robot de los diferentes componentes,


tales como la base del robot, los motores de corriente continua, el sensor de ultrasonidos, y las
diferentes
Placas Arduino.

Entonces, construimos un boceto sencillo para probar los motores de corriente continua
y la ultrasnica
sensor de distancia.

El siguiente paso fue la construccin de dos bocetos de Arduino para controlar el


robot
a distancia: una para la placa Arduino Uno y otro para la junta Yun.

Al final del proyecto, se construy una simple interfaz web para controlar el robot
remota. La interfaz se compone de varios botones para hacer que el robot
moverse, y un campo que muestra continuamente la medida que
proviene del sensor ultrasnico montado en el frente del robot.
Ahora vamos a ver qu ms se puede hacer para mejorar este proyecto. Puede, por ejemplo, utilizar
los datos de los sensores ultrasnicos para hacer que el acto robot en consecuencia, por ejemplo, para
evitar
golpeando contra las paredes.
Por ltimo, tambin se puede agregar muchos componentes de hardware para el robot. La primera
cosa que puedes hacer es aadir ms sensores ultrasnicos alrededor del robot para que pueda
detectar obstculos a los lados de la robot tambin. Tambin puede imaginar la adicin de un
acelermetro y / o un giroscopio al robot para que sepa exactamente dnde est
va ya qu velocidad.
Usted puede incluso imaginar combinar el proyecto con el de la Captulo 3, Realizacin
Su propia cmara conectada a la nube, y conecte una cmara USB para el robot. De esta forma,
puede vivir arroyo lo que el robot est viendo mientras lo controlas con la interfaz web!
Espero que este libro le dio una buena visin general de lo que el Arduino Yun puede aadir a su
Proyectos de Arduino. A travs de los cuatro proyectos en el libro, hemos utilizado los tres principales
caractersticas de la Arduino Yun: la poderosa mquina Linux embebido, el bordo
Conexin Wi-Fi gratuita, y las bibliotecas Temboo para interconectar el tablero con los servicios web.
Ahora puede usar lo que has aprendido en este libro para construir sus propias aplicaciones
basada en la Arduino Yun!

[96]

ndice
Smbolos

2 Ruedas miniQ Balancing Robot chasis 78

Google Docs
datos, enviando a 16
establecer, para el dispositivo de control remoto
proyecto 40

La
Boceto Arduino, robot mvil
la construccin de 89 a 92
Arduino Uno
conectar, a placa Arduino Yun 84-87
Arduino Uno junta compatibles 82
Placa Arduino Yun
sobre 10
componentes, que se conectan a 31-35
hardware RECREO O 10, 11
sensores, que se conectan a 11.14
software RECREO O 11
Datos del sensor po Arduino Yun
creando 23-25
alertas automticas de correo electrnico
la creacin de 21, 23

H
componentes de hardware
conectar, a bordo Yun 31-35
pruebas 35-39
componentes de hardware, las cmaras de seguridad
proyecto
la conexin 56, 57
conexiones de hardware, robot mvil
pruebas 87-89
conexiones de hardware, las cmaras de seguridad
proyecto
pruebas 57-60
requisitos de hardware, tablero de Arduino Yun 11

YO

tablero del desbloqueo de 29


Biblioteca Puente 17

Inter Integrated Circuit 84

L
C
Choreo
datos, enviando a Google Docs 16
interfaz de la computadora, robot mvil
la construccin de 93 a 95

D
DFRobot
URL 77

streaming de video en vivo, pro- cmara de seguridad


proyecto
realizar, a travs de Wi-Fi 67-73
loop () la funcin 41, 91

M
robot mvil
Boceto Arduino, la construccin de 89 a 93

Tablero de Arduino Uno, conectando con Arduino


S
Tablero Yun 84-87
montaje 81-83
proyecto de cmaras de seguridad
edificio 75, 76
aplicacin, la creacin de 54
componentes, el montaje 76
edificio 51
interfaz de la computadora, la construccin de 93 a 95 componentes de hardware 52
componentes de hardware, artculos de 77 a 81
componentes de hardware, la conexin de 56, 57
conexiones de hardware, pruebas 87-89
conexiones de hardware, pruebas 57-60
RECREO O 77
streaming de vdeo en directo, realizando a travs de Wi-Fi
componentes de software, artefactos 77-81
67-72
imgenes, grabar cuando se detecta movimiento
61-63
imgenes, enviando a Dropbox 64-66
componentes de software 52
sensores, placa Arduino Yun
la conexin a 11-14
funcin setup () 36, 91
requisitos de software, placa Arduino Yun 10

O
OnReceive funcin 90 ()

P
PIR sensor de movimiento 53
Biblioteca Proceso 17

Temboo
rel 28
sobre 9
monitor de energa a distancia y el dispositivo de control cuenta, la creacin de 15
la creacin de 27
Cuenta Temboo
datos, enviando a Google Docs 40-46
alertas de correo electrnico automatizados, la creacin
interfaz grfica de usuario, la construccin de 46 a 50 de 21, 22
RECREO O 28
datos, enviando a Google Docs 16-21
requisitos, monitor de energa a distancia y conla creacin de 15
dispositivo de control
componentes de hardware 28-31
componentes de software 28
U
UVC 52

[98]

Gracias por la compra

Internet de las cosas con el Arduino Yun


Acerca Publishing Packt
Packt, pronunciado 'lleno', public su primer libro "Mastering phpMyAdmin para una eficaz
Gestin de MySQL " en abril de 2004 y posteriormente continu a especializarse en el mundo editorial
muy centrado libros sobre tecnologas y soluciones especficas.
Nuestros libros y publicaciones comparten las experiencias de sus compaeros de los profesionales de TI en la
adaptacin
y la personalizacin de la actualidad de sistemas, aplicaciones y marcos. Nuestros libros basados solucin
le dar el conocimiento y el poder para personalizar el software y las tecnologas que est utilizando
para hacer el trabajo. Libros Packt son ms especficos y menos general que los libros de TI que tienes
visto en el pasado. Nuestro modelo de negocio nico nos permite llevar la informacin ms centrado,
que le da ms de lo que necesita saber, y menos de lo que no.
Packt es una empresa editorial, pero nico, moderno, que se centra en la produccin de calidad,
libros de vanguardia para las comunidades de desarrolladores, administradores y novatos por igual. Para
ms informacin, por favor visite nuestro sitio web: www.packtpub.com.

Acerca de Packt Open Source


En 2010, Packt lanz dos nuevas marcas, Packt Open Source y Packt para empresas, con el fin de
continuar su enfoque en la especializacin. Este libro forma parte de la marca Packt Open Source, hogar
a los libros publicados en el software construido alrededor de las licencias de cdigo abierto, y ofreciendo
informacin
a cualquiera de los desarrolladores avanzados a ciernes diseadores web. La marca de cdigo abierto
Tambin dirige Packt Open Source Royalty Esquema, por el que Packt da una regala a cada Abrir
Proyecto de cdigo sobre cuyo software un libro se vende.

Escribir para Packt


Damos la bienvenida a todas las preguntas de las personas que estn interesadas en la edicin. Propuestas libro
debe
ser enviado a author@packtpub.com. Si su idea del libro se encuentra todava en una fase inicial y que le gustara
discutirlo primero antes de escribir una propuesta de libro formal, pngase en contacto con nosotros; uno de nuestra
puesta
editores
se pondrn
contacto
con usted.
No estamos
slo en en
busca
de autores
publicados; si usted tiene fuertes habilidades tcnicas, pero no la escritura
experiencia, nuestros editores experimentados puede ayudarle a desarrollar una carrera de escritor, o simplemente
conseguir un poco
recompensa adicional para su experiencia.

C Programacin para Arduino


ISBN: 978-1-84951-758-4

Paperback: 512 pginas

Aprende a programar y utilizar placas Arduino


con una serie de ejemplos de acoplamiento, que ilustra
cada concepto central
1.

Utilice placas Arduino en su propia electrnica


proyectos de hardware y software.

2.

Sentir el mundo mediante el uso de varios sensorial


componentes con sus placas Arduino.

3.

Crear interfaces tangibles y reactivos con


tu computadora.

4.

Descubre un mundo de cableado creativo y


codificacin de la diversin!

Raspberry Pi Domtica
con Arduino
ISBN: 978-1-84969-586-2

Paperback: 176 pginas

Automatice su casa con una serie de proyectos interesantes


para el Raspberry Pi!
1.

Aprenda cmo ajustar dinmicamente su vida


entorno con el paso a paso detallado
ejemplos.

2.

Descubra cmo puede utilizar el combinado


poder de la Raspberry Pi y Arduino para
sus propios proyectos.

3.

Revolucionar la forma de interactuar con su


casa sobre una base diaria.

Por favor, compruebe www.PacktPub.com para obtener informacin sobre


nuestros ttulos

BEAGLEBONE robticos Proyectos


ISBN: 978-1-78355-932-9

Paperback: 244 pginas

Crear proyectos robticos complejos y emocionantes con la


BEAGLEBONE Negro
1.

Hazte con el control de sistemas robticos.

2.

Comunquese con su robot y ensearlo a


detectar y responder a su entorno.

3.

Desarrollar caminar, balanceo, natacin, y


volar robots.

ROS Aprendizaje de Robtica


Programacin
ISBN: 978-1-78216-144-8

Paperback: 332 pginas

Una gua prctica, instructiva, y completa


para presentarse a ROS, el de primera categora, lo que lleva
marco robtica
1.

Modelo de su robot en un mundo virtual y aprender


cmo simularlo.

2.

Llevar a cabo el estado de la tcnica de Visin por


Computador
tareas.
Fcil de seguir, tutoriales prcticos para programar
sus propios robots.

3.

Por favor, compruebe www.PacktPub.com para obtener informacin sobre


nuestros ttulos

S-ar putea să vă placă și