Tutorial de cómo agregar conectividad WiFi a sus dispositivos IoT con nuestro módulo de red inalámbrica WizFi360

Back To Blog
Imagen de módulo de red inalámbrica WizFi360

Tutorial de cómo agregar conectividad WiFi a sus dispositivos IoT con nuestro módulo de red inalámbrica WizFi360

 

En este tutorial le enseñaremos cómo agregar conectividad WiFi de forma rápida y sencilla a nuestros proyectos de IoT usando el módulo WizFi360, y cómo podemos conectar nuestros dispositivos a la nube, como la de AWS.

 

Introducción

Agregar conectividad WiFi a un proyecto de IoT es un factor crítico para mejorar la eficiencia y la flexibilidad en la gestión de dispositivos y datos. La conectividad WiFi permite la comunicación inalámbrica de datos entre dispositivos IoT y la nube, lo que es esencial para la monitorización y el control remoto de dispositivos, así como para la gestión de datos en tiempo real. Además, la conexión WiFi permite la transferencia rápida de grandes cantidades de datos, lo que es fundamental en aplicaciones donde se requiere una gran cantidad de información.

Esta conectividad permitirá una mayor flexibilidad en la conexión de dispositivos IoT. Por ejemplo, los dispositivos pueden conectarse directamente a un router o punto de acceso WiFi, o pueden conectarse a través de una red celular o de satélite, lo que permite una mayor movilidad y flexibilidad en la conexión de dispositivos IoT.

Además, la conexión WiFi es fácil de usar y permite la configuración y el control remoto de dispositivos a través de una aplicación móvil o una interfaz web, lo que hace que el proceso sea más fácil y accesible para los usuarios.

Esta conectividad WiFi es una característica clave para cualquier proyecto de IoT, ya que permite una mayor eficiencia, automatización y flexibilidad en la gestión de dispositivos y datos. En este post, exploraremos cómo agregar conectividad WiFi a proyectos de IoT, los beneficios que ofrece y algunos ejemplos de uso en las que se puede utilizar.

Para aportar esta conectividad WiFi, usaremos el módulo WizFI360, del fabricante Wiznet, una compañía de tecnología con sede en Corea del Sur.

Wiznet se especializa en la fabricación de soluciones de conectividad de red para el Internet de las Cosas (IoT). La compañía fue fundada en 1998 y ha crecido rápidamente desde entonces. Ahora, tiene una presencia global con oficinas en todo el mundo.

La tecnología de Wiznet se utiliza en una amplia variedad de dispositivos IoT, desde electrodomésticos inteligentes hasta sensores industriales. Su producto más popular es el chip de red W5500, que proporciona una solución de conectividad Ethernet completa y de alta velocidad para dispositivos IoT.

Además del W5500, Wiznet ofrece una amplia gama de soluciones de conectividad de red, incluyendo chips de red inalámbrica, módulos de red, y placas de desarrollo de IoT. La compañía también proporciona herramientas de software y documentación para ayudar a los desarrolladores a integrar sus soluciones de conectividad en sus dispositivos IoT.

Wiznet también ofrece una amplia gama de herramientas de software y documentación para ayudar a los desarrolladores a integrar la conectividad WiFi en sus dispositivos IoT. Estas herramientas incluyen controladores de dispositivos, pilas de red y protocolos de seguridad para garantizar una conectividad WiFi segura y confiable.

Con esto, Wiznet ofrece una amplia gama de soluciones de conectividad WiFi para dispositivos IoT, desde módulos de red inalámbrica compactos hasta placas de desarrollo de IoT avanzadas. Además, la compañía proporciona herramientas de software y documentación para ayudar a los desarrolladores a integrar la conectividad WiFi en sus dispositivos.

Módulo Wizfi360

WizFi360 es un módulo compacto de conectividad WiFi diseñado específicamente para aplicaciones de IoT que requieren una conexión inalámbrica estable y confiable. Con una antena incorporada y un diseño simplificado, el WizFi360 es fácil de integrar en una amplia variedad de dispositivos IoT, como sensores, actuadores y otros dispositivos inteligentes.

Imagen del módulo WizFi360 con conectorWizFi360-CON

Imagen del módulo WizFi360 con antena integrada

