The Promise + Safety · #0 of 20
Course Map
What You'll Build
Why it matters
By the end of this course, you’ll build a battery-powered ESP32 environmental monitor that runs for months on a single charge. This is the roadmap.
The idea
The Capstone Project
You'll build a battery-powered ESP32 environmental monitor that:- Measures temperature, humidity, and pressure via I²C sensor
- Transmits data over Wi‑Fi every 5 minutes
- Sleeps in deep sleep mode between readings
- Runs for months on a single LiPo battery
<div class=
Demo
This is a course overview — no demo yet! Scroll down to see the full curriculum organized by phase.
Key takeaways
- The capstone is a battery-powered ESP32 environmental monitor
- You’ll learn circuits → microcontrollers → ESP32 → capstone
- Every lesson builds toward the final project
- Real projects require power optimization and careful design
Going deeper
This course uses Rust as the primary toolchain (esp-hal / esp-idf). Rust’s memory safety and zero-cost abstractions make it ideal for embedded systems. If you’re new to Rust, don’t worry — we’ll cover the essentials as we go.
Math details
The capstone power budget (rough estimate):
Active mode: 80mA × 2s = 160mAs per reading
Deep sleep: 10µA × 298s = 2.98mAs per cycle
Total per 5min cycle: ~163mAs
For a 2000mAh battery:
Cycles = (2000mAh × 3600s/h) / 163mAs ≈ 44,000 cycles
Lifetime ≈ 44,000 × 5min ≈ 153 days
(Real-world will be less due to Wi‑Fi connection overhead, but this shows the math.)
Implementation
Hardware Shopping List
- ESP32-DevKitC or ESP32-WROOM-32 module
- SHT31 or BME280 sensor (I²C, 3.3V)
- LiPo battery (3.7V, 2000mAh recommended)
- LiPo charger/protection board (TP4056 + DW01)
- Breadboard + jumper wires
- 10kΩ resistors (for I²C pull-ups)
Software Setup
# Install Rust toolchain curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | shInstall espup (ESP32 Rust toolchain installer)
cargo install espup
Set up ESP32 Rust environment
espup install