ESP32

Três maneiras de configurar a segunda serial do ESP32

Esse não é um artigo que se diga: “nossa, como isso é importante!” – mas é legal saber mais de uma maneira de fazer algo, ainda mais 3 maneiras de configurar a segunda serial do ESP32.

Poderia ser a primeira serial, sem problemas. Eu citei a segunda porque é um extra. Vamos aos códigos.

Configurar a segunda serial do ESP32 pela API do Arduino

Esse é o mais comum:

Esse é o jeito tradicional para quem programa pela IDE do Arduino. Não tem segredo e nem o que falar a respeito.

Configurar a segunda serial do ESP32 utilizando hardwareSerial

O segundo é através do hardwareSerial:

Também não tem segredo, só alguns caracteres a mais. Inclue-se a biblioteca harwareSerial.h e cria-se o objeto da serial com o nome que quiser. Em setup() inicia-se  a serial passando além da velocidade, os bits de paridade (nunca usei outra coisa que não fosse 8N1) e os pinos de IO selecionados para TX e RX.

Configurar a segunda serial do ESP32 ESP-IDF

Agora vamos ao terceiro modo, o modo “ESP-IDF”:

Assusta um pouco no começo, mas é simples também. Primeiro, inclui-se o driver da UART e defini-se um buffer. Depois, temos a estrutura da configuração da UART. Não precisamos decorar, é só ter guardado e copiar quando precisar.

Para atribuir as configurações e definiar a uart, utilizamos a função uart_param_config, onde passamos a UART a configurar e passamos como segundo parâmetro a estrutura da configuração para a porta.

A função uart_set_pin nos permite configurar 4 parâmetros, sendo que os dois mais importantes para nós são os pinos TX e RX. O primeiro parâmetro é a referência à serial que está sendo configurada. Se quiser, pode utilizar todos os parâmetros padrão, como está no exemplo acima, para configurar a UART0.

Após configurado, basta fazer a instalação do driver, como exemplificado na linha uart_driver_install. Os parâmetros do driver são:

  • Tamanho do buffer de envio
  • Tamanho do buffer de recepção
  • Manipulador da fila de eventos e tamanho
  • Flags para alocar uma interrupção

Ler dados da serial

Utilizando o modo ESP-IDF, tem um pouco mais de conceitos. A função de leitura lê o tamanho do buffer e retorna o tamanho do array de dados alocados. Basicamente, utiliza-se:

Depois é só ler do buffer.

Escrever dados na serial

Para escrever também é necessário um pouco de trabalho. Não precisamos de um retorno, portanto os parâmetros são a UART, os dados e o tamanho do buffer:

No sketch do Arduino esse código fica assim:

Esse exemplo lê 1 byte vindo da serial e, sendo ‘d’, devolve a URL do site. De outro modo, ignora.

configurar a segunda serial

Um artigo com mais referências sobre as configurações da serial com as funções do FreeRTOS podem ser vistos nesse link.

Se quiser tratar interrupções na serial do ESP32, escrevi esse outro artigo.

Pra finalizar com um bônus, ainda podemos utilizar softwareSerial, como exemplificado nesse artigo com Digispark.

Onde comprar ESP32?

Se ainda não quis comprar um ESP32, não tenha receio de adquiri-lo, você não vai se arrepender!

Um dos nossos parceiros é o CurtoCircuito, que tem alguns modelos. Com outros modelos, temos o MASUGUX. É diversão garantida.

Até o próximo artigo e, não deixe de curtir nossa página no facebook pela janelinha ali na coluna da direita!