Ir al contenido principal
Todas las coleccionesConecta tus dispositivos
Conectar un Arduino UNO + WIZnet WizFi310 a Ubidots a través de HTTP
Conectar un Arduino UNO + WIZnet WizFi310 a Ubidots a través de HTTP

Aprende a configurar y conectar el escudo WizFi310 con la Plataforma de Desarrollo de Aplicaciones IoT de Ubidots a través de HTTP.

Sergio M avatar
Escrito por Sergio M
Actualizado hace más de 2 meses

El WizFi310 Shield es un módulo WiFi WizFi310 integrado de hardware WIZnet, y viene configurado con pines compatibles con Arduino. Para la mayoría de las aplicaciones de monitoreo ambiental, este hardware es ideal ya que viene con sensores de temperatura, humedad y CDS integrados.

Para obtener detalles adicionales sobre las especificaciones del WizFi310, consulta la documentación oficial de WizWiki.

En el siguiente tutorial, Ubidots demostrará cómo configurar y programar el WizFi310 utilizando el IDE de Arduino para mostrar tus datos de manera eficiente utilizando la Plataforma de Desarrollo de Aplicaciones IoT de Ubidots.

Requisitos

Paso a Paso

  1. Configuración del Hardware

  2. Configurando el IDE de Arduino

  3. Enviando (POST) Datos a Ubidots

  4. Resumen

1. Configuración del Hardware

El WizFi310 Shield se inicializará mediante comandos AT enviados a través de la comunicación serial. Es importante mencionar que el WizFi310 Shield es compatible con el pinout de Arduino, pero para los propósitos de este tutorial nos comunicaremos con el Arduino MEGA a través de serial y, por lo tanto, no podremos depurar ningún mensaje porque si lo intentamos, la conexión se interrumpirá. Cableamos manualmente el shield y el Arduino para aprovechar los pines TX1 y RX1; si intentas bloquear las placas juntas, estos pines no se alinearán y no podremos ver nuestra respuesta de datos durante el proceso de aprovisionamiento.

Por favor, sigue los pasos a continuación cuidadosamente para asegurar la correcta funcionalidad entre el WizFi310 Shield y el Arduino:

NOTA: Decidimos usar el Arduino MEGA porque nos permite visualizar cualquier mensaje de depuración. Por favor, elige tu hardware basado en el entorno y los requisitos computacionales de tu integración.

1. Primero, asegúrate de que las configuraciones del DIP Switch estén en el lugar correcto:

  • SW1: 1. OFF - 2. OFF

  • SW5: 1. ON - 2. OFF - 3. OFF

  • SW6: 1. OFF - 2. OFF

  • Jumper Selector de UART: D0 - TXD | D1 - RXD

Consulta la imagen a continuación para una revisión visual:

2. Ahora, con las configuraciones correctas, utiliza cables macho-hembra para establecer las conexiones entre el shield y el Arduino. Por favor, consulta la tabla a continuación para establecer el cableado adecuado de los pines:

3. Con todo configurado, enciende el shield WizFi y el Arduino.

2. Configurando el IDE de Arduino

1. Descarga la última versión del IDE de Arduino si aún no lo tienes.

2. Ve al repositorio de la biblioteca para descargar la biblioteca de Arduino WizFi310. Para descargar la biblioteca, haz clic en el botón verde llamado "Clone or download" y selecciona "Download ZIP".

3. Ahora, de vuelta en el IDE de Arduino, haz clic en Sketch -> Incluir Biblioteca -> Agregar Biblioteca .ZIP.

4. Selecciona el archivo .ZIP de WizFi310_arduino_library y luego “Aceptar” o “Elegir”. Si no estás familiarizado con el funcionamiento y las operaciones de gestión de placas y bibliotecas en el IDE de Arduino, asegúrate de consultar esta Guía del Usuario de Ubidots.

5. Pega el código de ejemplo a continuación en el IDE de Arduino. Una vez que hayas pegado el código, asegúrate de asignar los parámetros requeridos: nombre de Wi-Fi y contraseña, además de tu Ubidots TOKEN único e individual.

