Il Microcontrollore con Superpotenze
L’ESP32 è un microcontrollore con WiFi e Bluetooth integrati che costa meno di €5. È la base perfetta per progetti IoT e automazione!
Perché ESP32?
- 📡 WiFi + Bluetooth integrati
- ⚡ Dual core a 240MHz
- 💾 520KB RAM (vs 2KB di Arduino Uno)
- 🔌 34 GPIO programmabili
- 💰 €3-5 per modulo
- 🔋 Deep sleep per progetti battery-powered
Setup Iniziale
// Arduino IDE
1. File > Preferenze
2. URL gestione schede:
https://dl.espressif.com/dl/package_esp32_index.json
3. Strumenti > Scheda > ESP32 Dev Module
4. Installa driver CP210x o CH340
Progetto 1: Web Server con LED Control
Controlla LED da browser!
#include <WiFi.h>
#include <WebServer.h>
const char* ssid = "TuoWiFi";
const char* password = "TuaPassword";
WebServer server(80);
int ledPin = 2;
void handleRoot() {
String html = "<h1>ESP32 Web Server</h1>";
html += "<a href='/on'>LED ON</a><br>";
html += "<a href='/off'>LED OFF</a>";
server.send(200, "text/html", html);
}
void setup() {
pinMode(ledPin, OUTPUT);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
}
server.on("/", handleRoot);
server.on("/on", []() {
digitalWrite(ledPin, HIGH);
server.send(200, "text/html", "LED ON");
});
server.on("/off", []() {
digitalWrite(ledPin, LOW);
server.send(200, "text/html", "LED OFF");
});
server.begin();
}
void loop() {
server.handleClient();
}
Progetto 2: Stazione Meteo WiFi
Sensori: DHT22 (temperatura/umidità) + BMP280 (pressione)
Features:
- 📊 Dashboard web con grafici
- ☁️ Upload dati a ThingSpeak/MQTT
- 📱 Notifiche push se temperatura anomala
- 📈 Storico dati su SD card
Progetto 3: Smart Doorbell con Camera
ESP32-CAM (€8) + notifiche Telegram!
Funzionalità:
- 📸 Foto quando qualcuno suona
- 💬 Invia foto su Telegram
- 🔔 Notifica istantanea
- 🎥 Stream video on-demand
Progetto 4: Ambient Light per Monitor
Clone di Philips Ambilight!
Setup:
- ESP32 + WS2812B LED strip
- Hyperion/Prismatik su PC
- Streaming colori via UDP
- Effetti reattivi a schermo
Progetto 5: WiFi Scanner di Rete
Analizza reti WiFi circostanti:
#include "WiFi.h"
void setup() {
Serial.begin(115200);
WiFi.mode(WIFI_STA);
WiFi.disconnect();
}
void loop() {
int n = WiFi.scanNetworks();
for (int i = 0; i < n; ++i) {
Serial.print(WiFi.SSID(i));
Serial.print(" (");
Serial.print(WiFi.RSSI(i));
Serial.print(" dBm) ");
Serial.println(WiFi.encryptionType(i));
}
delay(5000);
}
Progetto 6: Bluetooth Audio Receiver
Trasforma vecchie casse in speaker Bluetooth:
- ESP32 + modulo I2S DAC
- Bluetooth A2DP sink
- Qualità audio 16-bit
- Costo totale: €10
Progetto 7: Smart Plant Watering
Irrigazione automatica con monitoraggio:
- 💧 Sensore umidità terreno
- ⛲ Pompa acqua 5V
- 📱 Dashboard con grafici
- ⏰ Schedule programmabile
- 🌦️ Integrazione meteo API (non innaffia se piove!)
Progetto 8: NTP Clock con Display
Orologio sincronizzato via internet:
- Display OLED 128×64
- Sync con server NTP
- Mostra temperatura/meteo
- Multiple timezone
Progetto 9: MQTT Home Automation Hub
Centro di controllo domotico:
// Integra con Home Assistant
- Controllo luci
- Lettura sensori
- Automazioni
- Voice control (Alexa/Google)
Progetto 10: WiFi Deauther (Solo Scopo Educativo!)
⚠️ Attenzione: Usare solo sulla propria rete per testing!
Testa sicurezza rete WiFi:
- Scan reti e dispositivi
- Deauth packets
- Beacon spam
- Probe request sniffing
Librerie Essenziali
- 📡 WiFi.h – Gestione WiFi
- 🌐 WebServer.h – Server HTTP
- 💬 PubSubClient – MQTT
- 🔵 BluetoothSerial – BT classico
- ⚡ BLE – Bluetooth Low Energy
- 📊 ArduinoJson – Parse JSON
- ⏰ NTPClient – Sync tempo
Deep Sleep per Batteria
Fai durare la batteria mesi:
// Deep sleep per 5 minuti
esp_sleep_enable_timer_wakeup(5 * 60 * 1000000);
esp_deep_sleep_start();
// Consumi:
// Active: ~160mA
// Light sleep: ~0.8mA
// Deep sleep: ~10μA (!)
OTA Updates
Aggiorna firmware via WiFi:
#include <ArduinoOTA.h>
void setup() {
ArduinoOTA.setHostname("esp32-device");
ArduinoOTA.begin();
}
void loop() {
ArduinoOTA.handle();
}
Troubleshooting Comune
- ESP non si connette al WiFi
→ Verifica SSID/password
→ Prova 2.4GHz (non 5GHz) - Upload fallisce
→ Premi BOOT durante upload
→ Controlla driver USB - Crash random
→ Alimentazione instabile (usa condensatore 100μF)
→ Stack overflow (aumenta stack size)
Dove Comprare
- 🇨🇳 AliExpress – €3-5 (spedizione lenta)
- 🇪🇺 Amazon – €8-12 (veloce)
- 🏪 Store locali – Melopero, Robot-Italy
ESP32 vs Arduino
| Feature | Arduino Uno | ESP32 |
|---|---|---|
| CPU | 16MHz | 240MHz (dual core) |
| RAM | 2KB | 520KB |
| WiFi | ❌ | ✅ |
| Bluetooth | ❌ | ✅ |
| Prezzo | €20 | €5 |
Spoiler: ESP32 vince su tutto! 🏆
Prossimi Passi
Una volta che padroneggi ESP32:
- 🔧 ESP-IDF – Framework nativo Espressif
- 🐍 MicroPython – Python su ESP32
- 📱 ESP-NOW – Comunicazione senza WiFi
- 🎵 I2S Audio – Progetti audio avanzati
L’ESP32 è un game-changer per i maker. Con €5 hai un computer con WiFi! Cosa aspetti? 🚀