Medidor de IoT con Arduino, Yaler e IFTTT
Componentes y suministros
| × | 1 | ||||
| × | 1 | ||||
| × | 3 | ||||
| × | 1 |
Herramientas y máquinas necesarias
| ||||
| ||||
|
Aplicaciones y servicios en línea
|
Acerca de este proyecto
(De http://www.instructables.com/id/IoT-Gauge-with-Arduino-Yaler-IFTTT/)
Cómo construir un medidor de IoT basado en Arduino habilitado para la web con una API REST y conectarlo a la plataforma mash-up IFTTT.com, a través del servicio de retransmisión de Yaler.net *.
¿Qué tiene de emocionante esto? Con Maker Channel, IFTTT admite Webhooks personalizados para integrar proyectos DIY IoT. He estado esperando eso desde 2011 **.
Inspirado en WhereDial, un clásico de Internet de las cosas de bricolaje, el IoT Gauge muestra la ubicación actual de su propietario. Un poco como el Reloj Weasley de Harry Potter.
El diseño y el código del IoT Gauge son genéricos y también se pueden usar para mostrar, por ejemplo, las condiciones climáticas. La lógica reside en la nube, el medidor es solo un servo con una API.
Saludos, @tamberg
Descargas (para el Uno)
- Biblioteca Yaler Arduino, YalerEthernetServer.zip
- Código de Arduino Uno, IoTGaugeWebService.ino
*) Soy uno de los fundadores de Yaler.
**) Zapier , otra plataforma mash-up, siempre admitió Webhooks personalizados.
Paso 1:corte por láser y ensamblaje del medidor de IoT
Produciendo las piezas
- Descargue los archivos de diseño de IoT Gauge
- Corte con láser el diseño de madera contrachapada de 4 mm
- Grabe los nombres de las ubicaciones (o lo que necesite) o agréguelos con un bolígrafo
Montaje del indicador de IoT
- Agregue el escudo de Ethernet al Arduino (para el Uno)
- Atornille el Arduino a la placa base (observe su orientación)
- Agregue la placa frontal grande al servo, luego la placa frontal pequeña
- Pegue la placa base en ambas placas frontales, asegúrese de que todo esté alineado
- Pegue los indicadores a la placa frontal, asegúrese de que estén orientados correctamente
- Use cables de puente para conectar el servo al pin 9, 5V y GND del Arduino (o escudo)
- Agregue la manecilla del reloj (para calibrarla más adelante)
Paso 2:carga del código Arduino del servicio web de IoT Gauge
Servicio web simple
Controlar el indicador de IoT es bastante simple. Un servicio web (o API REST) está escuchando las solicitudes entrantes y configurando la posición del servo en consecuencia. El IoT Gauge es solo un servo "tonto". Mantener la lógica en la nube le permite intercambiar el "cerebro" más adelante, p. Ej. para mostrar las condiciones climáticas en lugar de una ubicación.
Acceso remoto al Arduino
Para dar acceso al servicio IFTTT Cloud al IoT Gauge, nuestra API REST de Arduino debe ser accesible y direccionable desde la Web. Los expertos podrían agregar una excepción a su firewall o enrutador. Pero como esto puede ser bastante complicado, usaremos un servicio de retransmisión *.
Instalación de Arduino Uno (para Yun, ver más abajo)
- Instale la biblioteca YalerEthernetServer.zip como se muestra en https://yaler.net/arduino
- Descargue el código Arduino Uno de IoTGaugeWebService.ino
- Asegúrese de utilizar una dirección MAC única
- Reemplazar RELAY_DOMAIN con su dominio de retransmisión (para obtener un dominio de retransmisión, regístrese para obtener una cuenta de prueba gratuita en Yaler.net)
- Sube el código a tu Arduino Uno
Instalación de Arduino Yun (para Uno, ver arriba)
- Instale YalerTunnel y habilite el acceso web como se muestra en https://yaler.net/arduino-yun
- Descargue el código IoTGaugeMailboxApi.ino Arduino Yun
- Sube el código a tu Arduino Yun
¿Por qué el código Yun es diferente del código Uno?
Yun proporciona una API REST incorporada llamada buzón de correo. Para hacer que esta API sea accesible desde la Web, usamos el demonio YalerTunnel Linux (que también es compatible con el cifrado SSL, a diferencia de Uno). Si se basa en lo que ya está disponible, puede simplificar su código.
Eche un vistazo a ambos programas y decida usted mismo. La API del buzón de Yun no es perfecta (y no es estrictamente RESTful, ya que permite que GET cambie los valores), pero se basa en un script que se ejecuta en el lado Linux de Yun, que usa menos de la preciosa memoria en el lado Arduino.
*) Si no está satisfecho con el uso de un servicio de retransmisión, simplemente elimínelo y (para el Uno) descomente el servidor local.
Paso 3:Probar el servicio web Arduino con Curl
Instalación de la herramienta de línea de comandos Curl en su computadora
- Descargue e instale Curl desde http://curl.haxx.se/
- Abra un shell en su computadora y pruebe Curl con
$ curl -v http://google.com/
Habilitación de la API de Arduino Yun (omitir para Uno)
- Encienda el Yun, espere un poco, luego visite http://arduino.local/
- Inicie sesión y haga clic en Configurar
- Desplácese hacia abajo y configure el acceso a la API REST en Abrir
- Haga clic en Configurar y reiniciar .
Prueba del indicador de IoT con Curl
- Asegúrese de que Arduino esté encendido y conectado a Internet
- Establezca la posición del servo en 3 (o cualquier otra posición de 1 a 5) con *
$ curl -vX POST http://RELAY_DOMAIN.try.yaler.io/mailbox/pos/3
(Reemplazar RELAY_DOMAIN con el dominio de retransmisión que usó antes) - Asegúrese de que el servo haya movido la mano a la posición deseada (ajuste la mano si es necesario)
- Asegúrese de obtener algo como
200 OK como respuesta a la llamada curl - Si obtiene
504 el Arduino no está en línea o ha habido un error tipográfico
¿Por qué debería probar su API con Curl?
Curl es un cliente HTTP estándar. Su navegador es excelente para probar solicitudes GET, y existen herramientas en línea para probar también solicitudes PUT y POST. Pero a veces el navegador agrega magia, como seguir redireccionamientos. Entonces, si desea asegurarse de que un cliente básico o una llamada de Webhook de terceros como la enviada desde IFTTT pueda acceder a su API de servicio web, Curl es excelente.
*) Para el Uno, POST / mailbox / pos / 3 funciona tan bien como PUT / servo? pos =3 porque el código que analiza la solicitud es bastante indulgente.
Paso 4:Conectando el Arduino al canal IFTTT Maker
Creando una nueva receta IFTTT (u omita para agregar una receta existente)
IFTT te permite crear recetas conectando un disparador a una acción.
- Visite https://ifttt.com/myrecipes/personal/new (regístrese si aún no lo ha hecho)
- Para elegir un canal de activación, busque, por ejemplo, "Dispositivo Android" o "Ubicación de iOS" y seleccione el ícono de canal
- Luego, elija un activador, p. ej. Se conecta a una red WiFi específica (para Android)
- Ingrese un nombre de red o una ubicación
- Al elegir el canal de acción, busque Maker canal y selecciónelo
- Luego, seleccione la acción Realizar una solicitud web
- Ingrese la URL http://REAY_DOMAIN.try.yaler.io/mailbox/pos/3 (Reemplazar RELAY_DOMAIN con el dominio de retransmisión que usó antes)
- Para el método, seleccione P OST
- Para el tipo de contenido, seleccione application / x-www-form-urlencoded
- El cuerpo se puede dejar vacío
Agregar una receta IFTTT existente
IFTTT permite a los usuarios publicar recetas. Aquí hay dos recetas para controlar su medidor de IoT:
- Abra la receta "Posición del indicador de IoT desde la ubicación WiFi de Android" aquí
- O la receta "Posición del indicador de IoT desde la ubicación de iOS" aquí
- O busque * recetas de "IoT Gauge", https://ifttt.com/recipes/search?q=IoT+Gauge
- Para agregar una instancia de la receta a sus recetas, haga clic en Agregar botón
- Ingrese el nombre o la ubicación de una red WiFi (o lo que solicite la receta)
- Reemplazar RELAY_DOMAIN en la URL con el dominio de retransmisión que utilizó antes
- Adapte el parámetro pos en la URL de 1 a 5 para que coincida con su ubicación
- Agregue otra instancia de la receta para cada ubicación
*) Parece que IFTTT aún no agrega recetas de canales de Maker a los resultados de búsqueda
Paso 5:Creación de un botón de hacer IFTTT para el indicador de IoT
Aplicaciones IFTTT Do
IFTTT también proporciona Do aplicaciones para iOS y Android. La aplicación te permite activar acciones manualmente. Esto puede ser excelente para probar sus otras recetas IFTTT.
A diferencia de las recetas normales de IFTTT, las recetas de la aplicación Do no pueden (¿todavía?) Compartirse o hacerse públicas. Entonces tendrás que crearlos desde cero.
Creación de un nuevo botón Hacer IFTTT
- Obtén la aplicación Do Button para Android o iPhone en https://ifttt.com/products/do/button
- Trabaje con las pantallas de introducción bastante molestas pero obligatorias (?)
- Use el ícono pequeño en la parte inferior derecha para que aparezca la lista de recetas
- Toca el letrero y luego Canales y busque el Maker canal
- Luego, seleccione la acción Realizar una solicitud web
- Ingrese la URL http://REAY_DOMAIN.try.yaler.io/mailbox/pos/3 (Reemplazar RELAY_DOMAIN con el dominio de retransmisión que usó antes)
- Para el Método seleccione PUBLICAR
- Para el Tipo de contenido seleccione application / x-www-form-urlencoded
- El cuerpo se puede dejar vacío
- Toque Agregar para crear el botón
- Una vez creada, la receta se puede editar en línea en https://ifttt.com/myrecipes/do
Eso es todo, gracias por leer y avíseme si tiene alguna pregunta o sugerencia.
Código
Bitbucket
Piezas y carcasas personalizadas
IoT_Gauge.zipEsquemas
Proceso de manufactura
- El reloj IV9 Numitron más simple de bricolaje con Arduino
- Juego de giroscopio Arduino con MPU-6050
- Salvando la vida acuática y luchando contra la contaminación del agua con IoT y AI
- MotionSense
- Rueda de medición simple de bricolaje con codificador giratorio
- Levitación electromagnética repulsiva Arduino
- Registrador de datos de globos meteorológicos con tecnología Arduino
- ArduFarmBot - Parte 2:Estación remota e implementación de IoT
- Reloj Flip Arduino de matriz de un solo LED
- Laboratorio de microcontroladores
- Contador Geiger de mano con Arduino Nano