Internet de las cosas con la Arduino Yun
Proyectos para ayudar a construir un mundo de cosas más inteligentes
Marco Schwartz
BIRMINGHAM - MUMBAI
Internet de las cosas con la Arduino Yun
Proyectos para ayudar a construir un mundo de cosas más inteligentes
Marco Schwartz
BIRMINGHAM - MUMBAI
Internet de las cosas con el Arduino Yun Copyright © 2014 Packt Publishing
Todos los derechos reservados. Ninguna parte de esta publicación puede ser reproducida, almacenada en un sistema de recuperación sistema o transmitida en cualquier forma o por cualquier medio, sin el previo escrito autorización de la editorial, excepto en el caso de breves citas incorporadas en artículos o comentarios críticos. Cada esfuerzo se ha hecho en la preparación de este libro para garantizar la exactitud de la información presentada. Sin embargo, la información contenida en este libro es vende sin garantía, ya sea expresa o implícita. Ni el autor ni Packt Publishing, y sus concesionarios y distribuidores serán responsables de los daños causado o presuntamente causado directa o indirectamente por este libro. Packt Publishing ha esforzado en proporcionar información sobre marcas sobre todo de la compañías y productos mencionados en este libro por el uso apropiado de capitales. Sin embargo, Packt Publishing no puede garantizar la exactitud de esta información.
Primera publicación: mayo 2014
Producción de Referencia: 1140514
Publicado por Packt Publishing Ltd. Livery Place 35 Livery calle Birmingham B3 2PB, Reino Unido. ISBN 978-1-78328-800-7 www.packtpub.com
Cubra Imagen de Shweta Suresh Karkera (
[email protected])
Créditos Autor Marco Schwartz
Copie Editores Tanvi Gaitonde Dipti Kapadia
Revisores Fiore Basile Charalampos Doukas
Coordinador Del Proyecto Melita Lobo
Francisco Perea Puesta Editor Anthony Albuquerque
Correctores Maria Gould Ameesha Verde
Editor de Adquisición Harsha Bharwani
Indexador Hemanjini Bari
Contenido Editor Desarrollo
Coordinador de Producción
Poonam Jain Editores Técnicos Manan Badani Shashank Desai Shali Sasidharan
Alwin Roy Trabajo Cubierta Alwin Roy
Sobre el Autor Marco Schwartz es un ingeniero eléctrico, empresario y blogger. Él tiene un Máster en Ingeniería Eléctrica y Ciencias de la Computación de Supélec en Francia, y una maestría en Ingeniería Micro de la EPFL en Suiza. Marco tiene más de cinco años de experiencia en el campo de la ingeniería eléctrica. Sus intereses gravitan en torno a la electrónica, la automatización del hogar, el Arduino y Plataformas Raspberry Pi, proyectos de hardware de código abierto, y la impresión 3D.
Acerca de los revisores Fiore Basile es un programador, administrador de sistemas, creativo, emprendedor, y maker. Desde 1996, se ha desempeñado como gerente de proyectos, consultor y tecnología oficial en proyectos industriales y de investigación de tamaños variados de toda Italia y Europa. Ha trabajado en las áreas de patrimonio cultural, e-salud, la preservación digital, interfaces multimodales y web y la edición móvil. Durante su carrera, él tiene también comenzó dos de TI de nueva creación, que se celebró talleres en conferencias internacionales y eventos, y ha sido entrevistado por la prensa nacional e internacional. Su trabajo experiencia le permitió construir una amplia experiencia en sistemas, web y móvil desarrollo de software, software libre y hardware abierto, programación integrado, y electrónica. Actualmente está realizando investigaciones sobre tecnologías portátiles, computación afectiva, y los dispositivos conectados inteligentes. T ambién trabaja como coordinador de FabLab Cascina, un laboratorio de fabricación digital en el medio de la Toscana.
Charalampos Doukas es un investigador y un fabricante de la IO. Empezó a jugar con sensores y Arduino en 2008 al intentar capturar y transmi tir los signos vitales. Él es apasionado de la combinación de diferentes sistemas de hardware con software y servicios el uso de Internet. Él ayuda en la difusión de los conocimientos sobre el software de código abierto y hardware mediante la organización de sesiones de talleres y conferencias. Él ha construido muchos proyectos alrededor vigilancia de la casa y la automatización. Contribuye nodos de hardware para Node-RED y también es autor del libro, La construcción de Internet de Las cosas con el Arduino, CreateSpace. Cuando Charalampos no está jugando con sensores y actuadores, se las arregla Europea proyectos de investigación en CREAR-NET en Trento, Italia.
Francisco Perea es profesor de educación profesional en Consejería de Educación Junta de Andalucía en España con más de 14 años de experiencia. Se especializa en la administración de sistemas, desarrollo web y gestión de contenidos sistemas. En su tiempo libre, trabaja como freelance y colabora, entre otros, con multimedia N, un pequeño estudio de diseño en Córdoba, trabajando como un sistema administrador y desarrollador web principal. También colaboró como revisor técnico sobre el libro, SketchUp 2014 para Visualización Arquitectónica, Thomas Bleicher y Robin de Jongh, Packt Publishing. Cuando no está sentado delante de un ordenador o retoques en su taller, que puede ser encontrado correr o andar en bicicleta por las pistas y colinas en el Condado de la Axarquía, dónde vive.
Me gustaría 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 serían suficientes para expresar mi gratitud. También me gustaría dar las gracias a mis colegas en multimedia ñ y mi estudiantes de los pacientes. La necesidad de estar en el nivel que la demanda es lo que me mantiene en el futuro.
www.PacktPub.com Los archivos de soporte, libros electrónicos, ofertas de Es posible que desee visitar www.PacktPub.com para los archivos de soporte y descargas relacionadas descuento, y más a su libro.
¿Sabías que Packt ofrece versiones de libros electrónicos de todos los libros publicados, con PDF y archivos ePub disponibles? Puede actualizar a la versión de libro electrónico en www.PacktPub. com y como cliente libro impreso, usted tiene derecho a u n descuento en la copia de lib ros electrónicos. Póngase en contacto con nosotros en
[email protected] para más detalles. En www.PacktPub.com, También se puede leer una colección de artículos técnicos gratuitos, signo para una serie de boletines gratuitos y recibir descuentos exclusivos y ofertas en Packt libros y libros electrónicos. TM
http://PacktLib.PacktPub.com
¿Necesita soluciones inmediatas a sus preguntas de TI? PacktLib está online Packt biblioteca de libros digitales. Aquí, usted puede acceder, leer y bus car en todo Packt biblioteca de libros.
¿Por qué suscribirse? • • •
Que se puede buscar a través de cada libro publicado por Packt Copiar y pegar, imprimir y marcar contenido En la demanda y accesible a través del navegador web
Acceso gratis para los titulares de cuentas Packt Si usted tiene una cuenta con Packt en www.PacktPub.com, Puede usar esto para el acceso PacktLib hoy y vista nueve libros totalmente gratis. Sólo t iene que utilizar sus credenciales de inicio de sesión para el acceso inmediato.
Tabla de contenidos Prefacio 1 Capítulo 1: La construcción de una estación meteorológica conectada a la nube 9 Los componentes de hardware y software necesarios Conexión de los sensores a la placa Arduino Yun Crear una cuenta de Temboo El envío de datos a Google Docs y mostrarlo Creación de alertas de correo electrónico automatizados La fabricación de sus datos de sensores a bordo pío Arduino Yun Resumen
Capítulo 2: Creación de un sistema de Monitoreo Remoto de Energía y Dispositivo de control Los componentes de hardware y software necesarios Conexión de los componentes de la junta Yun Comprobación de las conexiones de hardware El envío de datos a Google Docs La construcción de una interfaz para cambiar las luces de encendido / apagado a distancia Resumen
Capítulo 3: Cómo hacer que su propia cámara conectada en la nube Empezando Los componentes de hardware y software necesarios Hacer conexiones de hardware Comprobación de las conexiones de hardware Grabar las imágenes cuando se detecta movimiento Envío de imágenes a Dropbox a intervalos regulares Video en vivo a través de Wi-Fi Resumen
10 11 15 16 21 23 26
27 28 31 35 40 46 50
51 51 52 56 57 61 64 67 73
Tabla de contenidos
Capítulo 4: Wi-Fi controlado Mobile Robot Construcción del robot móvil Los componentes de hardware y software necesarios Montaje del robot Conexión de las placas Arduino Yun y Uno Prueba de conexiones de hardware del robot Construyendo el boceto Arduino La construcción de la interfaz de la computadora Resumen
Índice
75 75 77 81 84 87 89 93 96
97
[Ii]
Prefacio El Internet de las Cosas (IoT) es un tema cada vez más en el mundo de la tecnología, y más y más proyectos de hardware que se financiará con las campañas de crowdfunding incluyen algunos objetos conectados. Estos objetos pueden ser relojes inteligentes que se conectan a la Web, la estación meteorológica, cámaras, dispositivos de monitoreo de energía, e incluso rob ots. Muchos gigantes de la industria como Google y Samsung también están entrando en el mercado con objetos relacionados y dispositivos portátiles. 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 fácil de usar, que permite no sólo aficionados, sino también a los artistas y las personas sin un fondo de alta tecnología para crear increíbles proyectos de hardware. La plataforma está siempre evolucionando con nuevas soluciones que permitan personas para crear más y más 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 quería desarrollar objetos conectados. En efecto, el desarrollo de aplicaciones para l a 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 más fácil. El Arduino Yun es el mismo tamaño que el Arduino Uno, que es el más común Placa Arduino. Sin embargo, la diferencia es que cuenta con una pequeña máquina 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 máquina Linux desde el Arduino habitual microcontrolador que también está presente en el tablero. De esta manera, se puede utilizar l a poderosa características de la máquina Linux desde la programación de la misma manera como lo haría 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 también tiene a bordo de Wi-Fi cambia todo. La junta fue desarrollado en estrecha colaboración 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 máquina Linux embebido, la conexión Wi-Fi gratuita, y las bibliotecas Temboo, usted podrá crear fácilmente 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 también será capaz de construir estos proyectos después de leer este libro.
Lo que cubre este libro Capítulo 1, La construcción de una estación meteorológica conectada a la nube, que introduce a la Internet de las Cosas cuenta de la Arduino Yun. En este capítulo, vamos a construir una estación de medición de tiempo (que mide la temperatura, la humedad, y niveles de luz) que envía los datos a la web. El proyecto será enviar datos a un Google Docs hoja de cálculo a través de Temboo y registro de los resultados en la hoja de cálculo donde pueden estar se muestra gráficamente. Lo bueno de este proyecto es que estos datos entonces puede ser se accede desde cualquier parte del mundo con sólo iniciar sesión en su cuenta de Google y ir a la hoja de cálculo. Capítulo 2, Creación de un sistema de Monitoreo Remoto de Energía y de dispositivos d e control, se centra en la energía gestión mediante la creación de un proyecto para cambiar un dispositivo de encendido y apagado (como una lámpara), la medición de su consumo de energía y el almacenamiento de estos datos a la Web. Vamos para conectar un sensor de corriente para medir el consumo de energía del dispositivo que es relacionada con el proyecto. El proyecto también será capaz de cambiar el dispositivo encendido y apagado remotamente, y vamos a construir una interfaz para controlar este cambio de el ordenador y el dispositivo móvil. conectada a la nube, nos permite construir nuestra propia DIY Capítulo 3, hacer su propia cámara versión de una cámara de seguridad inalámbrica mediante la conexión de una cámara web USB estándar al Arduino Yun. Vamos a realizar dos aplicaciones interesantes con este proyecto: en primer lugar, que cargará automáticamente las fotografías de la cámara cuando se detecta algún movimiento frente a ella, y luego vamos a hacer el video stream en vivo desde la cámara YouTube, por lo que puede controlar lo que está pasando en su casa desde cualquier lugar. Capítulo 4, Mobile Robot controlado por Wi-Fi, se centra en la robótica. Vamos a construir una Wi-Fi-controlado robot móvil con dos ruedas y un sensor de distancia por ultrasonidos en delante de él. Además, vamos a utilizar las potentes funciones de la Arduino Yun controlar fácilmente este robot a través de Wi-Fi. Para ello, vamos a construir una web interfaz que se utiliza para controlar el movimiento del robot, y esto también lo hará mostrar la distancia medida por el sensor de frente. [2]
Prefacio
Lo que usted necesita para este libro El objetivo principal de este libro es l a placa Arduino Yun; así que, por supuesto, usted necesitará una de las placas Arduino Yun para hacer los cuatro proyectos del libro. Dependiendo de el capítulo, usted también tendrá varios componentes de hardware. Los detalles de estos componentes requeridos se dan al principio de cada capítulo. Usted también tendrá que haber algún tipo de software instalado en su computadora para hacer la proyectos de trabajo. La primera de ellas es la última versión beta del Arduino IDE (la única versión que puede trabajar con el Yun). Para todos estos proyectos, he utilizado el Arduino IDE Versión 1.5.6-r2, pero todas las nuevas versiones deben trabajar también. Puede descargar el IDE Arduino en http://arduino.cc/en/main/software#toc3. Usted también necesitará un servidor Web que se ejecuta en su computadora para algunos de los proyectos. YO recomendamos que utilice un software que integra un servidor web y una base de datos, y que se encarga de todos los detalles para us ted. Si está utilizando Windows, le recomiendo usar EasyPHP, que está disponible en http://www.easyphp.org/. Bajo OS X, le recomiendo usar MAMP, que está disponible en http://www.mamp.info/. Con Linux, puede seguir las instrucciones para instalar un servidor web proporcionada en http://doc.ubuntu-fr.org/lamp. Asegúrese de que el servidor se está ejecutando en este momento; vamos a utilizarlo en varios de los proyectos en este libro. Todos los proyectos se supone que su placa Arduino Yun ya está configurado y conectado a su red Wi-Fi. Para configurar y conectar el Yun a su red Wi-Fi red, hay sólo unos pocos pasos a seguir. El primero es para tapar el Arduino tablero en la pared y espere un momento. Después de un tiempo, debería ver que una nueva red Wi-Fi ha aparecido en la lista de Las redes Wi-Fi de su ordenador, creadas por el Yun. Conectarse a él, abrir un navegador, y escriba el siguiente comando: arduino.local
Esto debería abrir una página servida por la placa Arduino Yun. Se le pedirá que introduzca una contraseña para su tablero Yun; por favor escribe uno que pueda recordar fácilmente, como usted lo necesitará muchas veces al intentar los proyectos en este libro. Luego, se le llevará a una nueva página que contiene información sobre su Tablero Yun. Puede cambiar el nombre de la tabla (que utilizaremos más adelante en todo el proyectos), y también establecen los parámetros de conexión Wi-Fi. Tienes que establecer estos parámetros de forma que la tarjeta se puede conectar a su red W i-Fi. Elija la red correcta de la lista, introduzca su contraseña y haga clic en Configurar y Reiniciar. [3]
Prefacio
El Yun se reiniciará y conectarse a su red. En este punto, también puede vuelva a conectar el ordenador a la red Wi-Fi local. Después de un tiempo, puede escribir el siguiente comando en tu navegador junto con el nombre que le dio su Placa Arduino: myarduinoyun.local
Usted debe tomar a la misma página 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. También tendrá que abrir la API REST del Yun. Esta configuración se establece en la página de configuración de la Yun, donde usted tiene que seleccionar OPEN, que está cerca ACCESO REST API. Reinicie el tablero Yun de nuevo cuando la opción se ha cambiado. Tenga en cuenta que usted tiene dos formas de programar su tablero Yun: puede conectarlo directamente en su ordenador a través de micro USB, o conectarlo a la pared a través de un adaptador USB y cargar los bocetos a través de Wi-Fi.
Quién este libro es para Si usted quiere construir aplicaciones interesantes para la Internet de los objetos utilizando el Plataforma Arduino, este es el libro para usted. Si usted está planeando construir algún fresco proyectos para automatizar su casa y monitorear en forma remota, le encantará este libro. Usted aprenderá cómo medir los datos, dispositivos de control, supervisar su hogar de forma remota usando una cámara USB, y construir un robot móvil controlado por Wi -Fi. En lo que se refiere a las habilidades, es te libro asume que usted ya tiene algún conocimiento de la plataforma Arduino (por ejemplo, con el Arduino Uno) y algunos conocimientos básicos de electrónica y programación. Tenga en cuenta que el l ibro también puede ser utilizado sin ninguna experiencia previa con el Arduino Yun y el bordo Máquina Linux.
Convenciones En este libro, usted encontrará una serie de estilos de texto que distingue entre diferentes tipos de información. Estos son algunos ejemplos de estos estilos, y un explicación de su significado. Las palabras de código 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 función llamada sendTempAlert eso se llama si la temperatura está por debajo del límite ". [4]
Prefacio
Un bloque de código se establece de la siguiente manera: [Default] Datos String = ""; datos = datos + horaCadena + "," + String (temperatura) + "," + String (humedad) + "," + String (nivel de luz);
Cuando queremos llamar su atención sobre una parte específica de un bloque de código, la líneas o elementos pertinentes están establecidas en negrita: [Default] si (cliente) { // Petición de Procesos proceso (cliente);
// Cerrar la conexión y recursos gratuitos. client.stop (); }
Cualquier entrada de línea de comandos o la salida se escribe de la siguiente manera: # Http: //myarduinoyun.local/arduino/digital/8/1
Nuevos términos y palabras importantes se muestran en negrita. Palabras que se ven en la pantalla, en los menús y cuadros de diálogo, por ejemplo, aparecen en el texto así: "Basta con hacer clic en interface.html, y la interfaz debe abrirse y hacerse a escala en el teléfono tamaño de pantalla. " Advertencias o notas importantes aparecen en un cuadro como este.
Consejos y trucos aparecen así.
Comentarios de los Los comentarios de nuestros lectores es si empre bienvenida. Háganos 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 títulos que realmente obtiene el máximo provecho de. Para enviarnos comentarios generales, basta con enviar un e-mail a
[email protected], y mencionar el título del libro a través 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 guía 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 máximo de su compra.
La descarga del código de ejemplo Puede descargar los archivos de código de ejemplo para todos los libros Packt que ha comprado de su cuenta al http://www.packtpub.com. Si usted compró este libro en otros lugares, se puede visitar http://www.packtpub.com/support y registrarse para tener los archivos enviados por correo electrónico directamente a usted. Todo el código de arriba-a-fecha de los cuatro proyectos de este libro también se puede encontrar en https://github.com/openhomeautomation/geeky-projects-yun.
La descarga de las imágenes a color del libro También le ofrecemos un archivo PDF que tiene imágenes en color de las capturas de pantalla / diagramas utilizado en este libro. Las imágenes en color le ayudarán a comprender mejor los cambios en la salida. Puede descargar este archivo desde: https://www.packtpub.com/sites/ default / files / descargas / 8007OS_ColoredImages.pdf .
Fe de Aunque hemos tomado todas las precauciones para asegurar la precisión 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 código que agradecería que le informa de esto a nosotros. Al hacerlo, usted puede salvar a los demás lectores de la frustración y ayúdanos a mejorar versiones posteriores de esta libro. Si encuentra alguna errata, por favor informe al visitar http: //www.packtpub. com / support, La selección de su libro, al ha cer clic en el Formulario de presentación de erratas enlace, y entrar en los detalles de su fe de erratas. Una vez que su fe de erratas se verifica, por su presentación será aceptado y la fe de erratas se cargará en nuestro sitio web, o añadirse a ninguna lista de errata existente, en la sección de erratas de ese título.
[6]
Prefacio
Piratería La piratería de material de derechos de autor en Internet es un problema constante en todos los medios. En Packt, nos tomamos muy en serio la protección de nuestros derechos de autor y licencias. Si tu venir a través de las copias ilegales de nuestras obras, en cualquier forma, en Internet, por favor proporcionarnos la dirección de ubicación o sitio web nombre de inmediato para que podamos presentar un recurso. Por favor contacte con nosotros en
[email protected] con un enlace a la sospecha material pirateado. Apreciamos su ayuda en la protección de nuestros autores, y nuestra capacidad para lograr que contenido valioso.
Preguntas Puede ponerse en contacto con nosotros en
[email protected] si usted está teniendo un problema con cualquier aspecto del libro, y haremos nuestro mejor esfuerzo para resolver el problema.
[7]
La construcción de una Estación Meteorológica Conectado a la nube
Este capítulo le dará a conocer las características de gran alcance de la Arduino Yun placa electronica. En este capítulo, usted aprenderá cómo crear un clima sencillo estación que enviará datos a la nube u tilizando las características 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á cómo 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 dónde 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 cálculo de Google Docs, donde se registrarán a lo largo de con los datos de medición. Dentro de esta hoja de cálculo, 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 electrónico automatizado basado en el grabado datos. Por ejemplo, a usted le gustaría 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 capítulo 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 información en tiempo real acerca de su casa.
La construcción de una estación meteorológica conectada a la nube
Después de completar este capítulo, usted será capaz de aplicar l o que ha aprendido a otra proyectos que las mediciones sólo inclemencias del tiempo. Se puede aplicar lo que se ve en este capítulo 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 s iguiente imagen:
El hardware y el software necesarios componentes Por supuesto, usted necesita tener su placa Arduino Yun listo en su escritorio, junto con un cable micro USB para hacer la programación y las pruebas iniciales. Además, se recomienda que dispone de una toma de corriente al adaptador micro USB para que pueda encenderse Arduino Yun directamente de la pared sin tener el ordenador tumbado alrededor. Esto será útil al final del proyecto, como usted quiere que su Placa Arduino Yun para realizar mediciones de forma autónoma.
[10]
Capítulo 1
A continuación, tendrá los diferentes sensores que se utilizarán para detectar datos sobre el medio ambiente. Para este proyecto, vamos a utilizar un sensor para medir DHT11 temperatura y humedad y una simple célula fotoeléctrica 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. También puede utilizar un sensor DHT22, que es más preciso, ya que el Biblioteca Arduino es el mismo para ambos sensores. Hay varios fabricantes para éstos sensores, pero se puede encontrar fácilmente, por ejemplo, en Sparkfun o Adafruit. Para el fotocélula, se puede utilizar cualquier marca que usted desea; sólo 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 fotocélula, necesitaremos una resistencia de 4.7k Ohm y una resistencia de 10k Ohm también. Usted también necesitará un pequeño tablero con al menos dos carriles de alimentación en el lado y algunos cables de puente entre machos para hacer la eléctrica conexiones entre los diferentes componentes. En cuanto al software, necesitará la última versión beta de la Arduino IDE, que es el único IDE que soporta la placa Arduino Yun (usamos la versión 1.5.5 cuando haciendo este proyecto). También 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.
Conexión de los sensores a la Arduino Tablero Yun Antes de hacer nada relacionado con la Web, primero asegúrese de que nuestro hardware está trabajando correctamente. Vamos a hacer las conexiones de hardware correctos entre los diferentes componentes y escribir un simple boceto Arduino para probar todos estos sensores individualmente. Al hacer esto, nos aseguraremos de que usted haga todo el hardware conexiones correctamente, y esto va a ayudar mucho si se encuentra con problemas en la próxima secciones de este capítulo que utilizan bocetos Arduino más complejas. Las conexiones de hardware necesarios para nuestro proyecto son en realidad muy simple. Tenemos que conectar el sensor de DHT11 y luego la parte responsable de la medición de nivel de luz con la fotocélula realizando los siguientes pasos: 1. En primer lugar, nos conectamos + 5V pin de la placa Arduino Yun al carril rojo en el tablero y el conector de tierra al carril azul.
[11]
La construcción de una estación meteorológica conectada a la nube
2. Luego, conecte el pin número 1 del sensor DHT11 al carril rojo en el protoboard y el pin número 4 a la barandilla azul. Además, conecte el número de pin 2 del sensor al pin número 8 de la placa Arduino Yun. 3. Para completar las conexiones del sensor DHT11, sujetar la resistencia de 4.7k Ohm entre números de los pines 1 y 2 del sensor. Para la fotocélula, primero poner la célula en serie con la resistencia de 10k Ohm en el protoboard. Esta resistencia de caída se asegurará de que durante la operación, si hay hay luz en absoluto, la tensión visto por la placa Arduino será 0V. A continuación, c onecte el otro extremo de la fotocélula al carril de color rojo en el tablero y el final de la resistencia a la tierra. Por último, conecte el pin c omún a la placa Arduino Yun A0 pin analógico. La siguiente imagen hecha con el software Fritzing resume la conexiones de hardware:
Ahora que las conexiones de hardware se hacen, vamos a trabajar en las pruebas de los sensores sin subir nada a la Web. Vamos a través de las partes importantes de el código. En primer lugar, tenemos que importar la biblioteca para el sensor DHT11, de la siguiente manera: #include "DHT.h"
[12]
Capítulo 1
Entonces, tenemos que declarar un par de variables que almacenará las mediciones, como se muestra en el siguiente código. Estas variables se declaran como flota porque la DHT vuelve biblioteca sensor flotan números. int nivel de luz; flotar la humedad; flotar temperatura;
También, podemos definir el pin de sensor y tipo de sensor de la siguiente manera: #define DHTPIN 8 #define DHTTYPE DHT11
Crear la instancia de DHT como sigue: DHT DHT (DHTPIN, DHTTYPE);
Ahora, en el preparar () parte del dibujo, tenemos que iniciar la conexión en serie, como sigue: Serial.begin (115.200);
A continuación, con el fin de inicializar el sensor de DHT, tenemos lo siguiente: dht.begin ();
En el loop () parte, vamos a realizar las diferentes mediciones. En primer lugar, vamos a calcular la temperatura y la humedad, de la siguiente manera: humedad float = dht.readHumidity (); temperatura del baño = dht.readTemperature ();
A continuación, medir el nivel de luz, como sigue: int nivel de luz = analogRead (A0);
Por último, es la impresión de todos los datos en el monitor de serie, como se muestra en el siguiente código: Serial.print ("Temperatura:"); Serial.println (temperatura); Serial.print ("Humedad:"); Serial.println (humedad); Serial.print ("Nivel de luz:"); Serial.println (nivel de luz); Serial.println ("");
[13]
La construcción de una estación meteorológica conectada a la nube
Repita esto cada 2 segundos, como se muestra: retardo (2000);
El esquema completo de esta parte se puede encontrar en https://github.com/ openhomeautomation / geek-proyectos-yun / árbol / maestro / chapter1 / sensors_ prueba.
Ahora es el momento de probar el boceto y subirlo a la placa Arduino. Entonces, abierta el monitor de serie y usted debe tener la información que proviene de los sensores son aparece, como se muestra en la siguiente captura de pantalla:
Si usted puede ver las diferentes mediciones que se muestran como en la anterior pantalla, significa que usted ha hecho las conexiones de hardware correctas en su protoboard y que se puede proceder a las siguientes secciones de este capítulo. Si no es el caso, por favor revise todas las conexiones de nuevo individualmente siguiendo las instrucciones de esta sección. Por favor, asegúrese de que no ha olvidado el 4.7k Resistencia de Ohm con el sensor de DHT, ya que las mediciones de este sensor no funcionarán sin el.
La descarga del código de ejemplo Puede descargar los archivos de código de ejemplo para todos los libros Packt que tienes comprado a su cuenta en http://www.packtpub.com. Si tu comprar este libro en otros lugares, se puede visitar http: //www.packtpub. com / support y registrarse para tener los archivos enviados por correo electrónico directamente a usted. Todo el código de arriba-a-fecha de los cuatro proyectos de este libro también se puede encontrar en https://github.com/openhomeautomation/geeky-projects-yun.
[14]
Capítulo 1
Crear una cuenta de Temboo El siguiente paso de este proyecto es crear y configurar una cuenta en el servicio web Temboo, para que pueda utilizar la amplia gama de servicios prestados por Temboo subir datos a Google Docs y utilizar sus bibliotecas de Gmail y Twitter. Esta cuenta en realidad se utiliza en todo el libro para los otros proyectos también. Para ello, el primer paso es simplemente ir a la página web en Temboo http://temboo.com/. En la página principal, entra tu dirección de correo el ectrónico para registrar y haga clic en Contratar, como se muestra en la siguiente captura de pantalla:
A continuación se le pedirá que ingrese alguna información básica acerca de su cuenta, como su nombre de cuenta, como se muestra en la siguiente captura de pantalla:
A continuación, se le pedirá que cree su primera aplicación. Asegúrese de guardar los detalles de su cuenta, como el nombre de su primera aplicación 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 aplicación, puede siempre acceder a estos datos en el Mi Cuenta sección del sitio web Temboo haciendo clic en el GESTIONAR botón 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 específicamente para la placa Arduino y Yun cargar algunos datos a la nube. [15]
La construcción de una estación meteorológica conectada a la nube
El envío de datos a Google Docs y mostrarlo En esta sección, vamos a usar nuestra primera biblioteca Temboo (llamado Choreo) a subir las mediciones de la Arduino Yun a la Web y registrar los datos en una Google Docs hoja de cálculo. En primer lugar, vamos a echar un vistazo a lo que un Choreo es y cómo se puede generar el código para la placa Arduino Yun. Si usted va a la página principal Temboo, verá que usted puede elegir diferentes plataformas y lenguajes, como Arduino, JavaScript o Python. Cada uno de estos enlaces le permitirá seleccionar un Choreo, que es un dedicado biblioteca escrito para la plataforma que usted eligió y puede interactuar con un servicio web determinada tales como Google Docs. Para la plataforma Arduino, Temboo incluso ofrece para generar todo el código para usted. Puede hacer clic en el icono de Arduino en el sitio web Temboo y luego haga clic en Arduino Yun; obtendrá acceso a una interfaz paso a paso para generar el código. Sin embargo, como queremos obtener el control completo de nuestro dispositivo y escribir nuestro propio código, no vamos a utilizar esta característica para este proyecto. Google Docs es muy conveniente, ya que es una línea (y gratis) versión del popular Software Office de Microsoft. La principal diferencia es que, ya que todo está en la nube, usted no tiene que almacenar archivos de forma local o guardarlos-Todo se hace en línea. Para nuestro proyecto, la ventaja es que se puede acceder a estos archivos de forma remota desde cualquier web navegador, incluso si no está en el equipo h abitual. Sólo tiene su Google nombre de cuenta y la contraseña y puede acceder a todos sus archivos. Si usted no tiene una cuenta de Google, puedes crear uno en menos de cinco minutos en https://drive.google.com/. Esto también creará una cuenta para el servicio de Gmail, que también vamos a utilizar más adelante. Por favor, asegúrese de que usted tiene su nombre de usuario y contraseña de Google Docs como usted van a necesitar pronto. Antes de empezar a escribir código Arduino, tenemos que preparar un Google Docs hoja de cálculo que será la sede de los datos. Basta con crear una nueva en la raíz de su Cuenta de Google Docs; puede que el nombre lo que quieras (por ejemplo, Yun). Esto es hecho desde la página principal de Google Docs s ólo hacer clic en Crear.
[16]
Capítulo 1
En la hoja de cálculo, es necesario configurar el nombre de las columnas de los datos que s erán conectado; esto es, Tiempo,Temperatura,HumedadY Nivel de luz. Esto se muestra en la siguiente captura de pantalla:
Ahora, vamos a empezar la construcción del boceto Arduino dentro del IDE de Arduino. Primero necesitamos para importar todas las librerías necesarias, de la siguiente manera: #include
#include #include
La Puente biblioteca es algo que se introdujo para la placa Arduino Yun y es responsable de hacer la interfaz entre la máquina Linux del Yun y el procesador Atmel, donde nuestro boceto Arduino se ejecutará. Con esta biblioteca, es posible utilizar la potencia de la máquina Linux derecha dentro del boceto Arduino. La Proceso biblioteca se utiliza para ejecutar algunos programas en el lado de Linux, y la Temboo archivo contendrá toda la información que se refiere a su cuenta Temboo. Por favor, vaya dentro de este archivo para introducir la información correspondiente a su propio cuenta. Esto es como se muestra en el siguiente código: #define TEMBOO_ACCOUNT "temboo_account_name" // Su Temboo cuenta nombre #define TEMBOO_APP_KEY_NAME "temboo_app_name" // Su Temboo clave de aplicación nombre #define TEMBOO_APP_KEY "temboo_api_key" // La llave aplicación Temboo
Tenga en cuenta que también incluimos un modo de depuración en el boceto que puede fijar a verdadero si quieres un poco la salida de depuración que se imprimirán en el monitor serie. Sin embargo, para una operación autónoma de la tablero, le sugerimos que desactive este modo de depuración para ahorrar algo de memoria dentro de Yun.
En el boceto, entonces tenemos que introducir la información d e Google Docs. Necesitas poner su nombre de usuario y contraseña aquí, junto con el nombre de la hoja de cálculo de Google donde desea que los datos que se registran, como se muestra en el siguiente código: const Cadena GOOGLE_USERNAME = "sunombredeusuario"; const Cadena GOOGLE_PASSWORD = "YourPassword"; const Cadena SPREADSHEET_TITLE = "Yun"; [17]
La construcción de una estación meteorológica conectada a la nube En el preparar () parte del dibujo, ahora estamos empezando el puente entre el Linux
máquina y el microcontrolador Atmel ejecutando la siguiente línea de código: Bridge.begin ();
También estamos comenzando un proceso de fecha para que nosotros también podamos registrar los datos de cuando cada la medición se registró, como se muestra en el siguiente código: tiempo = millis (); if (! date.running ()) { date.begin ("fecha"); date.addParameter ("+% D-% T"); date.run (); }
La fecha será en el formato: fecha del día seguido por el tiempo. El proceso de la fecha estamos utilizando aquí es en realidad una utilidad muy común para Linux, y usted puede buscar la documentación de esta función en la Web para obtener más información sobre el período distinto y formatos de tiempo que puede utilizar. Ahora, en el loop () parte del dibujo, enviamos las mediciones de forma continua usando la siguiente función: runAppendRow (nivel de luz, temperatura, humedad);
Vamos a entrar en los detalles de esta función. Comienza declarando la Choreo (el Temboo servicio) que vamos a utilizar: TembooChoreo AppendRowChoreo;
La función anterior es específico de las hojas de cálculo de Google Docs y obras de el envío de un conjunto de datos separados po r comas en una fila dada. Hay Choreos pa ra todos los servicios que se conecta a Temboo, como Dropbox y Twitter. Por favor, consulte a las páginas de documentación Temboo para obtener los detalles sobre este específico Choreo. Después de declarar la Choreo, hay que añadir los diferentes parámetros de la Choreo como insumos. Por ejemplo, el nombre de usuario Google, como se muestra en la siguiente línea de código: AppendRowChoreo.addInput ("nombre de usuario", GOOGLE_USERNAME);
Lo mismo se hace con los otros parámetros necesarios, como se muestra en el siguiente código: AppendRowChoreo.addInput ("Password", GOOGLE_PASSWORD); AppendRowChoreo.addInput ("SpreadsheetTitle", SPREADSHEET_TITLE);
[18]
Capítulo 1
La parte importante de la función es cuando realmente formatear los datos para que pueda se adjuntará a la hoja de cálculo. Recuerde, los datos tienen que ser delimitado utilizando comas de forma que se añade a las columnas correctas en la hoja de cálculo, como se muestra en el siguiente código: Datos String = ""; datos = datos + horaCadena + "," + String (temperatura) + "," + String (humedad) + "," + String (nivel de luz);
El Choreo continuación se ejecuta con la siguiente línea de código: unsigned int returnCode = AppendRowChoreo.run ();
La función se repite cada 10 minutos. De hecho, estos valores normalmente cambiar lentamente en el transcurso de un día, por lo que este es inútil a los datos que se está conectando continuamente. Además, recuerde que el número de llamadas a Temboo es limitado dependiendo del plan que usted eligió (1.000 llamadas al mes en una planta libre, la cual es aproximadamente 1 llamada por hora). Esto se hace usando la función de retardo, como sigue: retardo (600,000);
Para fines de demostración, los datos se registra cada 10 m inutos. Sin embargo, usted puede cambiar esto con sólo cambiar el argumento de la retardo () función. La completa código 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 cálculo 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. Después de un tiempo, usted debe ver el primer conjunto de medidas está registrando, como se muestra en la siguiente captura de pantalla:
[19]
La construcción de una estación meteorológica conectada a la nube
Con el fin de mostrar lo que se puede hacer uso de este proyecto, se utilizó el integrado capacidades de gráficos de Google Docs para trazar estos datos usando las medidas que obtenido durante más de 24 horas. La siguiente captura de pantalla es un extracto de los datos en bruto:
Ahora, para trazar realmente algunos datos, sólo tiene que utilizar el Insertar tablas función de Google Docs. Elegimos el sencillo Línea gráfico para nuestros datos. La siguiente captura de pantalla muestra los resultados para la temperatura y la humedad:
[20]
Capítulo 1
Hicimos lo mismo para las mediciones de nivel de luz, como se muestra en la siguiente captura de pantalla:
Estas tablas se pueden colocar automáticamente en sus respectivas hojas dentro de su hoja de cálculo y que, por supuesto, ser actualizado automáticamente a medida que llegan nuevos datos. También puede utilizar las capacidades de uso compartido de Google Docs para compartir estas hojas con nadie, por lo que también puede seguir las medidas de su casa.
Creación de alertas de correo electrónico En esta parte, no sólo vamos a construir sobre lo que hemos hecho en la sección anterior automatizados
con Google Docs, sino también crear algunas alarmas e-mails automáticos en la parte superior con un Google cuenta. Esta vez, vamos a utilizar la biblioteca Temboo que interactúa directamente con Gmail, en este caso, para enviar automáticamente un correo electrónico 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 calefacción en su casa. En comparación con el boceto previo Arduino, tenemos que añadir el destino de correo electrónico dirección. Usé mi propio domicilio a efectos de probar, pero por supuesto, este destino dirección puede ser completamente diferente a la de su cuenta de Gmail. Para ejemplo, si desea automáticamente por e-mail a alguien que es responsable de su casa si algo sucede, ejecute la siguiente línea de código: const Cadena TO_EMAIL_ADDRESS = "your_email_address";
[21]
La construcción de una estación meteorológica conectada a la nube
Tenga en cuenta que el envío de un correo electrónico 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 elección, para ejemplo, en una cuenta especial para estas alertas. También tenemos que fijar una temperatura limitar, en el boceto. En mi versión 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 límite de temperatura, como se muestra en la siguiente línea de código: int temperature_limit = 25,0;
En el loop () parte del dibujo, ¿qué cambios en comparación con el esquema de la sección anterior es que podemos comparar la temperatura registrada hasta el límite. Esto se hace con un simple si declaración: si (temperatura
Entonces, el mecanismo de alerta se produce en la nueva función llamada sendTempAlert que se llama si la temperatura está por debajo del límite. La función también toma una cadena como un argumento, que es el contenido del mensaje que será enviado cuando la alerta es disparado. Dentro de la función, empezamos de nuevo al declarar el ti po de Choreo que vamos a utilizar. Esta vez, el Choreo que vamos a utilizar es específica de Gmail y se utiliza para enviar un e-mail con el asunto y el cuerpo del mensaje, como se muestra en la siguiente línea de código: TembooChoreo SendEmailChoreo;
Así como el Choreo utilizamos para registrar datos en Google Docs, esta nueva Choreo requiere un conjunto dado de parámetros que se definen en la documentación oficial Temboo. Tenemos que especificar todos los insumos necesarios para la Choreo, por ejemplo, la dirección de correo de línea de asunto que usted puede personalizar, así, como se muestra en la siguiente línea de código: SendEmailChoreo.addInput ("Asunto", "ALERTA: Home Temperatura");
El cuerpo del mensaje se define en la siguiente línea de código: SendEmailChoreo.addInput ("MessageBody", mensaje);
Tenga en cuenta que la mensaje variable es la aprobada en el loop () parte del boceto y puede ser personalizado, así, por ejemplo, añadiendo el valor de la medida la temperatura. Por último, el Choreo se ejecuta con la siguiente línea de código: SendEmailChoreo.run ();
El código completo de esta parte se puede encontrar en https://github.com/ openhomeautomation / geek-proyectos-yun / árbol / maestro / chapter1 / temboo_alerts. [22]
Capítulo 1
Ahora, puede compilar y actualizar el boceto para su Yun. También puede ir a la Interfaz de Gmail para comprobar si hay nuevos mensajes de correo electrónico. Si la temperatura cae por debajo de la de hecho valor que establece como límite, lo siguiente es lo que debe recibir en su buzón:
Una vez más, se puede jugar con este bosquejo y crear alertas más 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 límites específicos y alertas para estos valores. También puede programar Arduino Yun para que los correos electrónicos que los datos en sí, a intervalos regulares, incluso si no hay se alcanza el límite de temperatura.
La fabricación de su junta pío Arduino Yun datos del sensor Finalmente, en la última parte de este proyecto, vamos a hacer la placa Arduino Yun enviar su mensajes propios en Twitter. Usted puede incluso crear una nueva cuenta de Twitter sólo para su Tablero Yun, y se puede decir a la gente que sabe de seguirlo en Twitter para que pu edan estar informado en todo momento sobre lo que está pasando en su casa! El proyecto se inicia en el sitio web de Twitter porque hay que declarar una nueva aplicación en Twitter. Entrar usando sus credenciales de Twitter y luego ir a https: // apps. twitter.com/. Ahora, haga clic en Crear nueva App para iniciar el proceso, como se muestra en la siguiente captura de pantalla:
[23]
La construcción de una estación meteorológica conectada a la nube
Usted tendrá que dar un nombre a su aplicación. Por ejemplo, hemos llamado a la nuestra MyYunTemboo. Usted tendrá que obtener una gran cantidad de información 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 pestaña, como se m uestra en la siguiente captura de pantalla:
Asegúrese de que el Nivel de acceso de su aplicación se establece en Leer Escribir, y Directo mensajes. Esto podría no ser activa por defecto, y en las primeras pruebas, mi placa Arduino no lo hizo responder más porque no me impuse correctamente estos parámetros. Por lo tanto, asegúrese de que su aplicación tiene el nivel de acceso correcto. Entonces, usted también va a necesitar un símbolo para su aplicación. Usted puede hacer esto de ir a la Su token de acceso sección. Desde esta sección, usted necesita para obtener la La señal de acceso y la Acceso secreto token. Una vez más , asegúrese de que el nivel de acc eso de su token es ajustado correctamente. Ahora podemos proceder a escribir el boceto Arduino, por lo que la placa Arduino puede Yun enviar automáticamente tweets. El Twitter Choreo es bien conocido por el uso de una gran cantidad de memoria en el Yun, por lo que este b oceto sólo tuitear datos sin datos de registro en tu cuenta de Google Docs. También recomiendo que desactive cualquier depuración mensajes en el puerto serie para preservar la memoria de su Yun. En el boceto, primero tendrá que definir su información aplicación de Twitter, como se muestra en el siguiente código: 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 periódicamente los datos acerca de su casa con la siguiente función: tweetAlert (nivel de luz, temperatura, humedad);
Esta función se repite cada minuto utilizando una retardo () función, como sigue: retardo (60000);
Por supuesto, este retraso se puede cambiar de acuerdo a sus necesidades. Vamos a ver los detalles de esta función. Comienza declarando la Choreo correcta para enviar actualizaciones en Twitter: TembooChoreo StatusesUpdateChoreo; [24]
Capítulo 1
Después se construye el texto que queremos tuitear como una cadena. En este caso, sólo formateados los datos del sensor en una cadena, como se muestra en el siguiente código: 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 también se declaró simplemente como una entrada de Twitter Coreo con la variable de cadena construimos anteriormente: StatusesUpdateChoreo.addInput ("StatusUpdate", tweetText);
El código completo de esta parte se puede encontrar en https://github.com/ openhomeautomation / geek-proyectos-yun / árbol / maestro / chapter1 / temboo_ gorjeo.
Ahora que el boceto Arduino está listo, podemos probarlo. Usted puede simplemente subir el código a su Arduino Yun, y espere un momento. Su consejo debe automáticamente 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 depuración en el puerto serie para liberar algo de memoria. Además, asegúrese de que ha introducido la correcta información sobre su aplicación de Twitter; es muy fácil 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 automatización, pero por supuesto, usted puede crear una cuenta dedicada Twitter para el proyecto por lo que muchas personas pueden seguir las últimas actualizaciones sobre su casa!
[25]
La construcción de una estación meteorológica conectada a la nube
También se puede combinar el código de esta parte con la idea de la sección 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 capítulo. Construimos un clima sencillo estación de medida basado en la placa Arduino Yun que envía los datos automáticamente en la nube. En primer lugar, usted aprendió cómo 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 cálculo de Google Docs, creado alertas de correo electrónico automatizados basados en nuestra mediciones, y se publican estas mediciones en Twitter. Para ir más lejos, se pueden combinar las diferentes partes de este proyecto conjunto, y También añadir muchas juntas Arduino Yun al proyecto, por ejemplo, en dos diferentes áreas de su casa. En el próximo capítulo, vamos a usar el poder de la Temboo bibliotecas de nuevo para enviar los datos de medición de potencia a la Web, por lo que el el consumo de energía de su hogar se puede controlar de forma remota.
[26]
Creación de un remoto Monitoreo de Energía 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 domótica es seguir el consumo de energía de sus aparatos eléctricos 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 energía 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 fácil de conectar a una red Wi-Fi local y estos también pueden comunicarse con dispositivos móviles a través de Bluetooth. Muchos fabricantes de productos electrónicos 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 versión de un dispositivo de este tipo y construir un interruptor de encendido y el medidor de la energía con el fin de activar un dispositivo eléctrico en y fuera, así como para seguir su consumo de energía. Los siguientes son los principales puntos fuertes de este capítulo: •
•
Conexión de un relé a una de las salidas digitales Arduino Yun y el uso de la Yun REST API para comandar este relé desde un navegador web El uso de un sensor de corriente analógica para obtener una medición de la corriente instantánea consumo desde el dispositivo que está conectado al relé, y calcular la consumo de potencia instantánea de esta medida
Creación de un Monitoreo de Energía Remota y Control Device •
•
El envío de estos datos a una hoja de cálculo de Google Docs de modo que se puede acceder de forma remota desde cualquier navegador web o desde la aplicación móvil de Google Docs, y calcular el consumo de energía y algunos otros datos útiles, tales como la costo de la energía total del dispositivo conectado a su proyecto Creación de una simple interfaz web para controlar la lámpara usando el ordenador o cualquier smartphone o tablet
El hardware y el software necesarios componentes La primera parte de este proyecto es conseguir las piezas necesarias que vamos a utilizar para nuestra medidor de consumo de energía y el proyecto interruptor de alimentación. Aparte de la Arduino Yun tablero, que será el "cerebro" del proyecto, que tendrá que tener dos partes principales listo en su escritorio en la construcción del proyecto. Estas piezas son el módulo de relé, que vamos a utilizar para cambiar la lámpara de encendido y apagado, y el sensor de corriente analógica, que se utiliza para medir la potencia y más tarde el consumo de energía de la lámpara. Un relé es básicamente un interruptor electromagnético utilizado en proyectos en los que tenemos que cambiar un muy gran tensión (110V o 230V) mediante un pequeño voltaje que el comando señal (5 V de la placa Arduino). Para el relé, se utilizó un módulo básico de relé de 5V desde Polulu, que puede cambiar hasta 10A y es más que suficiente para muchos hogar aparatos como lámparas. (En Europa, con 230, se puede conectar hasta 2300W). El propio módulo es simplemente un relé montado en una placa de circuito impreso junto con el componentes necesarios que son necesarios para operar el relé y algunas grandes cabeceras y traza para llevar hasta 10 si es necesario. Se utiliza un relé Omron G5LE-14-DC5. La siguiente imagen es el relé utilizado:
[28]
Capitulo 2
Por supuesto, puede utilizar cualquier módulo relé equivalente. Sólo asegúrese de que puede ser encendido / apagado utilizando una señal de 5V digitales como el que tenemos en la placa Arduino Yun y que puede cambiar al menos 5A, sólo para estar seguro para este proyecto. La lámpara somos utilizando en este proyecto sólo utiliza alrededor de 130 mA, pero es posible que desee conectar más grande dispositivos a su proyecto más adelante. Si usted quiere construir su propio módulo de una retransmisión, sólo tendrá que añadir 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 pequeñas 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 módulo de relé dedicado para este proyecto.
Entonces, es necesario un sensor de corriente para obtener el consumo de corriente instantánea de la lámpara. Se utilizó un módulo de ITead de estudio, que es básicamente un tablero del desbloqueo para el Sensor ACS712. Un tablero del desbloqueo es simplemente un tablero que se compone de un impreso placa de circuito, el propio chip, y todos los componentes necesarios para hacer el chip trabajar, tales como resistencias y condensadores. Este sensor proporciona una señal analógica como de salida, que es proporcional a la corriente medida. Esta señal puede entonces ser fácilmente convertido a la corriente correspondiente a la placa Arduino Yun. Vamos a adquirir esta señal analógica utilizando uno de los conversores analógico-digital integrado de la Yun bordo. Tenga en cuenta que también hay sensores de corriente no invasivo que pueda simplemente recortar alrededor del cable que se quiere medir, pero estos suelen ser más grande y no lo hacen integrarse bien con proyectos de Arduino. La siguiente es una imagen del sensor utilizado para este proyecto:
[29]
Creación de un Monitoreo de Energía Remota y Control Device
Al igual que para el módulo de relé, se puede utilizar cualquier sensor de corriente equivalente para este proyecto. Los parámetros importantes a considerar son la corriente máxima que puede fluir a través del sensor (5A para la que utilizamos) y la sensibilidad del sensor (185 mV / A para la que usamos). Si estos dos parámetros son similares al sensor I utilizado en este proyecto, o si son mejores, se puede utilizar el sensor. También es necesario para conectar la lámpara para el proyecto de alguna manera. Por supuesto, de una forma sería cortar directamente el cable de alimentación de la lámpara y conectar la lámpara directamente a nuestro proyecto, pero no me gusta esta opción porque es bastante c omplicado. Como mencioné en el introducción de este proyecto, yo no quiero que toques tu lámpara u otro dispositivo en de cualquier manera, y yo quiero que seas capaz de conectar la lámpara de nuevo a la toma de corriente en la pared si quieres. Usé dos cables de alimentación de modo que pueda conectar mi proyecto a la toma de corriente en un laterales y conectar la lámpara para el proyecto en el otro lado, al igual que lo haría con un dispositivo comercial compró fuera de la plataforma. Lo siguiente es lo que utilicé para el cable de alimentación donde voy a tapar la lámpara:
El siguiente es el cable de alimentación 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 conexión a tierra), pero como vamos a trabajar con cargas pequeñas, como las lámparas, la tercera cable no es necesario para este proyecto. En cuanto al hardware, también utilicé una pequeña pieza de un tablero para que el poder conexiones del relé y el sensor de corriente (porque la placa Arduino Yun sólo tiene un pin 5V). Pero, por supuesto, se puede utilizar un tablero de tamaño completo para que éstos conexiones. En cuanto al software, necesitará la última versión beta de la Arduino IDE, que es el único que apoya la placa Arduino Yun (I utiliza la versión 1.5.5, mientras que haciendo este proyecto).
Conexión de los componentes a la Tablero Yun Ahora vamos a conectar el módulo de relé y el sensor de corriente a la placa Arduino Tablero Yun, conecte el cable de alimentación que se enci enda la lámpara, y finalmente conectar todo a la toma de corriente en la p ared. Esta parte es un poco más difícil de lo que las conexiones de hardware en Capítulo 1, La c onstrucción de una estación meteorológica conectada a la Nube, ya que implica más pasos y utiliza un voltaje mayor que obligue a tomar algunas precauciones. Así que, por favor, tener cuidado y seguir todos los pasos. El primer paso es poner la placa Arduino Yun, el módulo de relé, y la corriente placa del sensor cerca uno del otro, como se muestra en la siguiente imagen:
[31]
Creación de un Monitoreo de Energía Remota y Control Device
Entonces, vamos a conectar la fuente de alimentación del módulo del relé y la corriente sensor. Como dije al principio de este capítulo, la placa Arduino Yun sólo tiene un 5V pin. Es por ello que he conectado las clavijas 5V de los dos módulos de una pequeña pieza de un breadboard primero y luego conectado este tablero al pasador Arduino 5V, como se muestra en la siguiente imagen:
Después de esto, tenemos que conectar los pines de tierra de los dos módulos 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 conexión de los dos módulos, tenemos que conectar sus respectivas pernos de la señal a la placa Arduino. El relé se controla a través del pin número 8 de la Placa Arduino Yun, así que conecte el pin de señal del módulo relé de precisar el número 8 de la junta Yun. El sensor de corriente tiene una salida analógica, por lo que tiene que estar conectado a una entrada analógica de la placa Arduino con el fin de adquirir la señal utilizando uno de los Yun integrado de analógico a digital. Este convertidor adquirirá la señal analógica que viene del sensor y la transforman en valores digitales que van de 0 a 1023 (que corresponder a un 10-bit de precisión). Conectar el pin de salida del módulo de sensor de corriente al pin A0 número de la placa Arduino Yun, como se muestra en la siguiente imagen:
[33]
Creación de un Monitoreo de Energía Remota y Control Device
Eso es básicamente todo por la parte de baja p otencia. Ahora, nos centraremos en la conexión de la proyectar a los dos cables de alimentación para que podamos conectar el proyecto en la pared enchufar y conectar la lámpara 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 lámpara, 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 través de Wi-Fi y dejar el proyecto para trabajar por su cuenta). A continuación, conecte la lámpara 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: asegúrese de que no hay conductores eléctricos están expuestos, todos los terminales de tornillo están atornillados correctamente y están sosteniendo los cables firmemente, y no hay conductores eléctricos desnudos se toquen entre sí.
Comprobación de las conexiones de hardware Ahora que las conexiones se hacen, vamos a probar todo antes de que iniciar el envío de los datos de consumo de energía a la nube y la construcción de la interfaz para controlar el relé. Vamos a probar los diferentes módulos como si el proyecto ya fue en operación. Para toda la duración de las pruebas, vamos a conectar el proyecto a la toma de corriente en la pared y la lámpara que queremos controlar. De esta manera, lo haremos asegúrese de que todas las conexiones de hardware son correctas antes de seguir adelante. El relé, por ejemplo, se controlará a través de Wi -Fi utilizando el Arduino Yun REST API, tal como lo será en la versión final del proyecto. Básicamente, nos limitaremos a enviar un comando desde el navegador web para configurar directamente el valor de la clavija a la que el relé está conectado. Más adelante en el proyecto, vamos a hacer esta llamada a través de una gráfica de usuario interfaz en lugar de realmente escribiendo el comando en un navegador. Para el sensor de corriente, vamos a leer simplemente el valor m edido en el A0 pin analógico utilizando el convertidor de analógico a digital de la Yun, convertir a un utilizable corriente, y luego calcular el valor de la corriente efectiva y la potencia efectiva como ya sabemos el valor de la tensión eficaz (110V o 230V dependiendo donde vives). Primero vamos a echar un vistazo a el código de Arduino. Se inicia mediante la importación de las bibliotecas adecuadas, como se muestra en el siguiente código. Necesitamos la Puente biblioteca para que podamos utilizar las funciones de la máquina Linux a bordo del Yun, y la YunServer y YunClient bibliotecas para que puedan recibir órdenes externas utilizando el API REST. APIs REST sólo se usan por los desarrolladores web, pero Arduino propone realidad un boceto que implementa una API para el Arduino Yun. Este bosquejo está directamente accesible en la biblioteca que viene con el Arduino Yun, y en este proyecto, he usado una versión modificada de este bosquejo de referencia. #include #include #include [35]
Creación de un Monitoreo de Energía Remota y Control Device
Para utilizar la API REST del Yun, tenemos que crear un YunServer ejemplo, como se muestra en la siguiente línea de código. Este servidor funcionará continuamente y esperar comandos entrantes. Servidor YunServer;
También tenemos que definir los pines que nuestros sensores están conectados, como se muestra en la siguientes líneas de código: #define CURRENT_SENSOR A0 #define RELAY_PIN 8
Una parte importante del boceto es declarar el valor de la tensión efectiva, que será utilizado más adelante para calcular la potencia eficaz del dispositivo, como se muestra en la siguiente línea de código. Este valor depende de donde usted se encuentre (por ejemplo, 230 para Europa, y 110 para los EE.UU.): flotar effective_voltage = 230;
En el preparar () parte, tenemos que empezar el puente entre el Arduino microcontrolador y la máquina Linux como sigue: Bridge.begin ();
También tenemos que iniciar el servidor web de la siguiente manera: server.listenOnLocalhost server.listenOnLocalhost (); server.begin ();
Entonces, la última y más importante parte de la preparar () función es para calibrar el sensor con el fin de determinar qué valor se devuelve cuando la corriente es nula. Esto es realizado por la siguiente línea de código: zero_sensor = getSensorValue ();
¡Entremos en esta función. Podríamos simplemente obtener una medición de la corriente sensor, pero que sería una mala idea. De hecho, el valor que se obtiene desde el sensor varía ligeramente con el tiempo, en torno a una media que en realidad queremos medir. Este es un comportamiento típico cuando se utilizan sensores analógicos que tienen sensibilidades importantes, como el que estamos utilizando aquí. Esta es la razón por la función básicamente muestras y promedios la señal a través de varias medidas con las siguientes líneas de código: for (int i = 0; i
[36]
Capitulo 2
Después de estas mediciones, volvemos a la media de la siguiente manera: volver avgSensor;
De esta manera, estamos seguros de obtener un valor estable de la lectura del sensor cada vez. Este valor se utiliza a continuación, a través 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 lámpara es nulo. La lectura del sensor real durante la operación del proyecto utiliza la misma función, por lo que siempre nos dan un establo medición. Ahora, viene la loop () parte del dibujo. En realidad se compone de dos partes: en la primera parte, vamos a recibir conexiones entrantes en el servidor web Yun que empezamos antes, y en la segunda parte, vamos a imprimir las mediciones que vienen desde el sensor de corriente. Por la parte del servidor web, podemos escuchar las conexiones de la siguiente manera: YunClient cliente server.accept = ();
Si se detecta un cliente, procesamos la solicitud con el siguiente código: si (cliente) { // Petición de Procesos proceso (cliente); // Cerrar la conexión y recursos gratuitos. client.stop (); }
No voy a detallar la Proceso función, 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 más acerca de la API REST Yun, se puede visitar el funcionario Documentación 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 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 función, ya que es la misma que la que se utilizó para obtener el valor de la corriente nula. Ahora podemos hacer algunos cálculos 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]
Creación de un Monitoreo de Energía Remota y Control Device
Esta es la amplitud de la corriente, que es una corriente sinusoidal. Esta fórmula se pueden encontrar en la hoja de datos del sensor, así como en la página web ITead Studio. Porque sabemos que esta información sobre el actual, para obtener la c orriente de efectivo, que sólo tendrá que dividir por la raíz cuadrada de dos de la siguiente manera: effective_value = amplitude_current / 1.414;
Para obtener el poder efectivo, entonces necesitamos transformar esta corriente en amperios por dividiendo el valor por 1000 y multiplicando con la tensión eficaz. También he añadido un operador valor absoluto para que el poder es siempre positiva, incluso cuando usted conectar el sensor de corriente para medir corrientes negativas, como sigue: abs (effective_value * effective_voltage / 1000);
El boceto termina imprimiendo todos estos valores en el monitor de serie y se repite cada 50 milisegundos. El esquema completo de esta parte está disponible en el GitHub repositorio del libro en https://github.com/openhomeautomation/geekyproyectos-yun / árbol / m maestro aestro / capítulo2 / sensors_test. Ahora usted puede cargar el boceto a la placa Arduino. Recuerde Recuerde que en este punto, la placa Arduino Yun debe ser alimentada por el ordenador o un poder USB adaptador, la lámpara debe estar enchufado al proyecto en el cable de poder femenino, y la proyecto en sí debe ser enchufado en la toma de corriente. El relé es bastante fácil de prueba; sólo tiene que ir a su navegador web y escriba el comando de la derecha. La API REST del Yun trabaja escribiendo el nombre de s u Placa Arduino Yun seguido de .local (En mi caso, yo nombré myarduinoyun). Entonces, si es seguido por arduino /, Se puede utilizar directamente los comandos para cambiar la valor de los pines de Arduino. Por ejemplo, para cambiar el valor de la clavija de relé 1, se necesitará agregar digitales / 8/1 , Como se muestra en la siguiente captura de pantalla:
El comando anterior significa que usted está llamando el comando digitalWrite (8, HIGH) utilizando la API REST. Usted debe escuchar al instante el relé cambiar y ver la luz se enciende. Inténtalo de nuevo mediante la adición de un 0después del comando
en lugar de un 1; el relé debe cambiar de nuevo y apagar l a luz. No te preocupes, como más tarde en el proyecto, vamos a construir una agradable interfaz gráfica de modo que usted no tiene que escribir esto ordenar en todo momento.
[38]
Capitulo 2
Ahora vamos a comprobar las medidas procedentes del sensor de corriente. Hacer Asegúrese de que la lámpara está apagada, restablezca el microcontrolador Arduino para asegurarse de que el boceto comienza desde el principio otra vez, y luego abrir el monitor de serie. Para ello, la Placa Arduino Yun tiene que estar conectado al ordenador mediante el cable USB. La Lo primero que debe ver es la medida para una corriente nula de la siguiente manera: Valor del sensor: 493.05
Entonces, el dibujo muestra continuamente el valor de la lectura del sensor, la corriente amplitud, la corriente eficaz, y el poder efectivo. Incluso si la corriente es nula, Recordemos que tenemos una media de las lecturas de los sensores durante varias mediciones, por lo que hay puede haber fluctuaciones de menor importancia en el valor, como se muestra en el siguiente código: Valor del sensor: 492.87 Amplitud de la corriente (en mA): 4.5 Valor eficaz de corriente (en mA) 3.2 Potencia efectiva (en W): 0.7
Si a continuación, encienda la lámpara sobre el uso de la llamada REST en su navegador, usted debe ver inmediatamente un cambio en las lecturas de corriente y potencia de la siguiente manera: Valor del sensor: 486.52 Amplitud de la corriente (en mA): -163.1 Valor eficaz de corriente (en mA) -115.4 Potencia efectiva (en W): 26.5
Si usted puede ver estos valores y su repetidor está respondiendo a las llamadas REST en su navegador, significa que el hardware funciona correctamente y se puede proceder a el siguiente paso. Si no funciona, el primer paso es comprobar las diferentes conexiones de el módulo de sensor y relé de corriente. También 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]
Creación de un Monitoreo de Energía Remota y Control Device
El envío de datos a Google Docs El primer paso es la creación de una hoja de cálculo de Google Docs para el proyecto. Crear un nuevo hoja, darle un nombre (I llamado a la mía Energía para este proyecto, pero puede que el nombre como lo desea), y establece el título de l as columnas que vamos a utilizar: Intervalo De Tiempo, Poder, y Energía (Que se calcula a partir de l as dos primeras columnas), como se muestra en la siguiente captura de pantalla:
También podemos calcular el valor de la energía utilizando las otras mediciones. Desde teoría, sabemos que durante un período determinado de tiempo, la energía se multiplica por el poder tiempo; esto es, Energía = potencia * Tiempo. Sin embargo, en nuestro caso, la energía se calcula a intervalos regulares, y queremos estimar el consumo de energía para cada uno de estos intervalos. En términos matemáticos, Esto significa que necesitamos para calcular la integral de la potencia como una función del tiempo. No tenemos la función exacta entre el tiempo y la energía que nos muestra esta función a intervalos de tiempo regulares, pero podemos estimar esta integral utilizando un método llamado la regla trapezoidal. Esto significa que, básicamente, estimamos la integral de la función, que es el área debajo de la curva de potencia, por un trapecio. La energía en el C2 célula en la hoja de cálculo se da entonces por la fórmula: Energía = (PowerMeasurement + NextPowerMeasurement) * TimeInverval / 2. Concretamente, en Google Docs, tendrá la fórmula, 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 medición a medición. Esto es debido al retardo introducido por la red. Para resolver este problema, vamos a transmitir el valor exacto junto con el poder la medición para obtener una mejor estimación de la consumo de energía. Entonces, es el momento de construir el boceto que vamos a utilizar para el proyecto. El objetivo de este bosquejo es básicamente que esperar para los comandos que provienen de la red, para cambiar la retransmitir o desactivar, y para enviar datos a la hoja de cálculo de Google Docs a intervalos regulares para realizar un seguimiento del consumo de energía. Vamos a construir el boceto en la parte superior del boceto construimos anteriormente así que voy a explicar lo que componentes necesitan ser añadido. En primer lugar, es necesario incluir su s credenciales Temboo con la siguiente línea de código: #include "TembooAccount.h" [40]
Capitulo 2
Ya que no podemos medir continuamente los datos de consumo de energía (los datos transmitimos sería enorme, y vamos a superar rápidamente nuestro límite de acceso mensual para Temboo!), al igual que en el boceto de prueba, tenemos que medirlo a sólo 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 código: 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 medición de potencia de retardo, como se puede adivinar, es el retraso en la cual el poder es medido. Sin embargo, no podemos usar una función de retardo simple para esto, ya que pondrá todo el boceto en espera. Lo que vamos a hacer en s u lugar es contar el número de ciclos de la bucle principal y luego activar una medición cuando la cantidad correcta de ciclos tiene ha alcanzado mediante un sencillo si comunicado. La cantidad correcta de ciclos está dada por la medición de potencia cycles_max variable. También tendrá que introducir sus credenciales de Google Docs mediante las siguientes líneas de código: const Cadena GOOGLE_USERNAME = "yourGoogleUsername"; const Cadena GOOGLE_PASSWORD = "yourGooglePass"; const Cadena SPREADSHEET_TITLE = "Power";
En el preparar () función, usted necesita para comenzar un proceso de fecha que mantener un seguimiento de la fecha de medición. Queremos mantener un seguimiento de la medición durante varios día, por lo que transmitirán la fecha del día, así como el tiempo, como se muestra en la siguiente código: tiempo = millis (); if (! date.running ()) { date.begin ("fecha"); date.addParameter ("+% D-% T"); date.run (); }
En el loop () función del boceto, comprobamos si es el momento para llevar a cabo una medición desde el sensor de corriente, como se muestra en la siguiente línea de código: si (power_measurement_cycles> power_measurement_cycles_max)
[41]
Creación de un Monitoreo de Energía Remota y Control Device
Si ese es el caso, se mide el valor del sensor, de la siguiente manera: flotar Sensor_value = getSensorValue ();
También recibimos el intervalo exacto de medición que vamos a transmitir, junto con la poder para obtener una estimación correcta del consumo de energía medido, como sigue: measurements_interval = millis () - last_measurement; last_measurement = millis ();
A continuación, calcular la potencia efectiva de los datos que ya tenemos. La amplitud de la corriente se obtiene de las mediciones del sensor como se muestra anteriormente. Entonces podemos obtener el valor efectivo de la corriente dividiendo esta amplitud por el raíz cuadrada de 2. Finalmente, como sabemos la tensión efectiva y que el poder es actual multiplicado por la tensión, podemos calcular la potencia eficaz, así, como se muestra en la siguiente código: // 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);
Después 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 función para enviar datos a Google Docs es casi la misma que la que vimos en Capítulo 1, La construcción de una estación meteorológica conectada a la nube. Vamos rápidamente a entrar en la detalles de esta función. Comienza declarando el tipo de biblioteca Temboo queremos utilizar, como sigue: TembooChoreo AppendRowChoreo;
Comience con la siguiente línea de código: AppendRowChoreo.begin ();
Entonces, necesitamos configurar los datos que se refiere a su cuenta de Google, por ejemplo, la nombre de usuario, como sigue: AppendRowChoreo.addInput ("nombre de usuario", GOOGLE_USERNAME);
[42]
Capitulo 2
El formato real de los datos se realiza con la siguiente línea de código: datos = datos + horaCadena + "," + String (intervalo) + "," + String (effectiveValue);
Aquí, intervalo es el intervalo de tiempo entre dos mediciones, y effectiveValue es el valor de la potencia medida que queremos iniciar sesión en Google Docs. El Choreo continuación se ejecuta con la siguiente línea de código: AppendRowChoreo.run ();
Por último, hacemos esto cada 50 milisegundos y obtenemos un incremento de la potencia contador de medición cada vez, de la siguiente manera: retardo (server_poll_time); power_measurement_cycles ++;
El código completo de esta sección está disponible en https://github.com/ openhomeautomation / geek-proyectos-yun / árbol / maestro / capítulo2 / energy_log.
El código para esta parte se ha completado. Ahora puede cargar el boceto y después de eso, abrir la hoja de cálculo de Google Docs y luego sólo tiene que esperar hasta que la primera medición llega. La siguiente captura de pantalla muestra la primera medición que tengo:
Después de unos momentos, me dieron varias mediciones registradas en mi Google Docs hoja de cálculo. También jugué un poco con el control de la lámpara por el encendido y apagado de manera que en realidad podemos ver los cambios en los datos medidos. La siguiente captura de pantalla muestra las primeras medidas:
[43]
Creación de un Monitoreo de Energía Remota y Control Device
Es bueno tener algunos datos registrados en la hoja de cálculo, pero es aún mejor para mostrar estos datos en un gráfico. Usé la incorporada en el trazado de las capacidades de Google Docs para trazar la el consumo de energía a través del tiempo en un gráfico, como se muestra en la siguiente captura de pantalla:
Utilizando el mismo tipo de gráfico, el usuario puede trazar el consumo de energía calculada datos a través del tiempo, como se muestra en la siguiente captura de pantalla:
De los datos que se obtiene en esta hoja de cálculo de Google Docs, también es muy fácil de conseguir otros datos de interés. Puede, por ejemplo, calcular el consumo total de energía con el tiempo y el precio que le costará. El primer paso es el cálculo de la suma de la columna de consumo de energía mediante la funcionalidad suma integrada de Google Docs.
[44]
Capitulo 2
Entonces, usted tiene el consumo de energía en Julios, pero eso no es lo que la electricidad empresa por lo general le cobra por. En su lugar, utilizan kWh, que es básicamente 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 país 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 continuación, sólo tiene que multiplicar el consumo total de energía en kWh con la precio por kWh. Este es el resultado con los datos que grabé. Por supuesto, ya que sólo tomó una muestra corta de datos, me costó casi nada al final, como se muestra en la siguiente captura de pantalla:
También puede estimar el / apagado tiempo en el dispositivo que se está midiendo. Para esto propósito, simplemente agregué una columna adicional al lado Energía nombre Encendido Apagado. YO simplemente se utiliza la fórmula = 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 condición de 0W contarlo como un estado de apagado debido a las pequeñas 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 número He aplicado estas en lapor hoja de cálculo de estados, Google Docs, y la siguiente de ocurrencias de fórmulas 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]
Creación de un Monitoreo de Energía Remota y Control Device
También es muy conveniente para representar estos datos en un gráfico. Para ello, he usado un gráfico circular, que creo que es la gráfica más adaptable para este tipo de datos. La siguiente captura de pantalla es lo que tengo con mis medidas:
Con el tipo anterior de gráfico, puede comparar el uso de una lámpara dada desde día a día, por ejemplo, para saber si ha d ejado las luces encendidas cuando estás no ahí.
La construcción de una interfaz para cambiar las luces Ahora que nuestro proyecto registra automáticamente los datos relativos al consumo de energía en encendido / apagado de forma remota Google Docs, es hora de volver al control del relé. Por ahora, hemos probado el relé entrar en un navegador web y escriba la función REST correcta con el nombre de la pin queremos cambiar.
Sin embargo, eso no es muy conveniente. Usted no quiere que escriba algo en tu web navegador cada vez que quieras encender una luz en su hogar. Lo que nos gustaría tener lugar es una bonita interfaz gráfica con botones que se pueden pulsar para activar una luz encendida o apagada. Sería aún mejor si esta interfaz se podía acceder no sólo desde un navegador web en su computadora, pero también desde cualquier teléfono 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 programación lenguajes para construir la mejor interfaz gráfica posible. Vamos a utilizar HTML para el página principal que albergará el botón de encendido / apagado, JavaScript para manejar las acciones de este botón, y PHP para transmitir el comando correcto al servidor Arduino. Somos También va a usar un poco de CSS para que la interfaz se ve mucho mejor y de forma automática adaptarse al dispositivo que está utilizando, por ejemplo, un teléfono inteligente. [46]
Capitulo 2
En primer lugar, vamos a tratar con el código HTML. Tenemos que importar la librería jQuery y el archivo que contendrá todo el código JavaScript de la siguiente manera: