ESP32 Cronjob Micro-Server
๐ฏ Objectives
- A self-contained cronjob server on ESP32.
- Web UI for job management.
- Store jobs + logs on SD card.
- Execute scheduled HTTP requests.
- Include cooling fan control + temperature monitoring.
- Provide built-in UPS system (direct mains with automatic battery backup).
๐๏ธ System Architecture
Hardware Blocks
- ESP32: main controller (Wi-Fi, task scheduling, HTTP client/server).
- SD Card: persistent storage (
jobs.json, logs).
- Micro SD Card Module: Card Reader Module Adapter SPI (6 pins).
- Fan + Temp Sensor: cooling system (GPIO + MOSFET + BME280 sensor).
- Power System (UPS-style):
- 5V Adapter โ TP4056 (charging) โ Li-ion battery โ Step-down (3.3V for ESP32).
- ESP32 always runs from adapter (mains).
- When mains disconnects โ auto-switch to Li-ion battery.
- ESP32 monitors battery voltage via ADC.
Software Blocks
- Web Server: UI + REST API endpoints.
- Scheduler: Cron parser + FreeRTOS tasks.
- Job Executor: HTTP client with retry logic.
- Storage Manager: JSON read/write to SD.
- Fan Control: based on temperature threshold.
- Power Monitor: mains/battery status, low battery alerts.
โ๏ธ Workflow
1. Boot-up
- Initialize SD, Wi-Fi, RTC/NTP sync.
- Load
jobs.json into memory.
- Start Web UI + API server.
- Launch background tasks (scheduler, monitoring).
2. Adding a Job (via Web UI)
- User submits form (URL, method, cron expression, retries, headers, etc.).
- ESP32 stores job in memory + updates
jobs.json.
3. Scheduler Operation
- Cron parser checks system time vs. job rules.
- When a match occurs โ dispatch task to executor.
4. Job Execution
- Perform HTTP request (GET/POST).
- Retry on failure (configurable).
- Log results (
errors.log on SD).
5. Cooling System
- Read temperature (BME280).
- Adjust fan speed via PWM based on temperature.
6. Power Monitoring (UPS)
- ESP32 normally powered from mains (5V adapter).
- On mains loss โ seamless switch to Li-ion battery.
- Monitor battery voltage via ADC.
- On low battery โ log + optional alert (HTTP callback).
๐ Implementation Plan
Phase 1: Core Setup
Phase 2: Job Management
Phase 3: Monitoring & Cooling
Phase 4: Power System (UPS)
Phase 5: Polish
๐ File Structure (Proposed)
src/
โโโ sketch.ino (main file)
โโโ scheduler.h
โโโ http_client.h
โโโ storage.h
โโโ fan_control.h
โโโ power_monitor.h