WizFi360-PA

Este módulo WiFi de alta calidad se basa en el chip W600 que cuenta con ARM Cortex-M3 con 1 MB de flash, y cuenta con soporte para los modos de operación Station, SoftAP y SoftAP+Station, lo que permite una mayor flexibilidad en la conexión de dispositivos y una amplia gama de opciones de conectividad. Además, el WizFi360 cuenta con la capacidad de transferencia de datos a través de comandos AT, lo que permite una configuración y control sencillos y una fácil integración con dispositivos existentes.

Con soporte para los modos TCP Server, TCP Client y UDP, así como el cifrado WPA_PSK/WPA2_PSK, el WizFi360 ofrece una seguridad robusta y una comunicación fiable en una variedad de entornos. Además, la capacidad de actualización del firmware a través de UART Download/OTA (a través de WLAN) hace que el WizFi360 sea un módulo altamente personalizable y escalable.

Las especificaciones técnicas del módulo se enumeran a continuación:

  • WiFi 2.4G, 802.11 b/g/n
  • Soporta los modos de operación Station / SoftAP / SoftAP+Station
  • Soporta los modos «Data pass-through» y «AT command data transfer»
  • Soporta configuración de comandos AT serie
  • Soporta el modo de funcionamiento TCP Server / TCP Client / UDP
  • Soporta la configuración del canal de operación 0 ~ 13
  • Soporta auto 20MHz / 40MHz de ancho de banda
  • Soporta encriptación WPA_PSK / WPA2_PSK
  • Velocidad de transmisión del puerto serie de 600bps a 2Mbps con 16 valores comunes
  • Soporta hasta 5 enlaces TCP / UDP
  • Obtención automática de la dirección IP desde el servidor DHCP (modo Estación)
  • Servicio DHCP para clientes de LAN inalámbrica (modo AP)
  • Soporta DNS para comunicación con servidores por nombre de dominio
  • Soporta «Keep-Alive» para monitorizar la conexión TCP
  • Soporte «Ping» para monitorizar el estado de la red
  • Cliente SNTP incorporado para recibir la hora de la red
  • Soporta dirección MAC única integrada y configurable por el usuario
  • Soporta actualización de firmware mediante descarga UART / OTA (vía WLAN)
  • Grado industrial (rango de temperatura de funcionamiento: -40 ° C ~ 85 ° C)
  • CE, certificación FCC

 

Kits de desarrollo del Wizfi360

Con el fin de empezar a utilizar el módulo Wizfi360 de la forma más rápida y sencilla posible, Wiznet proporciona varias placas de desarrollo con todo lo necesario para ello. Hay dos tipos de WizFi360-EVB, que se pueden clasificar como versiones ‘Shield’ y ‘Mini’. El módulo WizFi360 se controla mediante el envío de comandos AT a través de UART. Tanto las placas WizFi360-EVB-Mini y WizFi360-EVB-Shield utilizan UART1 mediante la conexión Micro USB.

WizFi360-EVB-Mini

Esta pequeña placa añade un conversor USB-UART así como un puerto Micro USB que nos permite controlar fácilmente el módulo WizFi360 desde un PC.

Placa de evaluación WizFi360-EVB-Mini
WizFi360-EVB-Mini

 

WizFi360-EVB-Shield

Esta placa, además de incorporar el puerto Micro USB, añade múltiples switches para cambiar la configuración del dispositivo, además de incluir varios leds, un sensor fotosensible y un sensor de humedad/temperatura.

Imagen de Placa de evaluación WizFi360-EVB-Shield

WizFi360-EVB-Shield

 

Además, WizFi360-EVB-Shield es Pin compatible con Arduino. Así que se puede utilizar el puerto UART de dos maneras. Si usamos Micro USB, activamos SW1 ON y conectamos el cable Micro USB. En caso de utilizar los pines compatibles con Arduino H/W, seleccionamos SW1 OFF y seleccionamos los pines RXD / TXD para Arduino.

Uso del Mini USB

Uso con un Arduino

Si la placa WizFi360-EVB-Shield o la WizFi360-EVB-Mini está conectada al PC con un cable Micro USB, utilizamos una aplicación de terminal para conectarnos a ella a través de la comunicación serial. Una vez configurada la conexión, enviamos el comando “AT”, y si todo está correctamente, el módulo WizFi360 responderá con un “OK”.

