Microcontrolere & IoT Wireless

ESP32: Arhitectură Dual-Core, Wi-Fi & Deep Sleep

Stăpânește SoC-ul favorit pentru IoT: pinii critici de strapping, conflictul ADC2 cu stiva Wi-Fi și calculul bugetului de energie în deep sleep.

1. De ce domină ESP32 ecosistemul embedded?

Spre deosebire de un Arduino Uno clasic (procesor pe 8 biți la 16 MHz cu 2 KB RAM), modulul ESP32 integrează un procesor pe 32 de biți Tensilica Xtensa LX6 la 240 MHz cu 520 KB SRAM, radio Wi-Fi 802.11 b/g/n și Bluetooth 4.2 / BLE pe aceeași pastilă de siliciu. Poți aloca Nucleul 0 exclusiv stivei de rețea TCP/IP, lăsând Nucleul 1 100% liber pentru algoritmi de control în timp real fără întârzieri (zero latency jitter).

Arhitectură Dual-Core
240 MHz • 600 DMIPS

Suficientă putere pentru procesare audio, criptare TLS/HTTPS și servere web direct pe cip.

Coproducție Wireless
Wi-Fi 2.4GHz + BLE 4.2

Provizionare rapidă prin telefon prin BLE și transfer de date la distanță prin Wi-Fi MQTT.

Coprocestor ULP (Ultra Low Power)
10-15 µA Deep Sleep

Poate monitoriza senzori analogici în timp ce nucleele principale sunt oprite complet.

Inspector Pini GPIO & Capcane de Boot (Strapping Pins)

3.3V Logic Level MAX

Apasă pe un pin pentru a afla dacă este sigur de folosit sau dacă poate bloca bootarea plăcii.

GPIO 0: Pin de Mod Bootloader (Critic)

Dacă acest pin este tras la masă (LOW) în momentul pornirii sau resetării, ESP32 intră în modul de descărcare firmware prin UART. Dacă ai conectat un senzor care trage linia la 0V, placa nu va mai rula codul tău!

Calculator Inginerec: Buget de Energie & Autonomie Baterie

Emisia Wi-Fi consumă până la 240mA. Pentru a funcționa luni de zile pe o celulă Li-Ion 18650, ESP32 trebuie ținut în Deep Sleep 99% din timp.

Capacitate Baterie Li-Ion:2000 mAh
Interval de Trezire (Sleep):15 minute
Timp Activ per Măsurătoare:2 secunde
Autonomie Teoretică Estimată
~295.9 Zile (9.7 Luni)

Curent mediu ponderat: 0.282 mA. În deep sleep, consumul scade la doar 15 µA.

Sfat Critic pentru Plăcile Dev

Plăcile de dezvoltare ieftine au un cip USB-Serial (CP2102) și un regulator liniar care consumă 10-15mA chiar și când ESP32 doarme! Pentru proiecte reale cu baterii, folosește module precum ESP32-WROOM conectate la un regulator de tensiune ultra-low Iq.

2. Cod Model: Conectare Wi-Fi & Deep Sleep cu RTC Timer

esp32_deep_sleep_wifi.ino
#include <WiFi.h>

const char* ssid = "NumeleReteleiTale";
const char* password = "ParolaTaWiFi";

void setup() {
  Serial.begin(115200);
  delay(500);

  Serial.println("\n[ESP32] Initializare Wi-Fi...");
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Serial.println("\n[ESP32] Conexiune stabilita cu succes!");
  Serial.print("Adresa IP alocata: ");
  Serial.println(WiFi.localIP());
}

void loop() {
  // Masurare senzor si intrare in deep-sleep
  Serial.println("Trimitere telemetrie... Somn 15 minute.");
  esp_sleep_enable_timer_wakeup(15 * 60 * 1000000ULL); // 15 minute in microsecunde
  esp_deep_sleep_start();
}