Introdução ao módulo Wi-Fi HaLow para XIAO

Introdução
Este tutorial irá guiá-lo na configuração e uso do módulo Wio-WM6108 Wi-Fi HaLow com um XIAO ESP32S3 para construir um cliente Wi-Fi HaLow. Wi-Fi HaLow (IEEE 802.11ah) é projetado para aplicações IoT de longo alcance e baixo consumo de energia, operando na faixa de frequência abaixo de 1 GHz. Vamos passar pela configuração de hardware, configuração de software e demonstrar como estabelecer conectividade Wi-Fi HaLow para seus projetos de IoT.
Principais recursos
- Conectividade Wi-Fi de longo alcance de até 1 km em linha de visada
- Baixo consumo de energia, ideal para dispositivos IoT
- Operação abaixo de 1 GHz para melhor penetração através de paredes e obstáculos
- Compatível com a placa de desenvolvimento XIAO ESP32S3
- Processo de configuração e ajuste fácil de seguir
Visão geral de hardware
A tabela a seguir descreve as principais especificações do módulo Wio-WM6108 Wi-Fi HaLow:
| Característica | Valor | Unidade |
|---|---|---|
| Tensão de operação | 3.3 (Digital) / 5.0 (RF front-end) | V |
| Corrente de operação | TBD | mA |
| Protocolo Wi-Fi | IEEE 802.11ah | - |
| Faixa de frequência | Abaixo de 1 GHz | - |
| Alcance | Até 1 | km |
| Interface | SPI | - |
| Dimensões | TBD | mm |
Esta placa requer duas entradas de alimentação separadas:
- O pad de 3.3V alimenta os trilhos digitais do módulo.
- O pad de 5.0V alimenta o front-end de RF (amplificador de potência de TX) por meio de um trilho separado.
Quando o módulo é conectado a uma placa de expansão XIAO, ambos os trilhos de alimentação são fornecidos automaticamente através do conector de expansão.
No entanto, ao conectar a placa a um sistema host via interface de pads (por exemplo, um Raspberry Pi via SPI), você deve conectar todos os 5V, 3.3V e GND.
Se apenas 3.3V estiver conectado, o módulo poderá carregar o firmware e receber normalmente, mas não poderá transmitir na potência nominal.
O que é Wi-Fi HaLow?
Wi-Fi HaLow é um protocolo de rede sem fio baseado no padrão IEEE 802.11ah, projetado especificamente para aplicações de Internet das Coisas (IoT). Operando na faixa de frequência abaixo de 1 GHz (tipicamente 900 MHz), o Wi-Fi HaLow oferece várias vantagens significativas em relação ao Wi-Fi tradicional:

-
Alcance estendido: o Wi-Fi HaLow pode atingir distâncias de até 1 quilômetro em condições de linha de visada, superando em muito o alcance do Wi-Fi convencional.
-
Melhor penetração: os sinais de frequência mais baixa conseguem penetrar melhor em paredes e outros obstáculos, tornando-o ideal para ambientes desafiadores.
-
Baixo consumo de energia: projetado com dispositivos IoT em mente, o Wi-Fi HaLow permite anos de vida útil de bateria para dispositivos conectados.
-
Escalabilidade: suporta milhares de dispositivos conectados a um único ponto de acesso, perfeito para implantações IoT em grande escala.
-
Segurança: herda os recursos robustos de segurança da família Wi-Fi, incluindo criptografia WPA3.
Por que o Wi-Fi HaLow é importante
O Wi-Fi HaLow atende às crescentes necessidades de aplicações IoT que exigem conectividade de longo alcance, baixo consumo de energia e capacidade de lidar com inúmeros dispositivos simultaneamente. Ele preenche a lacuna entre o Wi-Fi tradicional e as tecnologias LPWAN, oferecendo:
- IoT industrial: possibilita conectividade confiável em fábricas, armazéns e ambientes industriais.
- Agricultura inteligente: fornece cobertura em grandes áreas agrícolas para redes de sensores.
- Cidades inteligentes: suporta extensas redes de dispositivos conectados em ambientes urbanos.
- Rastreamento de ativos: permite o rastreamento de longo alcance de ativos e equipamentos valiosos.
Ao combinar a familiaridade do Wi-Fi com os benefícios de conectividade de longo alcance e baixo consumo de energia, o Wi-Fi HaLow está pronto para desempenhar um papel crucial na expansão das aplicações de IoT em diversos setores.
Arquitetura de sistema Wi-Fi HaLow
Uma rede típica de Wi-Fi HaLow consiste em vários componentes principais que trabalham juntos para possibilitar conectividade IoT de longo alcance e baixo consumo:

-
Ponto de Acesso (AP): o hub central da rede Wi-Fi HaLow, responsável por gerenciar conexões e rotear dados entre dispositivos e a internet.
-
Estações (STA): os dispositivos clientes que se conectam ao Ponto de Acesso. Podem ser sensores, atuadores ou outros dispositivos IoT.
-
Gateway: atua como uma ponte entre a rede Wi-Fi HaLow e outras redes (por exemplo, Ethernet ou celular).
Neste tutorial, vamos configurar o XIAO ESP32S3 como um cliente Estação (STA) que se conecta a um Ponto de Acesso Wi-Fi HaLow. O XIAO usará o módulo WM6108 para estabelecer e manter a conexão HaLow.
Framework MM-IoT-SDK
O módulo WM6108 utiliza o MM-IoT-SDK da MorseMicro, que fornece:
- Suporte multiprotocolo: permite integração perfeita com vários protocolos de IoT
- Gerenciamento de baixo consumo: consumo de energia otimizado para dispositivos alimentados por bateria
- Recursos de segurança: mecanismos integrados de criptografia e autenticação
- Configuração fácil: API simplificada para configuração e gerenciamento de rede
A arquitetura do MM-IoT-SDK consiste em várias camadas:
- Camada de Abstração de Hardware (HAL): fornece uma interface unificada para diferentes plataformas de hardware
- Pilha de rede: implementa a pilha de protocolo Wi-Fi HaLow
- Camada de aplicação: oferece APIs para desenvolvimento de aplicações e gerenciamento de dispositivos
Esse framework permite que desenvolvedores implementem rapidamente funcionalidades Wi-Fi HaLow, mantendo flexibilidade para aplicações personalizadas.
Materiais necessários
Aqui estão os materiais necessários para executar este tutorial.
| XIAO ESP32S3 Sense | Módulo Wi-Fi HaLow Wio-WM6108 para XIAO |
|---|---|
![]() | ![]() |
Este tutorial é aplicável apenas à série XIAO ESP32-S3. Usaremos o XIAO ESP32S3 Sense como exemplo neste tutorial.
Além do mencionado acima, você pode precisar preparar antenas adicionais adequadas para uso com WiFi-Halow. Aqui estão os modelos de antena verificados e recomendados.
| Kit de antena interna de longo alcance | Antena de longo alcance de 2,6 dBi |
|---|---|
![]() | ![]() |
Para conectar a antena ao módulo WiFi-Halow, você também pode precisar adquirir o cabo de antena SMA para I-PEX.
| Cabo de antena SMA para I-PEX |
|---|
![]() |
Se você estiver usando pela primeira vez, pode consultar o vídeo a seguir para a instalação da antena.
Instalar ESP-IDF v5.1.1
Antes de começarmos a programar, precisamos instalar o ESP-IDF v5.1.1 no seu computador. ESP-IDF é o framework oficial de desenvolvimento para os chips da série ESP32.
- Windows
- MacOS
- Linux
Passo 1. Baixar o ESP-IDF Tools Installer para Windows
Baixe o ESP-IDF Tools Installer para Windows. Este instalador inclui todas as ferramentas necessárias para o desenvolvimento com ESP-IDF.
Passo 2. Executar o instalador
- Execute o instalador baixado como administrador
- Siga as instruções para instalar Python, Git e outras ferramentas necessárias
- Quando solicitado, selecione as seguintes opções:
- Instalar ESP-IDF v5.1.1
- Instalar Python
- Instalar Git
- Adicionar ESP-IDF Tools ao Path
Passo 3. Verificar a instalação
Abra um novo Prompt de Comando e execute:
esp-idf --version
Se a instalação foi bem-sucedida, você deverá ver o número de versão 5.1.1.
Passo 1. Instalar pré-requisitos
Abra o Terminal e instale o Homebrew se ainda não o tiver:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
Instale os pacotes necessários:
brew install cmake ninja dfu-util
Passo 2. Baixar e instalar o 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
Passo 3. Configurar as variáveis de ambiente
. $HOME/esp/esp-idf/export.sh
Adicione esta linha ao seu ~/.profile ou ~/.zshrc para configurar automaticamente as variáveis de ambiente ao abrir um novo terminal.
Passo 1. Instalar pré-requisitos
Para Ubuntu e 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 outras distribuições, instale os pacotes equivalentes.
Passo 2. Baixar e instalar o 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
Passo 3. Configurar as variáveis de ambiente
. $HOME/esp/esp-idf/export.sh
Adicione esta linha ao seu ~/.bashrc para configurar automaticamente as variáveis de ambiente ao abrir um novo terminal.
Após a instalação, talvez seja necessário reiniciar o computador para garantir que todas as variáveis de ambiente sejam configuradas corretamente.
Para instruções mais detalhadas sobre a instalação do ESP-IDF v5.1.1, você pode consultar a documentação oficial da Espressif:
Clonar e Configurar o Repositório mm-iot-esp32
Siga estas etapas para clonar o repositório mm-iot-esp32 e configurar as variáveis de ambiente:
- Windows
- MacOS
- Linux
Passo 1. Clonar o repositório
cd %USERPROFILE%
git clone https://github.com/Seeed-Studio/mm-iot-esp32.git
Passo 2. Exportar variáveis do IDF
cd %USERPROFILE%\mm-iot-esp32
export.bat
Passo 3. Definir a variável de ambiente MMIOT_ROOT
Você pode defini-la permanentemente pelas Propriedades do Sistema do Windows:
- Abra Propriedades do Sistema (Win + R, digite
sysdm.cpl) - Clique em "Environment Variables"
- Em "User variables", clique em "New"
- Nome da variável:
MMIOT_ROOT - Valor da variável:
C:\Users\YourUsername\mm-iot-esp32(substitua pelo seu caminho real) - Clique em "OK" para salvar
Como alternativa, você pode defini-la temporariamente no Prompt de Comando:
set MMIOT_ROOT=C:\Users\YourUsername\mm-iot-esp32
Passo 1. Clonar o repositório
cd ~
git clone https://github.com/Seeed-Studio/mm-iot-esp32.git
Passo 2. Exportar variáveis do IDF
cd ~/mm-iot-esp32
source export.sh
Passo 3. Definir a variável de ambiente MMIOT_ROOT
Para uso temporário:
export MMIOT_ROOT=~/mm-iot-esp32
Para uso permanente, adicione ao arquivo de configuração do seu 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
Em seguida, recarregue a configuração do shell:
# For bash
source ~/.bash_profile
# For zsh
source ~/.zshrc
Passo 1. Clonar o repositório
cd ~
git clone https://github.com/Seeed-Studio/mm-iot-esp32.git
Passo 2. Exportar variáveis do IDF
cd ~/mm-iot-esp32
source export.sh
Passo 3. Definir a variável de ambiente MMIOT_ROOT
Para uso temporário:
export MMIOT_ROOT=~/mm-iot-esp32
Para uso permanente, adicione ao arquivo de configuração do seu shell:
# For bash users
echo 'export MMIOT_ROOT=~/mm-iot-esp32' >> ~/.bashrc
# For zsh users
echo 'export MMIOT_ROOT=~/mm-iot-esp32' >> ~/.zshrc
Em seguida, recarregue a configuração do shell:
# For bash
source ~/.bashrc
# For zsh
source ~/.zshrc
Certifique-se de usar caminhos absolutos ao definir a variável de ambiente MMIOT_ROOT. Caminhos relativos podem causar problemas ao compilar projetos.
Depois de definir as variáveis de ambiente, talvez seja necessário fechar e reabrir o terminal para que as alterações entrem em vigor.
Compilando o Firmware de Exemplo
O repositório mm-iot-esp32 inclui vários aplicativos de exemplo que demonstram diferentes funcionalidades. Veja como compilar e configurar esses exemplos:
Localização dos Aplicativos de Exemplo
Todos os aplicativos de exemplo podem ser encontrados no diretório examples do repositório. Exemplos disponíveis incluem:
scan: exemplo de varredura Wi-Fiiperf: exemplo de servidor iperfsta_reboot: exemplo de reinicialização de estação Wi-Fista_connect: exemplo de conexão de estação Wi-Fiweb_camera_server: exemplo de servidor de câmera web- E mais...
Configurar Credenciais de Rede
Antes de compilar o firmware, você precisa configurar as configurações de rede no arquivo de configuração do exemplo:
- Navegue até o diretório do exemplo escolhido:
cd $MMIOT_ROOT/examples/example_name
- Edite o arquivo de configuração:
# Open the configuration file
nano src/mm_app_loadconfig.c
- Neste arquivo, você pode modificar:
- Código do país (deve ser definido como US, pois o produto está atualmente disponível apenas para a América do Norte)
- Credenciais da rede Wi-Fi HaLow
- Outros parâmetros relacionados à rede
Nota Importante Sobre o Código do País:
- O código do país deve ser definido como "US", pois este produto está atualmente disponível apenas para o mercado norte-americano
- O produto ainda não está disponível para outras regiões devido a exigências regulatórias
- Usar o produto em regiões fora da América do Norte pode violar regulamentações locais
Processo de Compilação
Após configurar as definições de rede, você pode compilar o firmware usando estes comandos:
idf.py set-target esp32s3
idf.py fullclean
idf.py build
- O comando
idf.py set-targetprecisa ser executado apenas uma vez para cada exemplo idf.py fullcleangarante uma compilação limpa, removendo todos os artefatos de compilação anteriores- Após a compilação bem-sucedida, o binário do firmware estará localizado no diretório
build
Saída da Compilação
Após uma compilação bem-sucedida, você deverá ver uma saída semelhante a esta:
# Project build complete. To flash, run this command:
idf.py -p (PORT) flash
A seguir, demonstraremos alguns exemplos.
Exemplo 1. scan
Este exemplo demonstra como procurar redes Wi-Fi HaLow disponíveis nas proximidades. Siga estas etapas para compilar e executar o exemplo de varredura:
Passo 1: Navegar até o Exemplo de Varredura
cd ~/mm-iot-esp32/example/scan
Passo 2: Configurar o Código do País
- Abra o arquivo de configuração:
nano main/src/mm_app_loadconfig.c
- Localize e modifique a linha do código do país:
#define COUNTRY_CODE "US" // Must use "US" as the product is only available for North America
Passo 3: Configuração de Hardware
-
Conecte o Módulo Wio-WM6108 Wi-Fi HaLow ao seu XIAO ESP32S3
-
Conecte o XIAO ESP32S3 ao seu computador via USB
Passo 4: Compilar e Gravar
Execute os seguintes comandos em sequência:
idf.py set-target esp32s3
idf.py fullclean
idf.py build
idf.py flash monitor
Passo 5: Monitorar Resultados
Se tudo estiver funcionando corretamente:
- O monitor serial será iniciado automaticamente após a gravação
- O programa começará a procurar redes Wi-Fi HaLow
- Se houver quaisquer gateways Wi-Fi HaLow ao alcance, suas informações serão exibidas no monitor serial
Exemplo de saída no monitor serial:

- Certifique-se de que haja gateways Wi-Fi HaLow nas proximidades para detectar redes
- O processo de varredura é executado continuamente, portanto você verá atualizações periódicas das redes disponíveis
- Pressione Ctrl+C para parar o monitor e sair do programa
Se você não vir nenhuma rede:
- Verifique se o seu gateway Wi-Fi HaLow está ligado e funcionando
- Verifique se você está dentro do alcance do gateway
- Certifique-se de que o módulo está conectado corretamente ao seu XIAO ESP32S3
Exemplo 2. iperf
Este exemplo demonstra como testar o desempenho de rede da sua conexão Wi-Fi HaLow usando iPerf. Siga estas etapas para compilar e executar o exemplo iPerf:
Etapa 1: Navegar até o exemplo iPerf
cd ~/mm-iot-esp32/example/iperf
Etapa 2: Configurar as definições de rede
- Abra o arquivo de configuração:
nano main/src/mm_app_loadconfig.c
- Modifique os seguintes 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
Etapa 3: Configuração de hardware
- Conecte o módulo Wio-WM6108 Wi-Fi HaLow ao seu XIAO ESP32S3
- Conecte o XIAO ESP32S3 ao seu computador via USB
Etapa 4: Compilar e gravar
Execute os seguintes comandos em sequência:
idf.py set-target esp32s3
idf.py fullclean
idf.py build
idf.py flash monitor
Etapa 5: Executar o teste de desempenho
Quando o programa estiver em execução com sucesso, você verá o serviço iPerf iniciar. Agora você pode executar testes de desempenho a partir do seu gateway Wi-Fi HaLow.
Para testes IPv4, execute este comando no seu gateway:
iperf -c <device_ip> -p <port> -i 1 -u -b 20M
Para testes IPv6, execute este comando no seu gateway:
iperf -c <device_ip>%wlan0 -p <port> -i 1 -V -u -b 20M
Explicação dos parâmetros:
-c: Executar em modo cliente-p: Número da porta-i: Intervalo de relatório (1 segundo)-u: Usar protocolo UDP-b: Largura de banda alvo (20 Mbps)-V: Modo IPv6 (apenas para testes IPv6)