Terminal probando la conexión serie

 

Características y comandos AT del WizFi360

Para hacer uso del módulo y de todas sus funcionalidades, se recomienda revisar en profundidad tanto la hoja de características, como el set de instrucciones AT que soporta el módulo.

Puede consultar el datasheet aquí

Puede consultar el set de instrucciones AT aquí

Ejemplo de conexión y envío de mensaje a un servidor TCP

En el siguiente ejemplo que mostramos, conectaremos el WizFi360 a una red wifi en la que tengamos un servidor TCP operando.

Tras esta conexión a la red, se conectará al servidor dedicado y probaremos a enviar un pequeño paquete de información. A continuación se muestran los comandos AT necesarios para realizar estas tareas:

//Set WizFi Station mode
AT+CWMODE_CUR=1 //Station mode, in case of AT+CWMODE_DEF, it is stored in flash.
OK

//Set Single Connection Mode
AT+CIPMUX=0
OK

//Set DHCP enable
AT+CWDHCP_CUR=1,1
OK

//Get possible WiFi AP list for WizFi360 connection
AT+CWLAP
+CWLAP:(3,"ssid",-5,"mac address",1,1)

//Connect to WiFi AP
AT+CWJAP_CUR="ssid","password"
WIFI CONNECTED
WIFI GOT IP

OK

//Query WizFi360 device' IP address
AT+CIPSTA_CUR?
+CIPSTA_CUR:ip:"192.168.10.13"
+CIPSTA_CUR:gateway:"192.168.10.1"
+CIPSTA_CUR:network:"255.255.255.0"

OK

//Connect to TCP server as client
AT+CIPSTART="TCP","192.168.10.100",5000    //protocol, server IP, port
CONNECT

OK

//WizFi360 sends data to the TCP Server
AT+CIPSEND=10    //set data length, such as 10 bytes.
OK
>  // return ">" to begin receiving of serial data.
1234567890    //enter the data, no <CR><LF>

Recv 10 bytes

SEND OK

//When WizFi360 received data from TCP Server, it will prompt message below:
+IPD,10:1234567890

//End the TCP Connection
AT+CIPCLOSE
CLOSED

OK

Guías de uso básicas

Tras haber mostrado cómo podemos conectarnos al módulo WizFi360 de forma sencilla con unos pocos comandos AT, a continuación mostraremos distintos modos de uso y aplicación, como el uso del puerto SPI, configurar el módulo como un cliente MQTT y la conexión con la nube (AWS).

Para consultar toda la información detallada de las distintas guías de uso básica, puede consultarlas en el siguiente enlace.

Guía de uso del SPI

El WizFi360 funciona en modo esclavo SPI y puede ser controlado mediante comandos AT. Para comunicarse con el microcontrolador host, los pines SPI deben estar conectados y poner el pin SPI_EN(PB13) a Low para SPI. En caso de querer enviar datos desde el WizFI360 hacia el maestro SPI, ponemos el pin SPI_INT(PB14) a nivel bajo.

Pinout del WizFi360PINOUT

Formato de la Trama SPI

El WizFi360 es controlado por el formato de trama SPI enviado desde el maestro SPI. La trama SPI es controlada por CSn y está compuesta por la trama de control SPI, la trama AT CMD y la trama DATA. La trama DATA está compuesta por la trama RX DATA y la trama TX DATA. Los usuarios pueden seleccionar el estado por defecto, el tamaño del buffer, CMD, DATA SEND, y DATA RECEIVE durante la fase de control.

Trama Control SPI

TX BUFF AVAIL, RX DATA LEN, e INT STATUS deben ser leídos antes de que los usuarios escriban o lean datos en el WizFi360. La trama de control SPI envía 1Byte de byte de control y lee 2Byte de datos de estado.

  • 0x03(TX BUFF AVAIL) : comprueba si el buffer de pares está listo para escribir datos antes de la transmisión
  • 0x02(RX DATA LEN) : lee la longitud de datos acumulada en el buffer par antes de recibir los datos
  • 0x06(INT STATUS) : lee el estado de interrupción del esclavo

Trama Control SPITrama Control SPI

 

