By now, it's no secret that the ESP32 is my go-to chip for making IoT devices. They're small, powerful, have a ton of onboard features, and they're relatively easy to program.
However, when using it together with Arduino, all your code runs on a single core. That seems a bit wasteful, so let's change that by using FreeRTOS to schedule tasks across both cores.