Projects so far:
- GPIO with hardware interrupt triggered by a button press
- Implementation of a RESTful API in which the ESP32 sends data (global counter) to a Flask web server every 5 seconds (HTTP and WiFi client)
- Modified version of the RESTful API in which the ESP32 sends weather data (temperature and humidity using DHT11) using the DHT esp-idf component, to the API endpoint
- Using a shared queue for multiple tasks for multiple real-time data transmission pipelines, using a task for counter incrementation and another task for DHT data processing, tested with Postman:
- Timestamping POST requests on the Flask server and importing an excel spreadsheet for weather data logging and ensuring the ESP32 is sending out messages every 5 seconds
- Implementation of deep sleep state in between data transmissions (every minute) over HTTP using the real time clock
- Using RTC memory to store data in between deep sleep resets
- Using Event Groups to synchronize the tasks so that the HTTP POST request only occurs after all the data fetching tasks have run
- Using MQTT on subscribe data events to trigger ESP32 data transmission using task notifications and MQTT callback function
- Using MQTT event to trigger OTA (Over-the-Air) ESP32 HTTP update instead of continuously polling
- Using NVS (Non Volatile Storage) to keep track of variables amidst the numerous deep sleep resets
- OTA HTTP updates in chunks for low download speeds