- Certifique-se de que seu dispositivo se conectou com sucesso à rede Wi-Fi HaLow antes de executar o teste de desempenho
- O endereço IP do dispositivo será exibido no monitor serial após a conexão
- Você pode ajustar a largura de banda (parâmetro -b) com base nas suas necessidades de teste
Problemas comuns e soluções:
- Se a conexão falhar, verifique suas credenciais de rede
- Se o serviço iPerf não iniciar, verifique suas conexões de hardware
- Se o desempenho estiver ruim, certifique-se de que você está dentro de um bom alcance do gateway
Exemplo 3. web_camera_server
Este exemplo demonstra como transmitir o fluxo da câmera do XIAO ESP32S3 Sense pela rede Wi-Fi HaLow. Siga estas etapas para compilar e executar o servidor de câmera web:
Etapa 1: Navegar até o exemplo de câmera web
cd ~/mm-iot-esp32/example/web_camera_serve
Etapa 2: Configurar as definições de rede
- Abra o arquivo de configuração:
nano main/src/mm_app_loadconfig.c
- Modifique as credenciais 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
Etapa 3: Configuração de hardware
- Conecte o módulo Wio-WM6108 Wi-Fi HaLow ao seu XIAO ESP32S3 Sense
- Certifique-se de que o módulo de câmera no seu XIAO ESP32S3 Sense está conectado corretamente
- Conecte o XIAO ESP32S3 Sense ao seu computador via USB
Etapa 4: Compilar e gravar
Execute os seguintes comandos em sequência:
idf.py set-target esp32s3
idf.py fullclean
idf.py build
idf.py flash monitor
Etapa 5: Acessar o fluxo da câmera
Quando o programa estiver em execução com sucesso:
- Anote o endereço IP exibido no monitor serial
- Abra um navegador da web em qualquer dispositivo conectado à mesma rede que o seu gateway Wi-Fi HaLow
- Digite o endereço IP na barra de endereços do navegador
- Agora você deverá ver o fluxo de câmera ao vivo do seu XIAO ESP32S3 Sense
URL de exemplo:
http://192.168.4.1

Para a melhor experiência de streaming:
- Garanta boas condições de iluminação para melhor qualidade de imagem
- Mantenha o XIAO ESP32S3 Sense dentro de um bom alcance do gateway Wi-Fi HaLow
- Use um navegador web moderno para compatibilidade ideal
Solução de problemas:
- Se você não conseguir acessar o fluxo da câmera, verifique se seu dispositivo está na mesma rede que o gateway Wi-Fi HaLow
- Se a imagem não estiver aparecendo, verifique se o módulo de câmera está conectado corretamente
- Se o fluxo estiver com atraso, tente se aproximar do gateway Wi-Fi HaLow
Recursos
- [GITHUB] repositório mm-iot-esp32
- [GITHUB] Documento mm-iot
- [PDF] WI-FI_HALOW_FGH100M_EXT01_V30_SCH_20241107
- [KiCAD] Arquivo de PCB KiCAD WI-FI_HALOW_FGH100M_EXT01_V30
- [PDF] Quectel_FGH100M-H_Short-Range_Module_Specification_V1.0.0
Suporte técnico e discussão de produtos
Obrigado por escolher nossos produtos! Estamos aqui para fornecer diferentes tipos de suporte para garantir que sua experiência com nossos produtos seja a mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.



