Para el ESP32, además de Lua, también se puede programar con micropython, y más comúnmente con el lenguaje C de arduino, utilizando el IDE de arduino o platformio con visual studio Code. Y si quieres profundizar más puedes utilizar el SDK del fabricante con el ESP-IDF que es el IDE. Muy versátil este módulo que tiene dos nucleos! Uno dedicado al manejo del stack de las redes bluetooth y wifi, el otro nucleo lo dejan libre para aplicaciones de usuario. Esto lo logran utilizando el sistema operativo FreeRTOS de forma transparente para el usuario. Pero disponible para usar todas las funciones del RTOS tanto con el ESP-IDF como con el Plugin de Arduino.
Saludos!