IoT sensor monitoring system built with Rust. Reads temperature and humidity data from an ESP32 device and stores it in a backend server.
firmware/- ESP32 embedded Rust firmwarebackend/- Axum HTTP server with SQLite databasefrontend/- Svelte web interface (in development)
- ESP32 development board
- SHT3x temperature/humidity sensor
- SSD1306 OLED display (128x64)
- I2C connections on GPIO21 (SDA) and GPIO22 (SCL)
cd backend
cargo runServer runs on http://localhost:3000
-
Install ESP Rust toolchain:
# Follow instructions at https://esp-rs.github.io/book/installation/index.html -
Configure WiFi and server settings:
cd firmware cp .env.example .env # Edit .env with your WiFi credentials and backend IP
-
Flash to ESP32:
cargo run --release
POST /reading- Submit sensor reading (JSON:{"temperature": float, "humidity": float})GET /reading/latest- Get most recent reading
The ESP32 firmware reads sensor data every 10 seconds, displays it on the OLED screen, and posts it to the backend server over WiFi. The backend stores all readings in a SQLite database with timestamps.
MIT