Comenzando con el Módulo Wi-Fi HaLow para XIAO

Introducción
Este tutorial te guiará a través de la configuración y uso del Módulo Wi-Fi HaLow Wio-WM6180 con un XIAO ESP32S3 para construir un cliente Wi-Fi HaLow. Wi-Fi HaLow (IEEE 802.11ah) está diseñado para aplicaciones IoT de largo alcance y bajo consumo de energía, operando en la banda de frecuencia sub-1 GHz. Te guiaremos a través de la configuración del hardware, configuración del software, y demostraremos cómo establecer conectividad Wi-Fi HaLow para tus proyectos IoT.
Características Clave
- Conectividad Wi-Fi de largo alcance hasta 1km en línea de vista
- Bajo consumo de energía ideal para dispositivos IoT
- Operación sub-1 GHz para mejor penetración a través de paredes y obstáculos
- Compatible con la placa de desarrollo XIAO ESP32S3
- Proceso de configuración y configuración fácil de seguir
Descripción General del Hardware
La siguiente tabla describe las especificaciones clave del Módulo Wi-Fi HaLow Wio-WM6180:
Característica | Valor | Unidad |
---|---|---|
Voltaje de Operación | 3.3 | V |
Corriente de Operación | TBD | mA |
Protocolo Wi-Fi | IEEE 802.11ah | - |
Banda de Frecuencia | Sub-1 GHz | - |
Alcance | Hasta 1 | km |
Interfaz | SPI | - |
Dimensiones | TBD | mm |
¿Qué es Wi-Fi HaLow?
Wi-Fi HaLow es un protocolo de red inalámbrica basado en el estándar IEEE 802.11ah, específicamente diseñado para aplicaciones de Internet de las Cosas (IoT). Operando en la banda de frecuencia sub-1 GHz (típicamente 900 MHz), Wi-Fi HaLow ofrece varias ventajas significativas sobre el Wi-Fi tradicional:

-
Alcance Extendido: Wi-Fi HaLow puede alcanzar distancias de hasta 1 kilómetro en condiciones de línea de vista, superando por mucho el alcance del Wi-Fi convencional.
-
Penetración Mejorada: Las señales de menor frecuencia pueden penetrar mejor a través de paredes y otros obstáculos, haciéndolo ideal para entornos desafiantes.
-
Bajo Consumo de Energía: Diseñado pensando en dispositivos IoT, Wi-Fi HaLow permite años de vida útil de la batería para dispositivos conectados.
-
Escalabilidad: Soporta miles de dispositivos conectados a un solo punto de acceso, perfecto para despliegues IoT a gran escala.
-
Seguridad: Hereda las características de seguridad robustas de la familia Wi-Fi, incluyendo encriptación WPA3.
Por Qué Importa Wi-Fi HaLow
Wi-Fi HaLow aborda las necesidades crecientes de aplicaciones IoT que requieren conectividad de largo alcance, bajo consumo de energía, y la capacidad de manejar numerosos dispositivos simultáneamente. Cierra la brecha entre el Wi-Fi tradicional y las tecnologías LPWAN, ofreciendo:
- IoT Industrial: Permite conectividad confiable en fábricas, almacenes, y entornos industriales.
- Agricultura Inteligente: Proporciona cobertura a través de grandes áreas agrícolas para redes de sensores.
- Ciudades Inteligentes: Soporta extensas redes de dispositivos conectados en entornos urbanos.
- Seguimiento de Activos: Permite el seguimiento de largo alcance de activos y equipos valiosos.
Al combinar la familiaridad del Wi-Fi con los beneficios de conectividad de bajo consumo y largo alcance, Wi-Fi HaLow está preparado para desempeñar un papel crucial en la expansión de aplicaciones IoT a través de varias industrias.
Arquitectura del Sistema Wi-Fi HaLow
Una red Wi-Fi HaLow típica consiste en varios componentes clave que trabajan juntos para habilitar conectividad IoT de largo alcance y bajo consumo:

