Comunicação ESP-NOW e suas aplicações
Um dos microcontroladores mais populares na atualidade é o ESP32, conhecido por sua versatilidade e ampla gama de aplicações. Uma das ferramentas que ampliam sua utilidade é o protocolo ESP-NOW, projetado para possibilitar uma comunicação sem fio eficiente e rápida entre dispositivos ESP32. Vale a pena entender como esse protocolo opera e como ele pode ser aproveitado em diversas situações.
O ESP32 e o ESP8266
ESP8266 e ESP32 são séries de microcontroladores desenvolvidos pela Espressif Systems, conhecidos por seu baixo custo e consumo de energia. Amplamente utilizados em projetos de IoT (Internet das Coisas), robótica, automação residencial e outros que exigem conectividade com a internet, esses microcontroladores apresentam um módulo integrado Wi-Fi e, no caso do ESP32, também Bluetooth. Além disso, contam com uma antena integrada, o que os torna ferramentas eficientes para comunicação em curtas distâncias ou acesso à internet.
O ESP32 sucede o ESP8266, oferecendo uma implementação mais abrangente em projetos devido às suas diversas funcionalidades, maior número de GPIOs e interfaces em comparação com seu antecessor. Ambos os microcontroladores podem ser programados em C++ utilizando a IDE do Arduino. Em seguida, será apresentado um exemplo de código.
O protocolo ESP-NOW
Ele é um protocolo de comunicação desenvolvido pela Espressif que permite a comunicação sem fio entre vários dispositivos sem a necessidade de uma rede específica. Essa tecnologia permite que pequenos pacotes de dados sejam trocados em alta velocidade a uma distância de até 200 metros, utilizando bandas de frequência de 2,4 GHz. Uma das vantagens da utilização desse protocolo é que as estações ESP32 podem se ligar à rede Wi-Fi em paralelo. Vale ressaltar que o ESP-NOW também pode ser utilizado para a comunicação entre as placas ESP8266, sendo necessário adaptar o código a esse tipo de placa.
Programação do ESP-NOW
Neste teste, iremos usar o ESP8266. O primeiro passo é descobrir o endereço MAC do ESP receptor, pois, por meio deste endereço, o emissor identifica para onde enviar a mensagem com os dados. Para isso, é usado o programa abaixo, no qual o MAC address aparecerá no monitor serial do IDE.
Programação do ESP emissor
Primeiramente, é necessário colocar o MAC Address do destinatário da mensagem da seguinte forma:
Obs: Os valores do endereço MAC devem ser colocados depois do “x”.
Os dados serão enviados por meio de uma estrutura que deve ser a mesma tanto no emissor quanto no receptor. Ela deve ser criada antes da função void setup. Além disso, uma struct_message, nomeada como myData, será criada.
Obs: Neste exemplo, é colocado uma string, mas é possível colocar valores inteiros (int), caracteres (char), entre outros.
Também é necessário criar uma função de callback quando os dados são enviados. Isso será feito da seguinte forma:
Na função void setup, o ESP é colocado no modo Wi-Fi Station e o ESP-NOW é inicializado:
Além disso, o microcontrolador é colocado na função de controlador, e a função de callback a ser chamada quando os dados são enviados é registrada.
O destinatário da mensagem é registrado, e a mensagem é enviada da seguinte maneira:
O código completo do ESP emissor é mostrado abaixo:
Programação do ESP receptor
Algumas partes são parecidas com o programa do emissor. A função de callback é criada:
Na função void setup, o dispositivo é colocado no modo Wi-Fi Station e o ESP-NOW é inicializado:
Depois, o ESP é colocado como o receptor da mensagem e a função de callback a ser chamada quando os dados são recebidos é registrada.
O código completo do ESP receptor é mostrado abaixo:
Conclusão
Compreendendo a programação, é possível realizar adaptações nos projetos. Assim, o protocolo ESP-NOW oferece diversas vantagens, destacando-se por sua eficiência na comunicação sem fio e em alta velocidade. Consequentemente, é amplamente aplicável em uma variedade de projetos, incluindo alguns desenvolvidos no PET Elétrica UFJF.