Introduction: Como Subir Datos De Un Acelerómetro a Ubidots, Utilizando Arduino YÚN

About: Community manager @Ubidots, a startup empowering makers and hardware engineers to create applications for the Internet of Things #IoT

Arduino YÚN es un microcontrolador basado en el ATmega32u4 y el Atheros AR9331. Siendo el Atheros un procesador capaz de soportar un sistema operativo linux basado en OpenWrt, el Arduino YÚN cuenta con una version llamada OpenWrt-Yun. Además de tener un sistema operativo Linux el YÚN posee embebidos, un puerto Ethernet, WiFi, puerto USB-A, un slot para micro-SD, 20 entradas/salidas digitales, un cristal de 16MHz, y conexión micro USB. Esto hace que el YÚN sea un dispositivo bien completo para tareas de lecturas digitales y con su WiFi integrado permite una fácil integración con la API de Ubidots.

Step 1: Componentes

  1. Placa Arduino YÚN y cable micro USB para poder conectarlo al pc:
  2. Cable Ribbon, esto es para realizar las conexiones entre los dos dispositivos de forma más ergonómica
  3. MPU 6050, este dispositivo posee tres ejes de acción (X,Y,Z) posee también termómetro.

Step 2: Instala La Librería De Ubidots Para Arduino YÚN

  1. Descarga la librería desde este enlace.
  2. Abre tu IDE de Arduino y ve a la pestaña "Sketch" luego dale clic a "Importar librería" y luego a "Agregar librería"..
  3. Selecciona el archivo descargado.

Step 3: Conexiones

Asegúrate de tener bien conectados los pines, pues aveces puede resultar que algún cable se salga de su lugar

Step 4: Así Luce Ya Conectado

Una vez todo conectado en sus debidos pines, debe lucir así, la cinta aislante es para darle mayor protección al proyecto.

Step 5: Código Para El Yún

Lo primero que debes hacer es bastante sencillo, debemos organizar nuestro arduino YÚN con la librería de Ubidots, especialmente diseñada para este dispositivo. Con ésto podemos realizar un código fácil y rápido, debido a que solo tenemos que hacer uso de funciones creadas por el equipo de desarrollo de Ubidots. Pero antes de realizar el código en nuestro IDE de Arduino debemos ingresar unos archivos en la carpeta root de nuestro Arduino YÚN. Para esto les aconsejamos seguir los pasos de el siguiente link.

Una vez hagamos esos pasos podemos ir a nuestro IDE de Arduino y copiar el siguiente codigo:

// MPU-6050 Short Example Sketch
// By Arduino User JohnChi // August 17, 2014 // Modified by Mateo Vélez - Metavix // September 30, 2014 // Public Domain #include #include

#include const int MPU=0x68; //dirección I2C del MPU-6050 int16_t AcX,AcY,AcZ,Tmp,GyX,GyY,GyZ; String api = "5ca9b10038e49e0492c6794f9043f0918ddcbd26"; //tu API key String idvari = "53badbd77625425f8665d11b"; //tu ID de la variable a modificar Ubidots ubiclient(api); int reset = 0; void setup(){ Bridge.begin(); Console.begin(); Wire.begin(); Wire.beginTransmission(MPU); Wire.write(0x6B); // PWR_MGMT_1 register Wire.write(0); // set to zero (wakes up the MPU-6050) Wire.endTransmission(true); while (!Console); //se espera a que se establezca la conexión wireless Console.println("Ubidots client"); ubiclient.ubitoken(api); //se hace una petición de token a la API reset = 0; } void loop(){ Wire.beginTransmission(MPU); Wire.write(0x3B); // starting with register 0x3B (ACCEL_XOUT_H) Wire.endTransmission(false); Wire.requestFrom(MPU,14,true); // request a total of 14 registers AcX=Wire.read()<<8|Wire.read(); // 0x3B (ACCEL_XOUT_H) & 0x3C (ACCEL_XOUT_L) AcY=Wire.read()<<8|Wire.read(); // 0x3D (ACCEL_YOUT_H) & 0x3E (ACCEL_YOUT_L) AcZ=Wire.read()<<8|Wire.read(); // 0x3F (ACCEL_ZOUT_H) & 0x40 (ACCEL_ZOUT_L)

Console.print("AcX = "); Console.print(AcX); Console.print(" | AcY = "); Console.print(AcY); Console.print(" | AcZ = "); Console.print(AcZ);

ubiclient.save3_values("54299d5b7625425c68294d5b",String(AcX),"54299d667625425a05c44e68",String(AcY),"54299d727625425a8d471bce",String(AcZ)); reset++; // if (reset >20) // { // asm volatile (" jmp 0"); // reset = 0; // } }

Step 6: Finalizando...

Perfecto! Si has seguido los pasos anteriores, podrás tener listo tu propio sistema de monitoreo de aceleración, basado en Wi-Fi. Para conocer más tutoriales de Arduino puedes visitar el siguiente link.