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
Configuración del Hardware
Configurando el IDE de Arduino
Enviando (POST) Datos a Ubidots
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...