Documente Academic
Documente Profesional
Documente Cultură
Arduino Yun
Marco Schwartz
BIRMINGHAM - MUMBAI
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.
Crditos
Autor
Marco Schwartz
Copie Editores
Tanvi Gaitonde
Dipti Kapadia
Revisores
Fiore Basile
Charalampos Doukas
Francisco Perea
Correctores
Puesta Editor
Anthony Albuquerque
Editor de Adquisicin
Harsha Bharwani
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.
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
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?
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
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
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.
Prefacio
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
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.
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
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);
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.
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]
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.
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:
[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.
[11]
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;
Ahora, en el preparar () parte del dibujo, tenemos que iniciar la conexin en serie,
como sigue:
Serial.begin (115.200);
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]
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.
[14]
Captulo 1
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]
[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>
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]
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;
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);
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]
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:
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]
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;
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");
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 ();
Captulo 1
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.
[23]
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);
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]
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:
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
[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.
[29]
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).
[31]
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]
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.
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
[36]
Capitulo 2
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 = ();
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]
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);
[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
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]
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]
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 ();
// 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;
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 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:
[43]
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]
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.
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>
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;
}
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);
[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]
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.
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.
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]
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
[55]
[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.
[57]
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);
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]
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
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
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
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.
[61]
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;
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);
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]
Una vez ms, estas fotos para asegurarse de que no estn daados y que
todo funcion como estaba previsto.
[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)
[65]
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, 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
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
[67]
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
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]
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
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.
[71]
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:
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.
[73]
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]
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.
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
[77]
[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]
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.
[81]
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]
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
[85]
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
speed_motor1 = 6;
speed_motor2 = 5;
direction_motor1 = 7;
direction_motor2 = 4;
[87]
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);
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;}
[89]
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>
Entonces la loop () funcin consiste en escuchar las conexiones entrantes de la siguiente manera:
YunClient cliente server.accept = ();
[91]
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
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
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 ()" />
[93]
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';
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
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]
Resumen
Vamos a ver cules son los principales robos de baln de este
captulo son:
Entonces, construimos un boceto sencillo para probar los motores de corriente continua
y la ultrasnica
sensor de distancia.
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
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
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
M
robot mvil
Boceto Arduino, la construccin de 89 a 93
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]
2.
3.
4.
Raspberry Pi Domtica
con Arduino
ISBN: 978-1-84969-586-2
2.
3.
2.
3.
2.
3.