Use microcontrollers in more advanced way than "load a SDK and bitbang some pins" and you will know.
Having certain peripherals can make some projects go from hard to easy. Power usage can also be huge factor, althought of course if you already have ESP32 on board those aren't exactly great for that.
Like, if you're making motor driver, you probably gonna want some featureful counters with good PWM options, maybe even some floating point instructions if you do something fancy. Probably also good ADCs.
But that needs to be often run realtime or near-realtime so having Wifi/BT stack can add you some headache, both in analog (interference) and digital domain (making sure wifi interrupt wont break timings on rest of your code).
Lastly division of responsibilities is easier to code. ESP32 part for example can focus entirely on wifi/UI/APIs, while the controlled MCU can do just the control and talking with ESP32.
Having certain peripherals can make some projects go from hard to easy. Power usage can also be huge factor, althought of course if you already have ESP32 on board those aren't exactly great for that.
Like, if you're making motor driver, you probably gonna want some featureful counters with good PWM options, maybe even some floating point instructions if you do something fancy. Probably also good ADCs.
But that needs to be often run realtime or near-realtime so having Wifi/BT stack can add you some headache, both in analog (interference) and digital domain (making sure wifi interrupt wont break timings on rest of your code).
Lastly division of responsibilities is easier to code. ESP32 part for example can focus entirely on wifi/UI/APIs, while the controlled MCU can do just the control and talking with ESP32.