Adafruit FONA MiniGSM es un módulo celular todo en uno que te permite agregar voz, texto, SMS y datos a tus proyectos. En este tutorial, Ubidots demostrará cómo enviar (POST) un valor simple a la API de Ubidots y cómo recibir (GET) el último valor de una variable de tu cuenta de Ubidots, utilizando un dispositivo Adafruit FONA.
Requisitos
Una tarjeta SIM activa con un plan de datos
Biblioteca Adafruit_FONA (Opcional)
Paso a Paso
1. Configuración de Hardware
2. Configuración del IDE de Arduino
3. Enviando (POST) Datos a Ubidots
4. Recibiendo (GET) Datos de Ubidots
5. Resumen
1. Configuración de Hardware
Siguiendo la tabla a continuación, ensambla las conexiones cableadas entre el Arduino UNO y el módulo FONA.
2. Configuración del IDE de Arduino
1. Verifica si tu dispositivo puede conectarse a internet. Para esto, descarga la biblioteca Adafruit_FONA y ejecuta el ejemplo FONAtest.
Para ejecutar el código de ejemplo, solo sigue los puntos a continuación:
Verifica tu código dentro del IDE de Arduino. Para hacer esto, en la esquina superior izquierda de nuestro IDE de Arduino verás el icono de "Marca de Verificación", presiona para verificar tu código.
Sube el código a tu Arduino UNO + módulo FONA. Para hacer esto, elige el icono de "flecha derecha" al lado del icono de "marca de verificación".
Para verificar la conectividad del dispositivo, abre el monitor serial seleccionando el icono de "lupa" en la esquina superior derecha del IDE de Arduino para ver los registros de conectividad.
NOTA IMPORTANTE: Antes de ejecutar el ejemplo FONAtest, asegúrate de tener un plan de datos activo. También necesitarás la configuración APN de tu operador móvil (APN, NOMBRE DE USUARIO, CONTRASEÑA). Deberías poder encontrar fácilmente estas configuraciones en Google o en el sitio web de tu operador.
2. Descarga la biblioteca Ubidots FONA e instálala. Para una explicación detallada de cómo instalar bibliotecas usando el IDE de Arduino, consulta esta guía.
3. Enviando (POST) Datos a Ubidots
Con el siguiente código de ejemplo podrás publicar las lecturas ANALÓGICAS tomadas del puerto analógico del Arduino UNO.
1. Para publicar tu primer valor en Ubidots, abre el IDE de Arduino y pega el código de ejemplo a continuación. Una vez que hayas pegado el código, necesitarás asignar tu único TOKEN de Ubidots y el APN (Nombre del Punto de Acceso) de tu proveedor celular con nombre de usuario y contraseña.
#include <UbidotsFONA.h>#include <SoftwareSerial.h>#define APN "xxxxxxxxxx" // El APN de tu operador#define USER "xxxxxxxxxx" // si tu apn no tiene nombre de usuario, déjalo en ""#define PASS "xxxxxxxxxx" // si tu apn no tiene contraseña, déjalo en ""#define TOKEN "Your_token_here" // Reemplázalo con tu token de Ubidots#define VARIABLE_LABEL_1 "temperature" // Reemplázalo con la etiqueta de tu variable de Ubidots#define VARIABLE_LABEL_2 "humidity" // Reemplázalo con la etiqueta de tu variable de Ubidots#define VARIABLE_LABEL_3 "pressure" // Reemplázalo con la etiqueta de tu variable de UbidotsUbidots client(TOKEN);void setup() { Serial.begin(115200); delay(2000); client.setDebug(true); // comenta esta línea para desactivar DEBUG //client.setDeviceName("new_device_name"); // descomenta esta línea para asignar un nombre de dispositivo diferente //client.setDeviceLabel("new_device_label"); // descomenta esta línea para asignar una etiqueta de dispositivo diferente while(!client.setApn(APN, USER, PASS));}void loop() { float value1 = analogRead(A0); float value2 = analogRead(A1); float value3 = analogRead(A2); client.add(VARIABLE_LABEL_1, value1); client.add(VARIABLE_LABEL_2, value2); client.add(VARIABLE_LABEL_3, value3); if(client.sendAll()){ Serial.println("valores enviados correctamente"); }}
2. Verifica tu código dentro del IDE de Arduino. Para hacer esto, en la esquina superior izquierda de nuestro IDE de Arduino verás el icono de "Marca de Verificación", presiona para verificar tu código.
3. Sube el código a tu Arduino UNO + módulo FONA. Para hacer esto, elige el icono de "flecha derecha" al lado del icono de "marca de verificación".
4. Para verificar la conectividad del dispositivo y los datos enviados, abre el monitor serial seleccionando el icono de "lupa" en la esquina superior derecha del IDE de Arduino para ver los registros de conectividad.
NOTA: Si no se ve respuesta, intenta desconectar tu Arduino y luego volver a conectarlo. Asegúrate de que la velocidad de baudios del monitor serial esté configurada a la misma que se especifica en el código (115200).
Solución de Problemas & Preguntas Frecuentes: Si el mensaje recibido en el monitor serial es “PDP DEACT - error” Tu proveedor de servicios puede estar bloqueando algunos puertos. Deberías llamar a tu proveedor de servicios o intentar con otra tarjeta SIM con un plan de datos activo.
5. Confirma tus datos en Ubidots. Ahora deberías ver los datos publicados en tu cuenta de Ubidots, localiza el dispositivo llamado "fona".
4. Recibiendo (GET) Datos de Ubidots
Con el siguiente código de ejemplo podrás obtener un valor de Ubidots para comenzar a controlar cualquier activo que desees.
1. Para comenzar a obtener valores de Ubidots, abre el IDE de Arduino y pega el código de ejemplo a continuación. Una vez que hayas pegado el código, asegúrate de asignar los siguientes parámetros:
APN (Nombre del Punto de Acceso) de tu proveedor celular con nombre de usuario y contraseña.
Etiqueta del Dispositivo del dispositivo que contiene la variable deseada a obtener
Etiqueta de la Variable de la variable deseada a obtener
#include <UbidotsFONA.h>#include <SoftwareSerial.h>#define APN "xxxxxxxxxx" // El APN de tu operador#define USER "xxxxxxxxxx" // si tu apn no tiene nombre de usuario, déjalo en ""#define PASS "xxxxxxxxxx" // si tu apn no tiene contraseña, déjalo en ""#define TOKEN "Your_token_here" // Reemplázalo con tu token de Ubidots#define DEVICE_LABEL "Your_device_label" // Reemplázalo con la etiqueta de tu dispositivo de Ubidots#define VARIABLE_LABEL "Your_variable_label" // Reemplázalo con la etiqueta de tu variable de UbidotsUbidots client(TOKEN);void setup() { Serial.begin(115200); delay(2000); client.setDebug(true); // comenta esta línea para desactivar DEBUG while(!client.setApn(APN, USER, PASS));}void loop() { float value = client.getValue(DEVICE_LABEL, VARIABLE_LABEL); Serial.print("El último valor es: "); Serial.println(value);}
2. Verifica & Sube 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, abre el monitor serial seleccionando el icono de "lupa" en la esquina superior derecha del IDE de Arduino para ver los registros de conectividad.
NOTA: Si no se ve respuesta, intenta desconectar tu Arduino y luego volver a conectarlo. Asegúrate de que la velocidad de baudios del monitor serial esté configurada a la misma que se especifica en el código (115200).
Solución de Problemas & Preguntas Frecuentes: Si el mensaje recibido en el monitor serial es “PDP DEACT - error” Tu proveedor de servicios puede estar bloqueando algunos puertos. Deberías llamar a tu proveedor de servicios o intentar con otra tarjeta SIM con un plan de datos.
4. En este punto, deberías poder ver el último valor recibido en Ubidots de la variable especificada en el firmware.
5. Resumen
Con este simple tutorial podemos POST & GET datos hacia/desde Ubidots con la facilidad del IDE de Arduino y un Arduino UNO + Módulo FONA. Si deseas encontrar más ejemplos para manejar valores de contexto o timestamp en tu solicitud, consulta la documentación de Ubidots con el FONA haciendo clic aquí.
¡Ahora es tiempo de crear Dashboards de Ubidots para visualizar tus datos y desplegar tu solución IoT! ¡Feliz Hackeo! :)
Otros lectores también han encontrado útil...