-
Punto de Acceso (AP): El hub central de la red Wi-Fi HaLow, responsable de gestionar conexiones y enrutar datos entre dispositivos e internet.
-
Estaciones (STA): Los dispositivos cliente que se conectan al Punto de Acceso. Estos pueden ser sensores, actuadores, u otros dispositivos IoT.
-
Gateway: Actúa como un puente entre la red Wi-Fi HaLow y otras redes (ej., Ethernet o celular).
En este tutorial, configuraremos el XIAO ESP32S3 como un cliente Estación (STA) que se conecta a un Punto de Acceso Wi-Fi HaLow. El XIAO usará el módulo WM6180 para establecer y mantener la conexión HaLow.
Marco de Trabajo MM-IoT-SDK
El módulo WM6180 utiliza MM-IoT-SDK de MorseMicro, que proporciona:
- Soporte Multi-protocolo: Permite integración perfecta con varios protocolos IoT
- Gestión de Bajo Consumo: Consumo de energía optimizado para dispositivos alimentados por batería
- Características de Seguridad: Mecanismos de cifrado y autenticación integrados
- Configuración Fácil: API simplificada para configuración y gestión de red
La arquitectura MM-IoT-SDK consta de varias capas:
- Capa de Abstracción de Hardware (HAL): Proporciona una interfaz unificada para diferentes plataformas de hardware
- Pila de Red: Implementa la pila de protocolo Wi-Fi HaLow
- Capa de Aplicación: Ofrece APIs para desarrollo de aplicaciones y gestión de dispositivos
Este marco de trabajo permite a los desarrolladores implementar rápidamente la funcionalidad Wi-Fi HaLow mientras mantiene flexibilidad para aplicaciones personalizadas.
Materiales Requeridos
Aquí están los materiales necesarios para ejecutar este tutorial.
XIAO ESP32S3 Sense | XIAO ESP32C3 | XIAO ESP32C6 | Módulo Wio-WM6180 Wi-Fi HaLow para XIAO |
---|---|---|---|
![]() | ![]() | ![]() | ![]() |
Este tutorial es aplicable a toda la serie XIAO ESP32. Usaremos XIAO ESP32S3 Sense como ejemplo en este tutorial.
Además de lo anterior, es posible que necesites preparar antenas adicionales adecuadas para el uso de WiFi-Halow. Aquí están los modelos de antena verificados y recomendados.
Kit de Antena Interior de Largo Alcance | Antena de Largo Alcance 2.6dBi |
---|---|
![]() | ![]() |
Para conectar la antena al módulo WiFi-Halow, también puede que necesites comprar el Cable de Antena SMA a I-PEX.
Cable de Antena SMA a I-PEX |
---|
![]() |
Si lo estás usando por primera vez, puedes consultar el siguiente video para la instalación de la antena.
Instalar ESP-IDF v5.1.1
Antes de comenzar a programar, necesitamos instalar ESP-IDF v5.1.1 en tu computadora. ESP-IDF es el framework de desarrollo oficial para los chips de la serie ESP32.
- Windows
- MacOS
- Linux
Paso 1. Descargar el Instalador de Herramientas ESP-IDF para Windows
Descarga el Instalador de Herramientas ESP-IDF para Windows. Este instalador incluye todas las herramientas necesarias para el desarrollo con ESP-IDF.
Paso 2. Ejecutar el instalador
- Ejecuta el instalador descargado como administrador
- Sigue las indicaciones para instalar Python, Git y otras herramientas requeridas
- Cuando se te solicite, selecciona las siguientes opciones:
- Instalar ESP-IDF v5.1.1
- Instalar Python
- Instalar Git
- Agregar Herramientas ESP-IDF al Path
Paso 3. Verificar la instalación
Abre un nuevo Símbolo del sistema y ejecuta:
esp-idf --version
Si la instalación fue exitosa, deberías ver el número de versión 5.1.1.
Paso 1. Instalar prerrequisitos
Abre Terminal e instala Homebrew si aún no lo has hecho:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
Instala los paquetes requeridos:
brew install cmake ninja dfu-util
Paso 2. Descargar e instalar ESP-IDF
mkdir -p ~/esp
cd ~/esp
git clone -b v5.1.1 --recursive https://github.com/espressif/esp-idf.git
cd esp-idf
./install.sh esp32s3
Paso 3. Configurar las variables de entorno
. $HOME/esp/esp-idf/export.sh
Añade esta línea a tu ~/.profile
o ~/.zshrc
para configurar automáticamente las variables de entorno al abrir una nueva terminal.
Paso 1. Instalar prerrequisitos
Para Ubuntu y Debian:
sudo apt-get install git wget flex bison gperf python3 python3-pip python3-setuptools cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
Para otras distribuciones, por favor instala los paquetes equivalentes.
Paso 2. Descargar e instalar ESP-IDF
mkdir -p ~/esp
cd ~/esp
git clone -b v5.1.1 --recursive https://github.com/espressif/esp-idf.git
cd esp-idf
./install.sh esp32s3
Paso 3. Configurar las variables de entorno
. $HOME/esp/esp-idf/export.sh
Añade esta línea a tu ~/.bashrc
para configurar automáticamente las variables de entorno al abrir una nueva terminal.
Después de la instalación, es posible que necesites reiniciar tu computadora para asegurar que todas las variables de entorno estén configuradas correctamente.
Para instrucciones más detalladas sobre la instalación de ESP-IDF v5.1.1, puedes consultar la documentación oficial de Espressif:
Clonar y Configurar el Repositorio mm-iot-esp32
Sigue estos pasos para clonar el repositorio mm-iot-esp32 y configurar las variables de entorno:
- Windows
- MacOS
- Linux
Paso 1. Clonar el repositorio
cd %USERPROFILE%
git clone https://github.com/Seeed-Studio/mm-iot-esp32.git
Paso 2. Exportar variables IDF
cd %USERPROFILE%\mm-iot-esp32
export.bat
Paso 3. Establecer la variable de entorno MMIOT_ROOT
Puedes establecer esto permanentemente a través de las Propiedades del Sistema de Windows:
- Abrir Propiedades del Sistema (Win + R, escribir
sysdm.cpl
) - Hacer clic en "Variables de entorno"
- Bajo "Variables de usuario", hacer clic en "Nuevo"
- Nombre de variable:
MMIOT_ROOT
- Valor de variable:
C:\Users\TuNombreDeUsuario\mm-iot-esp32
(reemplazar con tu ruta actual) - Hacer clic en "Aceptar" para guardar
Alternativamente, puedes establecerlo temporalmente en el Símbolo del sistema:
set MMIOT_ROOT=C:\Users\YourUsername\mm-iot-esp32
Paso 1. Clonar el repositorio
cd ~
git clone https://github.com/Seeed-Studio/mm-iot-esp32.git
Paso 2. Exportar variables IDF
cd ~/mm-iot-esp32
source export.sh
Paso 3. Establecer la variable de entorno MMIOT_ROOT
Para uso temporal:
export MMIOT_ROOT=~/mm-iot-esp32
Para uso permanente, añade a tu archivo de configuración de shell:
# For bash users (add to ~/.bash_profile or ~/.bashrc)
echo 'export MMIOT_ROOT=~/mm-iot-esp32' >> ~/.bash_profile
# For zsh users (add to ~/.zshrc)
echo 'export MMIOT_ROOT=~/mm-iot-esp32' >> ~/.zshrc
Luego recarga la configuración de tu shell:
# For bash
source ~/.bash_profile
# For zsh
source ~/.zshrc
Paso 1. Clonar el repositorio
cd ~
git clone https://github.com/Seeed-Studio/mm-iot-esp32.git
Paso 2. Exportar variables IDF
cd ~/mm-iot-esp32
source export.sh
Paso 3. Establecer la variable de entorno MMIOT_ROOT
Para uso temporal:
export MMIOT_ROOT=~/mm-iot-esp32
Para uso permanente, añade a tu archivo de configuración de shell:
# For bash users
echo 'export MMIOT_ROOT=~/mm-iot-esp32' >> ~/.bashrc
# For zsh users
echo 'export MMIOT_ROOT=~/mm-iot-esp32' >> ~/.zshrc
Luego recarga la configuración de tu shell:
# For bash
source ~/.bashrc
# For zsh
source ~/.zshrc
Asegúrate de usar rutas absolutas al configurar la variable de entorno MMIOT_ROOT. Las rutas relativas pueden causar problemas al compilar proyectos.
Después de configurar las variables de entorno, es posible que necesites cerrar y reabrir tu terminal para que los cambios surtan efecto.
Compilando Firmware de Ejemplo
El repositorio mm-iot-esp32 incluye varias aplicaciones de ejemplo que demuestran diferentes funcionalidades. Aquí te mostramos cómo compilar y configurar estos ejemplos:
Ubicación de las Aplicaciones de Ejemplo
Todas las aplicaciones de ejemplo se pueden encontrar en el directorio examples
del repositorio. Los ejemplos disponibles incluyen:
scan
: Ejemplo de escaneo Wi-Fiiperf
: Ejemplo de servidor iperfsta_reboot
: Ejemplo de reinicio de estación Wi-Fista_connect
: Ejemplo de conexión de estación Wi-Fiweb_camera_server
: Ejemplo de servidor de cámara web- Y más...
Configurar Credenciales de Red
Antes de compilar el firmware, necesitas configurar los ajustes de red en el archivo de configuración del ejemplo:
- Navega al directorio del ejemplo elegido:
cd $MMIOT_ROOT/examples/example_name
- Edita el archivo de configuración:
# Open the configuration file
nano src/mm_app_loadconfig.c
- En este archivo, puedes modificar:
- Código de país (debe establecerse en US ya que el producto actualmente solo está disponible para América del Norte)
- Credenciales de red Wi-Fi HaLow
- Otros parámetros relacionados con la red
Nota Importante Sobre el Código de País:
- El código de país debe establecerse en "US" ya que este producto actualmente solo está disponible para el mercado de América del Norte
- El producto aún no está disponible para otras regiones debido a requisitos regulatorios
- Usar el producto en regiones distintas a América del Norte puede violar las regulaciones locales
Proceso de Construcción
Después de configurar los ajustes de red, puedes construir el firmware usando estos comandos:
idf.py set-target esp32s3
idf.py fullclean
idf.py build
- El comando
idf.py set-target
solo necesita ejecutarse una vez para cada ejemplo idf.py fullclean
asegura una compilación limpia eliminando todos los artefactos de compilación previos- Después de una compilación exitosa, el binario del firmware se ubicará en el directorio
build
Salida de Compilación
Después de una compilación exitosa, deberías ver una salida similar a esta:
# Project build complete. To flash, run this command:
idf.py -p (PORT) flash
A continuación, demostraremos algunos ejemplos.
Ejemplo 1. escaneo
Este ejemplo demuestra cómo escanear las redes Wi-Fi HaLow disponibles en tu área. Sigue estos pasos para compilar y ejecutar el ejemplo de escaneo:
Paso 1: Navegar al Ejemplo de Escaneo
cd ~/mm-iot-esp32/example/scan
Paso 2: Configurar el Código de País
- Abrir el archivo de configuración:
nano main/src/mm_app_loadconfig.c
- Localiza y modifica la línea del código de país:
#define COUNTRY_CODE "US" // Must use "US" as the product is only available for North America
Paso 3: Configuración del Hardware
-
Conecta el Módulo Wi-Fi HaLow Wio-WM6180 a tu XIAO ESP32S3
-
Conecta el XIAO ESP32S3 a tu computadora vía USB
Paso 4: Compilar y Flashear
Ejecuta los siguientes comandos en secuencia:
idf.py set-target esp32s3
idf.py fullclean
idf.py build
idf.py flash monitor
Paso 5: Monitorear Resultados
Si todo está funcionando correctamente:
- El monitor serie se iniciará automáticamente después del flasheo
- El programa comenzará a escanear redes Wi-Fi HaLow
- Si hay gateways Wi-Fi HaLow en el rango, su información se mostrará en el monitor serie
Ejemplo de salida en el monitor serie:

- Asegúrate de que haya gateways Wi-Fi HaLow en tu proximidad para detectar redes
- El proceso de escaneo se ejecuta continuamente, por lo que verás actualizaciones periódicas de las redes disponibles
- Presiona Ctrl+C para detener el monitor y salir del programa
Si no ves ninguna red:
- Verifica que tu gateway Wi-Fi HaLow esté encendido y funcionando
- Comprueba que estés dentro del rango del gateway
- Asegúrate de que el módulo esté conectado correctamente a tu XIAO ESP32S3
Ejemplo 2. iperf
Este ejemplo demuestra cómo probar el rendimiento de red de tu conexión Wi-Fi HaLow usando iPerf. Sigue estos pasos para construir y ejecutar el ejemplo de iPerf:
Paso 1: Navegar al Ejemplo de iPerf
cd ~/mm-iot-esp32/example/iperf
Paso 2: Configurar los Ajustes de Red
- Abrir el archivo de configuración:
nano main/src/mm_app_loadconfig.c
- Modifica los siguientes parámetros:
// Set country code (must be "US" for North America)
#define COUNTRY_CODE "US"
// Set your Wi-Fi HaLow network credentials
#define SSID Your_HaLow_SSID // Replace with your network name
#define SAE_PASSPHRASE Your_Password // Replace with your network password
Paso 3: Configuración del Hardware
- Conecta el Módulo Wi-Fi HaLow Wio-WM6180 a tu XIAO ESP32S3
- Conecta el XIAO ESP32S3 a tu computadora vía USB
Paso 4: Compilar y Flashear
Ejecuta los siguientes comandos en secuencia:
idf.py set-target esp32s3
idf.py fullclean
idf.py build
idf.py flash monitor
Paso 5: Ejecutar Prueba de Rendimiento
Una vez que el programa se ejecute exitosamente, verás que el servicio iPerf se inicia. Ahora puedes ejecutar pruebas de rendimiento desde tu gateway Wi-Fi HaLow.
Para pruebas IPv4, ejecuta este comando en tu gateway:
iperf -c <device_ip> -p <port> -i 1 -u -b 20M
Para pruebas IPv6, ejecuta este comando en tu gateway:
iperf -c <device_ip>%wlan0 -p <port> -i 1 -V -u -b 20M
Los parámetros explicados:
-c
: Ejecutar en modo cliente-p
: Número de puerto-i
: Intervalo de reporte (1 segundo)-u
: Usar protocolo UDP-b
: Ancho de banda objetivo (20 Mbps)-V
: Modo IPv6 (solo para pruebas IPv6)

