Next steps for you as a developer

If you have made it so far, congratulations! You are at a stage where you are not only familiar with ESP32 but also have enough know-how to explore it further. And there is indeed a lot more to explore. Several cool applications can be realized if you know some additional concepts. In this chapter, I'll just be giving you directions for this exploration. In fact, it will be much better if I just list them down. Given below is the non−exhaustive list of topics/ areas which you can explore further, and concepts which you can learn about:

  • Firmware

    • Sleep modes − You will require to know these in applications which have a scarcity of power

    • Timers − For scheduled tasks

    • Interrupts − For tasks triggered by an asynchronous event

    • Watchdog Timeout − Reset your microcontroller if it is stuck somewhere for too long

    • Mutex and Semaphore (RTOS related) − When multiple threads want to access a shared resource

    • Adjusting the partitions of ESP32 for providing more space to SPIFFS

  • Sensor Interface

    • Touch Sensors with ESP32

    • Hall Sensor with ESP32

    • GNSS receiver with ESP32 (almost all IoT devices have a GNSS receiver for getting location information)

  • Network Related

    • BLE (Bluetooth Low Energy) with ESP32

    • Connecting ESP32 to an external Bluetooth field

    • WiFi in Access Point (AP) with ESP32

    • ESP32 as a web server

    • Captive portal using ESP32 (in restaurants or airports, the screen that pops up as soon as you connect to the WiFi, prompting you for your mobile number, that is called the Captive Portal)

    • Data transfer using UDP

    • Data transfer using TCP

    • DNS Server

    • Data transfer over LoRa

    • MQTT with brokers on AWS/ Azure

  • Peripheral connectivity

    • CAN protocol (used for automotive applications)

    • I2C and SPI with multiple slaves

    • Interface of SD Card with ESP32

    • One wire protocol

  • Data processing

    • FFT on ESP32

    • Power calculations (RMS value, Peak to Peak, power factor, etc.)

Don't get overwhelmed by looking at the above list. You don't have to learn everything in a day. Nor are you required to learn everything. As mentioned in the beginning, the above list just provides you with directions for further exploration. You can choose topics that suit your application. For all the topics where you have an example code available, there is no better place to get started. For others, you can read the documentation of the available libraries related to those topics, go through their .h files, and browse through the internet for examples. With such a massive online community, it is very difficult to not find help online. So, keep learning and keep exploring .