← all lessons
Capstone · #18 of 48

Wi‑Fi Transmit Strategy

Batching, Retries, Timeouts, Security

Why it matters

Wi‑Fi is power-hungry and unreliable. Efficient transmission strategy is critical for battery life.

The idea

Power Consumption

Wi‑Fi is expensive:

Connection Strategy

Transmission Protocol

Options:

Batching

Send multiple readings at once:

Retry Strategy

Demo

Wi‑Fi transmission is network communication, not visual. Review this before implementing data transmission.

Key takeaways

Going deeper

For production, use MQTT with QoS level 1 (at least once delivery). For simple projects, HTTP POST to a webhook is sufficient. Always use HTTPS in production (but accept the power cost). Consider using a message queue (like AWS IoT Core) for reliability.

Math details

Power consumption:
  Wi‑Fi idle: 20mA × 10s = 200mAs (wasteful!)
  Wi‑Fi connect: 80mA × 2s = 160mAs
  Wi‑Fi transmit: 170mA × 0.2s = 34mAs
  Total: ~194mAs (if Wi‑Fi turned off immediately)

Connection overhead:
  TCP handshake: ~100ms
  TLS handshake: ~500ms (HTTPS)
  HTTP request: ~50ms
  Total: ~650ms (HTTP) or ~1150ms (HTTPS)

Batching benefit:
  Single reading: 650ms overhead
  10 readings: 650ms + (10 × 50ms) = 1150ms
  Overhead per reading: 115ms (vs 650ms single)

Implementation

LLM Prompt: Wi‑Fi Transmit with Retry

Write Rust code for ESP32 Wi‑Fi HTTP POST with retry logic.
Include: connect Wi‑Fi (with timeout), HTTP POST request (with retry),
exponential backoff, turn off Wi‑Fi after transmit. Use esp-wifi crate.
Handle errors gracefully — log and continue to sleep.

Lab Exercise

  1. Set up simple HTTP server (or use webhook service)
  2. Implement Wi‑Fi connect with timeout (10s)
  3. Implement HTTP POST with retry (3 attempts)
  4. Measure power consumption: connect vs transmit
  5. Test with poor signal — verify retry logic works

full glossary →