El kit de desarrollo SimpleLink™ Wi-Fi® CC3200 LaunchPad™ es una plataforma de desarrollo de evaluación para el microcontrolador inalámbrico CC3200 (MCU) de Texas Instruments; un MCU programable de un solo chip con conectividad Wi-Fi integrada.
Requisitos
Configuración
1. Descarga Energia IDE aquí e instálalo en tu PC.
Este tutorial asume que ya has cargado un programa en tu CC3200 launchpad antes. Si no estás seguro de esto, te recomendamos cargar el ejemplo básico “blink” para asegurarte de que puedes programar tu dispositivo.
2. Abre el Administrador de Placas desde el menú Herramientas -> Placa y instala la plataforma CC3200.
3. Ve a Herramientas -> Placa y selecciona LaunchPad w/ cc3200 (80MHz).
4. Descarga nuestra biblioteca aquí.
5. Ahora, haz clic en Archivo -> Incluir Biblioteca -> Agregar Biblioteca .ZIP
6. Selecciona el archivo .ZIP de Ubidots CC3200-LAUNCHXL y luego "Aceptar" o "Elegir"
7. Cierra el IDE de Energia y ábrelo nuevamente.
Configuración de Hardware
Antes de compilar tu placa, asegúrate de que los puentes de tu placa estén en el lugar correcto. La configuración a continuación funcionó para nosotros, pero te aconsejamos seguir las guías de Energia para asegurarte de que puedes programar tu placa:
Coloca un cable desde el pin “TCK” al pin 2 en los pines SOP
Para asegurarte de que puedes programar tu dispositivo, te recomendamos cargar el ejemplo básico "blink" antes de comenzar.
Cambiar nombre predeterminado
La biblioteca creará un nuevo dispositivo Ubidots llamado "CC3200", también asigna el mismo nombre para la etiqueta del dispositivo. Si deseas asignar una etiqueta de dispositivo diferente, por favor agrega a tu función setup() la línea a continuación:
client.setDeviceLabel("my-new-device")
Enviar valores a Ubidots
Para enviar un valor a Ubidots, ve a Sketch -> Ejemplos -> Ubidots CC3200-LAUNCHXL y selecciona el ejemplo "UbidotsSaveValuesHttp".
Actualiza tus credenciales de WiFi, asigna tu TOKEN de Ubidots y la etiqueta de variable donde se indica. Una vez que los parámetros estén asignados, sube el código. Luego, abre el monitor serial para verificar los resultados.
NOTA: Si no se ve respuesta, intenta desconectar la placa y luego volver a conectarla. Asegúrate de que la velocidad de baudios del monitor serial esté configurada a la misma que se especifica en tu código.
// Este ejemplo envía datos a múltiples variables a// Ubidots a través del protocolo HTTP./***************************************** Incluir Bibliotecas****************************************/#include "Ubidots.h"/***************************************** Definir Instancias y Constantes****************************************/const char* UBIDOTS_TOKEN = "..."; // Pon aquí tu TOKEN de Ubidotsconst char* WIFI_SSID = "..."; // Pon aquí tu SSID de Wi-Ficonst char* WIFI_PASS = "..."; // Pon aquí tu contraseña de Wi-FiUbidots ubidots(UBIDOTS_TOKEN, UBI_HTTP);/***************************************** Funciones Auxiliares****************************************/// Pon aquí tus funciones auxiliares/***************************************** Funciones Principales****************************************/void setup() { Serial.begin(115200); ubidots.wifiConnect(WIFI_SSID, WIFI_PASS); // ubidots.setDebug(true); // Descomenta esta línea para imprimir mensajes de depuración}void loop() { float value1 = random(0, 9) * 10; float value2 = random(0, 9) * 100; float value3 = random(0, 9) * 1000; ubidots.add("Variable_Name_One", value1); // Cambia por el nombre de tu variable ubidots.add("Variable_Name_Two", value2); ubidots.add("Variable_Name_Three", value3); bool bufferSent = false; bufferSent = ubidots.send(); // Enviará datos a una etiqueta de dispositivo que coincida con el ID del dispositivo if (bufferSent) { // Haz algo si los valores se enviaron correctamente Serial.println("Valores enviados por el dispositivo"); } delay(5000);}
Enviar valores con contexto
El siguiente ejemplo es para enviar un valor con contexto a Ubidots, creará la variable automáticamente con la etiqueta asignada por ti en el código.
Agrega tu TOKEN de Ubidots donde se indica, así como la configuración de WI-FI.
// Este ejemplo envía datos y contexto a una variable a// Ubidots a través del protocolo TCP./***************************************** Incluir Bibliotecas****************************************/#include "Ubidots.h"/***************************************** Definir Instancias y Constantes****************************************/const char* UBIDOTS_TOKEN = "..."; // Pon aquí tu TOKEN de Ubidotsconst char* WIFI_SSID = "..."; // Pon aquí tu SSID de Wi-Ficonst char* WIFI_PASS = "..."; // Pon aquí tu contraseña de Wi-FiUbidots ubidots(UBIDOTS_TOKEN, UBI_TCP);/***************************************** Funciones Auxiliares****************************************/// Pon aquí tus funciones auxiliares/***************************************** Funciones Principales****************************************/void setup() { Serial.begin(115200); ubidots.wifiConnect(WIFI_SSID, WIFI_PASS); // ubidots.setDebug(true); // Descomenta esta línea para imprimir mensajes de depuración}void loop() { float value = analogRead(A0); /* Agrega pares clave-valor de contexto */ ubidots.addContext("weather-status", "sunny"); ubidots.addContext("time", "11:40:56 pm"); /* Reserva memoria para almacenar el array de contexto */ char* context = (char*)malloc(sizeof(char) * 60); /* Construye el contexto con el array anterior para enviar a Ubidots */ ubidots.getContext(context); /* Envía la variable con el contexto */ ubidots.add("temperature", value, context);// Cambia por el nombre de tu variable bool bufferSent = false; bufferSent = ubidots.send(); // Enviará datos a una etiqueta de dispositivo que coincida con el ID del dispositivo if (bufferSent) { // Haz algo si los valores se enviaron correctamente Serial.println("Valores enviados por el dispositivo"); } free(context); delay(5000);}
Enviar valores con marca de tiempo
El siguiente ejemplo es para enviar un valor con marca de tiempo a Ubidots, creará la variable automáticamente con la etiqueta asignada por ti en el código.
Agrega tu TOKEN de Ubidots donde se indica, así como la configuración de WI-FI.
// Este ejemplo envía datos junto con la marca de tiempo en el estándar POSIX ms// a una variable a través de la API de Ubidots mediante el protocolo HTTP, TCP o UDP. /***************************************** Incluir Bibliotecas****************************************/#include "Ubidots.h"/***************************************** Definir Instancias y Constantes****************************************/const char* UBIDOTS_TOKEN = "..."; // Pon aquí tu TOKEN de Ubidotsconst char* WIFI_SSID = "..."; // Pon aquí tu SSID de Wi-Ficonst char* WIFI_PASS = "..."; // Pon aquí tu contraseña de Wi-FiUbidots ubidots(UBIDOTS_TOKEN);/***************************************** Funciones Auxiliares****************************************/// Pon aquí tus funciones auxiliares/**************************************** * Funciones Principales****************************************/void setup() { Serial.begin(115200); ubidots.wifiConnect(WIFI_SSID, WIFI_PASS); // ubidots.setDebug(true); // Descomenta esta línea para imprimir mensajes de depuración}void loop() { float value1 = analogRead(A0); unsigned long timestamp_seconds = 1571615253L; // Pon aquí tu marca de tiempo en segundos unsigned int timestamp_milliseconds = 0; // Pon aquí el número de milisegundos para desplazar tu marca de tiempo ubidots.add("temperature", value1, NULL, timestamp_seconds,timestamp_milliseconds); // Cambia por el nombre de tu variable bool bufferSent = false; bufferSent = ubidots.send(); // Enviará datos a una etiqueta de dispositivo que coincida con el ID del dispositivo if (bufferSent) { // Haz algo si los valores se enviaron correctamente Serial.println("Valores enviados por el dispositivo"); } delay(5000);}
Obtener valor de Ubidots
Para obtener el último valor de una variable de Ubidots, ve a Sketch -> Ejemplos -> Ubidots CC3200-LAUNCHXL y selecciona el ejemplo "UbidotsGetValueHttp".
Actualiza tus credenciales de WiFi, asigna tu TOKEN de Ubidots, la etiqueta del dispositivo y la etiqueta de variable de donde deseas obtener el valor.
Sube el código, abre el monitor serial para verificar los resultados.
NOTA: Si no se ve respuesta, intenta desconectar la placa y luego volver a conectarla. Asegúrate de que la velocidad de baudios del monitor serial esté configurada a la misma que se especifica en tu código.
// Este ejemplo recupera el último valor de una variable de la API de Ubidots// utilizando el protocolo HTTP./***************************************** Incluir Bibliotecas****************************************/#include "Ubidots.h"/***************************************** Definir Constantes****************************************/const char* UBIDOTS_TOKEN = "...";// Pon aquí tu TOKEN de Ubidotsconst char* WIFI_SSID = "..."; // Pon aquí tu SSID de Wi-Ficonst char* WIFI_PASS = "..."; // Pon aquí tu contraseña de Wi-Ficonst char* DEVICE_LABEL_TO_RETRIEVE_VALUES_FROM = "weather-station"; // Reemplaza por la etiqueta de tu dispositivoconst char* VARIABLE_LABEL_TO_RETRIEVE_VALUES_FROM = "humidity"; // Reemplaza por la etiqueta de tu variableUbidots ubidots(UBIDOTS_TOKEN, UBI_HTTP);/***************************************** Funciones Auxiliares****************************************/// Pon aquí tus funciones auxiliares/***************************************** Funciones Principales ****************************************/void setup() { Serial.begin(115200); ubidots.wifiConnect(WIFI_SSID, WIFI_PASS); // ubidots.setDebug(true); //Descomenta esta línea para imprimir mensajes de depuración}void loop() { /* Obtener el último valor de una variable como float usando HTTP */ float value = ubidots.get(DEVICE_LABEL_TO_RETRIEVE_VALUES_FROM,VARIABLE_LABEL_TO_RETRIEVE_VALUES_FROM); // Evalúa los resultados obtenidos if (value != ERROR_VALUE) { Serial.print("Valor:"); Serial.println(value); } delay(5000);}