Diagrama de TiempoDiagrama de Tiempo

Trama AT CMD

La trama AT CMD lee el TX BUFF AVAIL de la trama de control SPI y establece el byte de control como 0x91 durante la fase de control si 0x0002 o el bit 2 está alto. A continuación, la longitud CMD se establece en unidades de 4bytes y los mensajes AT CMD se incluyen en los datos para la transmisión. La respuesta AT CMD utiliza el método RX Data Frame al recibir datos.

Trama AT CMDTrama AT CMD

Diagrama de TiemposDiagrama de Tiempos

Trama de datos

Trama de datos TX

AT+CIPSEND, AT+CIPSENDEX, y AT+CIPSENDBUF deben transmitirse desde la trama AT CMD y los usuarios deben seguir los siguientes pasos para preparar la transmisión de datos TCP o UDP en modo DATA trans. La trama de datos TX lee el TX BUFF AVAIL de la trama de control SPI y establece el byte de control como 0x90 durante la fase de control si 0x0002 o el bit 2 está alto. Entonces la longitud CMD se establece en unidades de 4bytes y los mensajes DATA se incluyen en los datos para la transmisión. La respuesta DATA utiliza el método RX Data Frame al recibir datos.

Trama Datos TXTrama Datos TX

Diagrama de TiemposDiagrama de Tiempos

 

Trama Datos RX

Cuando se recibe una respuesta o datos después de transmitir la trama AT CMD, compruebe si el pin de interrupción está bajo o no. Si el pin de interrupción está bajo, los usuarios leen el valor de INT STATUS usando la trama de control SPI. Si el valor de INT STATUS es 0x0002 o el bit 2 es alto, los usuarios leen el valor de RX DATA LEN utilizando la trama de control SPI. Y si el valor de RX Data Len no es cero, los usuarios establecen el Byte de Control como 0x10 durante la fase de control y leen los datos. El recuento total de datos es el valor de RX DATA LEN.

Trama Datos RXTrama Datos RX

Diagrama de TiemposDiagrama de Tiempos

Operación
Operación AT CMD

Para utilizar la operación AT CMD debemos realizar los siguientes pasos:

Diagrama de flujo de la operación AT CMDDiagrama de flujo de la operación AT CMD

Operación de datos

Se pueden enviar datos si se introduce AT+CIPSEND, AT+CIPSENDEX, O AT+CIPSENDBUF en AT CMD o en el modo DATA TRANS.

Diagrama de flujo de la operación DATADiagrama de flujo de la operación DATA

Cliente MQTT

 

Introducción

MQTT (Message Queuing Telemetry Transport) es un protocolo de comunicación ligero y de código abierto diseñado específicamente para la comunicación máquina a máquina (M2M) y la Internet de las cosas (IoT). Fue desarrollado para permitir una comunicación eficiente, fiable y segura entre dispositivos con recursos limitados y conexiones de red inestables.

MQTT utiliza un modelo de publicación/suscripción en el que los dispositivos pueden publicar datos en un tema (topic) y otros dispositivos pueden suscribirse a ese tema para recibir los datos. Esto permite una comunicación flexible y escalable entre dispositivos, lo que hace que MQTT sea una opción popular para una amplia variedad de aplicaciones de IoT.

En esta era de IoT, MQTT se ha convertido en un protocolo de comunicación vital para muchos dispositivos y aplicaciones. Desde sensores y actuadores hasta hogares inteligentes y ciudades inteligentes, MQTT es utilizado en todo el mundo para la comunicación y el intercambio de datos entre dispositivos IoT. En este capítulo, exploraremos más a fondo el protocolo MQTT y cómo configurar un cliente MQTT usando el WizFi360.

Entorno local de pruebas

Los Brokers que actúan como Servidores Mqtt utilizan principalmente el programa Mosquitto. Descargue e instale la herramienta Mosquitto desde el siguiente enlace. Conecte el PC con Mosquitto instalado y el WizFi360 al mismo router (AP).

Esquema uso MQTT

Abra una ventana de símbolo del sistema y vaya a la ruta donde está instalado Mosquitto. (cd C: \ Archivos de programa \ mosquitto) A continuación, ejecute el siguiente comando: (mosquitto -c mosquitto.conf -p 1883 -v) 1883 es el número de puerto, y Mqtt suele utilizar el número de puerto 1883.

