Un problema muy común al utilzar la comunicación serial con este dispositivo es que la transmision o recepción no trabaje correctamente o simplemente no funcione.
Esto puede ser causado por diversos motivos, pero el mas común de ellos es que los pines a los que está asignado el puerto UART por defecto, estén siendo utilizados en la tarjeta de desarrollo para otra función, la embedded flash, onboard PSRAM u otros perifericos. Por ejemplo, en la tarjeta mas común del ESP32-WROOM-32 la distribución de pines (pinout), se encuentra de la siguiente manera:
| UART 0 | UART1 | UART2 |
TX | 1 | 9 | 17 |
RX | 3 | 10 | 16 |
El puerto UART0 no es posible utilizarlo ya que esta designado para la terminal.
Si quisieramos utilizar el puerto UART1 por default deberíamos usar GPIO9 para RX1 y GPIO10 para TX1. Lo cual muy probablemente nos genere problemas y la recepción no funcionaría corretamente.
SOLUCIÓN
Cualquier GPIO puede ser utilizado para la comunicación UART, basta con definir los pines a utilizar desde el inicio al momento de crear el objeto en micropython.
Una vez cargado el programa en tu ESP32, puedes probar haciendo un puente entre la TX y RX que asignaste en el programa y podras observar en la consola los datos que esta recibiendo tu ESP32 por el puerto serial. Podrás observar algo así:
Si tienes alguna duda, puedes enviar un mensaje al chat web de la págino o enviarme un un DM haciendo click aquí.
Comments