- Asegúrate de que tu dispositivo se haya conectado exitosamente a la red Wi-Fi HaLow antes de ejecutar la prueba de rendimiento
- La dirección IP del dispositivo se mostrará en el monitor serie después de la conexión
- Puedes ajustar el ancho de banda (parámetro -b) según tus necesidades de prueba
Problemas comunes y soluciones:
- Si la conexión falla, verifica las credenciales de tu red
- Si el servicio iPerf no inicia, revisa las conexiones de tu hardware
- Si el rendimiento es pobre, asegúrate de estar dentro de un buen rango del gateway
Ejemplo 3. web_camera_server
Este ejemplo demuestra cómo transmitir la alimentación de cámara desde XIAO ESP32S3 Sense a través de la red Wi-Fi HaLow. Sigue estos pasos para construir y ejecutar el servidor de cámara web:
Paso 1: Navegar al Ejemplo de Cámara Web
cd ~/mm-iot-esp32/example/web_camera_serve
Paso 2: Configurar los Ajustes de Red
- Abrir el archivo de configuración:
nano main/src/mm_app_loadconfig.c
- Modifica las credenciales de Wi-Fi HaLow:
// Set your Wi-Fi HaLow network credentials
#define SSID Your_HaLow_SSID // Replace with your network name
#define SAE_PASSPHRASE Your_Password // Replace with your network password
Paso 3: Configuración del Hardware
- Conecta el Módulo Wi-Fi HaLow Wio-WM6180 a tu XIAO ESP32S3 Sense
- Asegúrate de que el módulo de cámara en tu XIAO ESP32S3 Sense esté conectado correctamente
- Conecta el XIAO ESP32S3 Sense a tu computadora vía USB
Paso 4: Compilar y Flashear
Ejecuta los siguientes comandos en secuencia:
idf.py set-target esp32s3
idf.py fullclean
idf.py build
idf.py flash monitor
Paso 5: Acceder al Feed de la Cámara
Una vez que el programa se esté ejecutando exitosamente:
- Anota la dirección IP mostrada en el monitor serie
- Abre un navegador web en cualquier dispositivo conectado a la misma red que tu gateway Wi-Fi HaLow
- Ingresa la dirección IP en la barra de direcciones de tu navegador
- Ahora deberías ver el feed de cámara en vivo desde tu XIAO ESP32S3 Sense
URL de ejemplo:
http://192.168.4.1