Terminal conectando con MQTT

Comandos AT WizFi360

Utilice los siguientes comandos para conectarse a Wi-Fi AP.

Station Mode

Comandos AT
AT
AT+CWMODE_CUR=1
AT+CWDHCP_CUR=1,1
AT+CWLAP
AT+CWJAP_CUR=”ssid”,”password”
AT+CIPSTA_CUR?

Comunicación Serial Station Mode

MQTT Connect & Data Publish

Comandos AT
AT+MQTTSET="USER_ID","PASSWORD","CLIENT_ID",60
AT+MQTTTOPIC="PUB_TOPIC","SUB_TOPIC"
AT+MQTTCON=0,"192.168.1.102",1883
AT+MQTTPUB=”0123456789”

Conexión con MQTT

 

Conexión del WizFi360 a AWS IoT usando Comandos AT

AWS IoT Core es un servicio en la nube de Amazon Web Services que permite la conexión segura y fácil de dispositivos IoT a la nube y a otros dispositivos. Ofrece una plataforma de comunicación escalable, fiable y segura para que los dispositivos IoT puedan enviar datos a la nube para su procesamiento, análisis y almacenamiento.

AWS IoT Core utiliza protocolos de comunicación seguros, como MQTT y HTTPS, para garantizar la seguridad y la privacidad de los datos transmitidos entre los dispositivos y la nube. Además, permite la integración con otros servicios de AWS, como AWS Lambda, para habilitar acciones en tiempo real basadas en los datos enviados por los dispositivos IoT.

Con AWS IoT Core, los desarrolladores pueden centrarse en la creación de aplicaciones de IoT en lugar de preocuparse por la complejidad de la infraestructura subyacente. El servicio ofrece una variedad de herramientas y funcionalidades para la administración de dispositivos, la seguridad, la monitorización y la gestión de datos.

En resumen, AWS IoT Core es una plataforma de conectividad en la nube que permite la comunicación segura y eficiente entre dispositivos IoT y la nube, lo que facilita la creación y el despliegue de aplicaciones de IoT escalables y fiables.

 

Procedimiento de Conexión

Material necesario para conectar con AWS

Conectar el dispositivo y lanzar la terminal

Para la conexión serial con la aplicación terminal, usar la siguiente configuración: 115200-8-N-1, None.

Conectar el WizFi360 a la red WiFi

// Set module to station mode
AT+CWMODE_CUR=1

// Get AP list
AT+CWLAP

// Connect to AP
AT+CWJAP_CUR="ssid","password"

// Query WizFi360 IP address
AT+CIPSTA_CUR?

// SSL. WizFi360 SSL
AT+CIPSSLCCONF=2

Introducir el Certificado

//Enter AWS Root CA
AT+CASEND=1

//Enter Private key
AT+AWSPKSEND=1

//Enter Client ceritificate
AT+CLICASEND=1

 

Al guardar el certificado o la clave privada, todas las líneas se enviarán una a una, desde la línea «Inicio del certificado» hasta la línea «Fin del certificado».

Certificado en AWS

Conexión a AWS

// Shadow update and accepted links should be copied from "Interact" menu in AWS Console
AT+MQTTTOPIC="shadow_update_link","shadow_accepted_link"

// User & password can be empty, thing name shall be entered
AT+MQTTSET="","","thing_name",60

// Type your Rest API endpoint
AT+AWSCON="REST_API_endpoint"

// Publish message
AT+MQTTPUB="{"state":{"reported":{"temp":"40","led":"on"}}}"

// Disconnect from a broker
AT+MQTTDIS

 

Publicando datos en AWS

Resultados

Los resultados se pueden comprobar en AWS -> AWS IoT -> Manage -> Things -> Shadow.
Dado que nos suscribimos al tema «actualizado», cuando se envía el mensaje MQTT podemos ver el mensaje de respuesta al instante.

Resultado de mensajes enviados a AWS

    Contacta con nosotros:


    Madrid: +34 91 366 01 59
    Barcelona: +34 93 224 02 83

    Bilbao: +34 94 463 60 66
    Portugal: +351 219 376 267