#include <Arduino.h>#include "WizFi310.h"namespace {  char ssid[] = "xxxxxxxxxx"; // Asigna tu SSID de red  char pass[] = "xxxxxxxxxx";  // Asigna tu contraseña de red  char SERVER[] = "industrial.api.ubidots.com"; // Servidor de Ubidots  const char * TOKEN = "xxxxxxxxxx"; // Asigna tu TOKEN de Ubidots  const char * DEVICE_LABEL = "wiznet-shield"; // Etiqueta del Dispositivo Ubidots  const char * USER_AGENT = "wiznet";  const char * VERSION = "1.0";  const int PORT = 80;  int  status = WL_IDLE_STATUS; // estado de la radio Wifi  }WiFiClient client;void setup() {  Serial.begin(9600);  Serial1.begin(115200);    delay(6000);  Serial.print("Iniciando...");  Serial.println("WiFi inicializando");  WiFi.init(&Serial1);    if (WiFi.status() == 0) {     Serial.println("Error al configurar WiFi");    // no continuar    while(true)    ;  }  //intentar conectar a la red WiFi  while (status != WL_CONNECTED) {    Serial.print("[WiFi] Intentando conectar a WPA SSID: ");    Serial.println(ssid);    //Conectar a la red WPA/WPA2    status = WiFi.begin(ssid, pass);    Serial.println("¡Conectado!");  }    delay(1000);}void loop() {  int sensor_value = analogRead(A0);  Serial.println("Enviando valor del sensor...");  sendValue("light", sensor_value);  delay(10000);}void sendValue(const char * variable_label, int value) {    /* Construir el cuerpo para ser POST */  char* body = (char *) malloc(sizeof(char) * 100);  sprintf(body, "{\"%s\":%d}", variable_label, value);  /* Construye la solicitud HTTP para ser POST */  char* data = (char *) malloc(sizeof(char) * 300);  sprintf(data, "POST /api/v1.6/devices/%s", DEVICE_LABEL);  sprintf(data, "%s HTTP/1.1\r\n", data);  sprintf(data, "%sHost: industrial.api.ubidots.com\r\n", data);  sprintf(data, "%sUser-Agent: %s/%s\r\n", data, USER_AGENT, VERSION);  sprintf(data, "%sX-Auth-Token: %s\r\n", data, TOKEN);  sprintf(data, "%sConnection: close\r\n", data);  sprintf(data, "%sContent-Type: application/json\r\n", data);  sprintf(data, "%sContent-Length: %d\r\n\r\n", data, dataLen(body));   sprintf(data, "%s%s\r\n\r\n", data, body);  if (client.connect(SERVER, PORT)) {    client.print(data);  } else {    Serial.println("conexión fallida");  }    while (!client.available());    //Serial1.println("Leyendo..");  while (client.available()) {    char c = client.read();    Serial.print(c); // Monitoreo de Respuesta  }  client.flush();  client.stop();  free(body);  free(data);}int dataLen(char* variable) {  uint8_t dataLen = 0;  for (int i = 0; i <= 250; i++) {    if (variable[i] != '\0') {      dataLen++;    } else {      break;    }  }  return dataLen;}

6. A continuación, selecciona Arduino MEGA 2560 del menú Herramientas –> Placa .

7. Luego 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 ícono de "Marca de Verificación", presiona para verificar tu código.

8. Sube el código a tu Arduino MEGA. Para hacer esto, elige el ícono de "flecha derecha" junto al ícono de marca de verificación del punto 7 anterior.

9. Para verificar la conectividad del dispositivo, abre el monitor serial seleccionando el ícono de "lupa" en la esquina superior derecha de nuestro IDE de Arduino. Como notarás a continuación, la solicitud se envía al servidor de Ubidots y responde con 200 OK - lo que significa que se envió una solicitud válida.

3. Visualización de datos

1. Ingresa a tu cuenta de Ubidots para confirmar que los datos han sido recibidos. En la sección de dispositivos, localiza el dispositivo llamado "wiznet-shield" y visualiza tus datos.

2. La variable recibida es "light" que es la lectura del sensor CDS:

4. Resumen

Con este simple tutorial, podemos enviar datos a Ubidots con la facilidad del IDE de Arduino y un WizFi310. Ahora puedes modificar el código de ejemplo proporcionado para incluir lecturas de temperatura y humedad también y lanzar tu solución IoT con facilidad y WIZnet. :)

Otros lectores también han encontrado útil...

¿Ha quedado contestada tu pregunta?