Para la mejor experiencia de transmisión:
- Asegúrate de tener buenas condiciones de iluminación para una mejor calidad de imagen
- Mantén el XIAO ESP32S3 Sense dentro de un buen rango del gateway Wi-Fi HaLow
- Usa un navegador web moderno para una compatibilidad óptima
Solución de problemas:
- Si no puedes acceder a la transmisión de la cámara, verifica que tu dispositivo esté en la misma red que el gateway Wi-Fi HaLow
- Si la imagen no se muestra, verifica que el módulo de la cámara esté conectado correctamente
- Si la transmisión está lenta, intenta acercarte más al gateway Wi-Fi HaLow
Recursos
- [GITHUB] Repositorio mm-iot-esp32
- [GITHUB] Documento mm-iot
- [PDF] WI-FI_HALOW_FGH100M_EXT01_V30_SCH_20241107
- [KiCAD] Archivo PCB KiCAD WI-FI_HALOW_FGH100M_EXT01_V30
- [PDF] Quectel_FGH100M-H_Short-Range_Module_Specification_V1.0.0
Soporte Técnico y Discusión de Productos
¡Gracias por elegir nuestros productos! Estamos aquí para brindarte diferentes tipos de soporte para asegurar que tu experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para satisfacer diferentes preferencias y necesidades.