Arduino es una plataforma de electrónica de código abierto basada en hardware y software fáciles de usar. La placa principal para Arduino es el Arduino UNO, que se conecta a una serie de diferentes shields para expandir sus posibilidades.
El Arduino UNO es una placa de microcontrolador basada en el ATmega328P, que contiene todo lo necesario para soportar el microcontrolador, incluyendo fuentes de alimentación simples a través de un cable USB, un adaptador de CA a CC, o mediante batería. Para obtener una visión general oficial del Arduino UNO, consulte su documentación aquí.
El Adafruit CC3000 viene en dos formas, una placa de expansión WiFi (la pequeña que se muestra en la imagen de arriba) y un Shield de Arduino (el más grande que se muestra en la imagen de arriba). Este artículo utiliza el Shield de Arduino, pero el firmware de muestra proporcionado es el mismo para cada uno de los módulos CC3000.
El shield WiFi Adafruit CC3000 tiene una pila TCP/IP incorporada que le permite comunicarse con servidores externos como Ubidots de manera muy simple. Para una revisión detallada del módulo CC3000, consulte su visión general oficial.
Siguiendo esta guía, podrá POST y GET datos a/de Ubidots utilizando el Shield WiFi CC3000 conectado a una placa Arduino UNO en solo un par de minutos!
Requisitos
Paso a Paso
1. Configuración de hardware
2. Configuración del Arduino IDE
3. Enviando (POST) datos a Ubidots
4. Recibiendo (GET) datos de Ubidots
5. Resumen
1. Configuración de hardware
1. Para comenzar, ensamble su shield CC3000 utilizando esta guía de Adafruit CC3000 Shield. Se requiere soldadura si su shield no está ya preparado.
2. Con el shield ensamblado, coloque el shield CC3000 sobre el Arduino UNO y aplique una presión suave para conectar los pines del shield con los encabezados de la placa. Ahora, con el Arduino Uno + shield CC3000, podrá conectarse a Internet a través de WiFi.
2. Configuración del Arduino IDE
ADVERTENCIA: Use la versión 1.6.4 de Arduino o más reciente con el CC3000, EXCEPTO para los sketches de actualización de firmware en la carpeta de ejemplos de la biblioteca. ¡Use 1.0.6 para esos!
ADVERTENCIA: ¡Asegúrese de que su Arduino esté alimentado por una fuente de alimentación externa de 1 amperio o más al usarlo con el CC3000! Alimentar un Arduino + CC3000 desde un puerto USB de computadora/portátil llevará a un comportamiento inestable y bloqueos porque el puerto USB no puede suministrar suficiente energía. :(
1. Descargue las bibliotecas requeridas e instálelas :
NOTA: Para una explicación detallada de cómo instalar bibliotecas usando el Arduino IDE, consulte esta guía.
3. Enviando (POST) datos a Ubidots
Con el siguiente código de muestra, podrá publicar las lecturas ANALÓGICAS tomadas del puerto analógico de la placa Arduino.
1. Para publicar su primer valor en Ubidots, abra el Arduino IDE y pegue el código de muestra a continuación. Una vez que haya pegado el código, debe asignar su único TOKEN de Ubidots, SSID (Nombre de WiFi) y Password de la red disponible.
/******************************** * Bibliotecas incluidas *******************************/#include <UbidotsCC3000.h>#include <Adafruit_CC3000.h>#include <ccspi.h>#include <SPI.h>#include <string.h>/******************************** * Constantes y objetos *******************************/#define WLAN_SSID "SSID_here" // Su SSID de WiFi, no puede ser más largo de 32 caracteres!#define WLAN_PASS "Your_pass_here" // Reemplace esto con su contraseña de WiFi// La seguridad puede ser WLAN_SEC_UNSEC, WLAN_SEC_WEP, WLAN_SEC_WPA o WLAN_SEC_WPA2#define WLAN_SECURITY WLAN_SEC_WPA2/* Asigna los parámetros de Ubidots */#define TOKEN "Your_token_here" // Reemplace esto con su token de Ubidots#define VARIABLE_LABEL "temperature" // Asigne la etiqueta de variable de Ubidots/* inicializa la instancia */Ubidots client(TOKEN);/******************************** * Funciones principales *******************************/void setup() { Serial.begin(115200); client.initialize(); client.wifiConnection(WLAN_SSID, WLAN_PASS, WLAN_SECURITY); //client.setDeviceLabel("my-new-device"); // Descomente esta línea para cambiar el nombre del dispositivo por defecto //client.setDebug(true); // Descomente esta línea para activar DEBUG}void loop() { /* Lecturas de sensores */ float value = analogRead(A0); /* Enviando valor a Ubidots */ client.add(VARIABLE_LABEL,value); client.sendAll(); delay(5000);}
2. Verifique su código dentro del Arduino IDE. Para hacer esto, en la esquina superior izquierda de nuestro Arduino IDE verá el ícono de "Marca de verificación"; presione para verificar su código.
3. Suba el código a su módulo Arduino UNO + CC3000. Para hacer esto, elija el ícono de "flecha derecha" junto al ícono de "marca de verificación".
4. Para verificar la conectividad del dispositivo y los datos enviados, abra el monitor serial seleccionando el ícono de "lupa" en la esquina superior derecha del Arduino IDE para ver los registros de conectividad.
NOTA: Si no se ve ninguna respuesta, intente desconectar su Arduino y luego volver a conectarlo. Asegúrese de que la velocidad de baudios del monitor serial esté configurada a la misma que se especifica en su código 115200.
5. Confirme sus datos en Ubidots. Ahora debería ver los datos publicados en su cuenta de Ubidots, ubicados en el dispositivo llamado "arduino-cc3000".
4. Recibiendo (GET) datos de Ubidots
Con el siguiente código de muestra, podrá obtener un valor de Ubidots para comenzar a controlar cualquier activo que desee.
1. Para comenzar a obtener valores de Ubidots, abra el Arduino IDE y pegue el código de muestra a continuación. Una vez que haya pegado el código, asegúrese de asignar los siguientes parámetros:
SSID (Nombre de WiFi) y Contraseña de la conexión de red disponible.
Etiqueta del dispositivo del dispositivo que contiene la variable que desea OBTENER.
Etiqueta de variable de la variable que desea OBTENER
/******************************** * Bibliotecas incluidas *******************************/#include <UbidotsCC3000.h>#include <Adafruit_CC3000.h>#include <ccspi.h>#include <SPI.h>#include <string.h>/******************************** * Constantes y objetos *******************************/#define WLAN_SSID "SSID_here" // Su SSID de WiFi, no puede ser más largo de 32 caracteres!#define WLAN_PASS "Your_pass_here" // Reemplace esto con su contraseña de WiFi// La seguridad puede ser WLAN_SEC_UNSEC, WLAN_SEC_WEP, WLAN_SEC_WPA o WLAN_SEC_WPA2#define WLAN_SECURITY WLAN_SEC_WPA2/* Asigna los parámetros de Ubidots */#define TOKEN "Your_token_here" // Reemplace esto con su token de Ubidots#define DEVICE_LABEL "Your_label_here" // Reemplace esto con la etiqueta de su dispositivo de Ubidots#define VARIABLE_LABEL "Your_label_here" // Reemplace esto con la etiqueta de su variable de Ubidots/* inicializa la instancia */Ubidots client(TOKEN);/******************************** * Funciones principales *******************************/void setup() { Serial.begin(115200); client.initialize(); client.wifiConnection(WLAN_SSID, WLAN_PASS, WLAN_SECURITY); //client.setDebug(true); // Descomente esta línea para activar DEBUG}void loop() { /* Obteniendo el último valor de una variable */ float value = client.getValue(DEVICE_LABEL, VARIABLE_LABEL); /* Imprimir el valor obtenido */ Serial.print("El valor obtenido es: "); Serial.println(value); delay(5000);}NOTA: Si no se ve ninguna respuesta, intente desconectar su Arduino y luego volver a conectarlo. Asegúrese de que la velocidad de baudios del monitor serial esté configurada a la misma que se especifica en su código.
2. Verifique & Suba el código a la placa siguiendo los mismos pasos proporcionados en el paso POST anterior.
3. Para verificar la conectividad del dispositivo y los datos que se están recibiendo, abra el monitor serial seleccionando el ícono de "lupa" en la esquina superior derecha del Arduino IDE para ver los registros de conectividad.
NOTA: Si no se ve ninguna respuesta, intente desconectar su Arduino y luego volver a conectarlo. Asegúrese de que la velocidad de baudios del monitor serial esté configurada a la misma que se especifica en su código.
4. En el monitor serial, podrá ver el último valor recibido en Ubidots de la variable especificada en el firmware.
5. Resumen
Con este simple tutorial, puede POST & GET datos a/de Ubidots con la facilidad del Arduino IDE y un Arduino UNO + Módulo CC3000. Si desea encontrar más ejemplos para manejar valores de contexto o timestamp en su solicitud, consulte la documentación de Ubidots con el CC3000 haciendo clic aquí.
¡Ahora es el momento de crear Dashboards de Ubidots para visualizar sus datos y desplegar su solución IoT! ¡Feliz hackeo! :)
Otros lectores también han encontrado útil...