O objetivo deste BLOG é demonstrar como é possível utilizar o módulo NINA W102 para implementar um rede MESH. Foram utilizados 2 NINA W102, um como nó raíz (ROOT) e o outro como nó não raíz.
O ESP-MDF, ou Espressif Mesh Development Framework, é uma estrutura de desenvolvimento para o ESP-MESH, um protocolo de rede construído sobre o protocolo Wi-Fi. O ESP-MDF é baseado no chip ESP32.
Visão global
O ESP-MDF é baseado na pilha de protocolos ESP-MESH para facilitar o desenvolvimento do ESP-MESH. O ESP-MDF fornece os seguintes recursos:
Configuração rápida de rede: além da configuração manual com os aplicativos de configuração de rede, como o ESP-MESH App ou aplicativos de terceiros semelhantes, o ESP-MDF oferece uma maneira encadeada de configuração de rede, durante a qual os dispositivos estabelecem uma rede de forma autônoma e rápida, e formar uma área de cobertura maior.
Atualização estável: o processo de atualização tornou-se mais eficiente com recursos como retransmissão automática de fragmentos com falha, compactação de dados, reversão para uma versão anterior, verificação de firmware etc.
Depuração eficiente: são suportadas várias abordagens de depuração, como transmissão sem fio de logs e depuração sem fio, depuração por meio de um terminal de comando etc.
Controle de LAN: a rede pode ser controlada por um aplicativo, sensor etc.
Diversas demonstrações de aplicação: Oferece soluções abrangentes baseadas em ESP-MESH nas áreas de iluminação, etc.
Para implementação foi seguido o roteiro proposto em
https://github.com/espressif/esp-mdf/tree/master/examples/get-started
Ele apresenta uma maneira rápida de construir uma rede ESP-MESH sem um roteador. Para executar este exemplo, você precisa de pelo menos duas placas de desenvolvimento, uma configurada como nó raiz e a outra como nó não raiz. Neste exemplo, todos os dispositivos são nós não raiz por padrão.
Nó raiz: existe apenas um nó raiz em uma rede ESP-MESH. As redes MESH podem ser diferenciadas por seus MESH_ID e canais.
Nó não raiz: inclua nós folha e nós intermediários, que selecionam automaticamente seus nós pai de acordo com as condições da rede.
Você precisa acessar o submenu Configuração de exemplo e configurar um dispositivo como nó raiz e os outros como nós não raiz com make menuconfig (Make) ou idf.py menuconfig (CMake).
Você também pode acessar o submenu Component config -> MDF Mwifi e configurar os parâmetros relacionados ao ESP-MESH, como número máximo de camadas, número de dispositivos conectados em cada camada, intervalo de transmissão etc.
Defina a função de retorno de chamada do evento;
Inicialize o wifi e inicie o ESP-MESH;
Crie uma função de manipulador de eventos:
Nós não raiz enviam o pacote de dados Hello root! ao nó raiz em um intervalo de três segundos e aguarde sua resposta;
O nó raiz responde o nó Hello done!quando recebe os dados.
Criar um timer: imprima no horário especificado as informações da rede ESP-MESH sobre as camadas, a força do sinal e a memória restante do nó pai.
O log do nó raiz ficaria assim:
Instale
Toolchain de configuração: configure de acordo com o sistema operacional do seu PC (Windows, Linux ou Mac OS).
Obtenha ESP-MDF:
Se você clonar sem a opção --recursive, navegue até o diretório esp-mdf e execute o comando git submodule update --init --recursive
Configure o caminho do ESP-MDF: O Toolchain usa a variável de ambiente MDF_PATH para acessar o ESP-MDF. A configuração dessa variável é semelhante à da variável IDF_PATH. Por favor, consulte Adicionar IDF_PATH ao perfil do usuário.
Iniciar um projeto: A palavra project refere-se ao exemplo de comunicação entre dois dispositivos ESP-MESH.
Atualizar ESP-MDF:
Colocando em execução em 2 NINA W102.
Duvidas:
suporte@smartcore.com.br
REFERÊNCIAS
https://github.com/espressif/esp-mdf
https://github.com/espressif/esp-mdf/tree/master/examples/get-started
Sobre a SMARTCORE
O ESP-MDF, ou Espressif Mesh Development Framework, é uma estrutura de desenvolvimento para o ESP-MESH, um protocolo de rede construído sobre o protocolo Wi-Fi. O ESP-MDF é baseado no chip ESP32.
Visão global
O ESP-MDF é baseado na pilha de protocolos ESP-MESH para facilitar o desenvolvimento do ESP-MESH. O ESP-MDF fornece os seguintes recursos:
Configuração rápida de rede: além da configuração manual com os aplicativos de configuração de rede, como o ESP-MESH App ou aplicativos de terceiros semelhantes, o ESP-MDF oferece uma maneira encadeada de configuração de rede, durante a qual os dispositivos estabelecem uma rede de forma autônoma e rápida, e formar uma área de cobertura maior.
Depuração eficiente: são suportadas várias abordagens de depuração, como transmissão sem fio de logs e depuração sem fio, depuração por meio de um terminal de comando etc.
Controle de LAN: a rede pode ser controlada por um aplicativo, sensor etc.
Diversas demonstrações de aplicação: Oferece soluções abrangentes baseadas em ESP-MESH nas áreas de iluminação, etc.
Para implementação foi seguido o roteiro proposto em
https://github.com/espressif/esp-mdf/tree/master/examples/get-started
Ele apresenta uma maneira rápida de construir uma rede ESP-MESH sem um roteador. Para executar este exemplo, você precisa de pelo menos duas placas de desenvolvimento, uma configurada como nó raiz e a outra como nó não raiz. Neste exemplo, todos os dispositivos são nós não raiz por padrão.
Nó raiz: existe apenas um nó raiz em uma rede ESP-MESH. As redes MESH podem ser diferenciadas por seus MESH_ID e canais.
Nó não raiz: inclua nós folha e nós intermediários, que selecionam automaticamente seus nós pai de acordo com as condições da rede.
Você precisa acessar o submenu Configuração de exemplo e configurar um dispositivo como nó raiz e os outros como nós não raiz com make menuconfig (Make) ou idf.py menuconfig (CMake).
Você também pode acessar o submenu Component config -> MDF Mwifi e configurar os parâmetros relacionados ao ESP-MESH, como número máximo de camadas, número de dispositivos conectados em cada camada, intervalo de transmissão etc.
Defina a função de retorno de chamada do evento;
Inicialize o wifi e inicie o ESP-MESH;
Crie uma função de manipulador de eventos:
Nós não raiz enviam o pacote de dados Hello root! ao nó raiz em um intervalo de três segundos e aguarde sua resposta;
O nó raiz responde o nó Hello done!quando recebe os dados.
Criar um timer: imprima no horário especificado as informações da rede ESP-MESH sobre as camadas, a força do sinal e a memória restante do nó pai.
O log do nó raiz ficaria assim:
Instale
Toolchain de configuração: configure de acordo com o sistema operacional do seu PC (Windows, Linux ou Mac OS).
Obtenha ESP-MDF:
git clone --recursive https://github.com/espressif/esp-mdf.git
Se você clonar sem a opção --recursive, navegue até o diretório esp-mdf e execute o comando git submodule update --init --recursive
Configure o caminho do ESP-MDF: O Toolchain usa a variável de ambiente MDF_PATH para acessar o ESP-MDF. A configuração dessa variável é semelhante à da variável IDF_PATH. Por favor, consulte Adicionar IDF_PATH ao perfil do usuário.
export MDF_PATH=~/esp/esp-mdf
Iniciar um projeto: A palavra project refere-se ao exemplo de comunicação entre dois dispositivos ESP-MESH.
cp -r $MDF_PATH/examples/get-started/ . cd get-started/Build e Flash: Somente o número da porta serial precisa ser modificado. De resto, apenas mantenha a configuração padrão intacta.
make menuconfig (mude para 2MB, por causa do NINA W102) Mude partition para # Name, Type, SubType, Offset, Size, Flags nvs, data, nvs, 0x9000, 16k otadata, data, ota, 0xd000, 8k phy_init, data, phy, 0xf000, 4k ota_0, app, ota_0, 0x10000, 1M #ota_1, app, ota_1, , 1920k coredump, data, coredump, , 64K reserved, data, 0xfe, , 128K make erase_flash flashDebug
make monitor
Atualizar ESP-MDF:
cd ~/esp/esp-mdf git pull git submodule update --init --recursive
Colocando em execução em 2 NINA W102.
No repositório da Smartcore você pode pegar os bins e gravar respeitando os endereços abaixo!
0xd000 ota_data_initial.bin
0x1000 bootloader.bin
0x10000 get-started.bin
suporte@smartcore.com.br
REFERÊNCIAS
https://github.com/espressif/esp-mdf
https://github.com/espressif/esp-mdf/tree/master/examples/get-started
Sobre a SMARTCORE
A SmartCore fornece módulos para comunicação wireless, biometria, conectividade, rastreamento e automação.
Nosso portifólio inclui modem 2G/3G/4G/NB-IoT/Cat.M, satelital, módulos WiFi, Bluetooth, GNSS / GPS, Sigfox, LoRa, leitor de cartão, leitor QR code, mecanismo de impressão, mini-board PC, antena, pigtail, LCD, bateria, repetidor GPS e sensores.
Mais detalhes em www.smartcore.com.br