L'ESP32 è un microcontrollore WiFi+Bluetooth prodotto da Espressif che costa tra 6 e 15€ a seconda del modulo. Ha 34 GPIO, ADC da 12 bit, supporto per UART/SPI/I2C/PWM e consuma pochi milliwatt in sleep. Per un campeggio è il componente perfetto per automatizzare tutto quello che non è coperto dai PLC industriali costosi.
Cosa si può automatizzare con un ESP32 in campeggio
- Sbarra di ingresso: un relè da 5V collegato all'ingresso impulso della sbarra. Quando il gestionale riceve una prenotazione valida, invia un comando MQTT → ESP32 chiude il relè per 200ms → sbarra si apre.
- Citofono IP: integrazione via SIP con un numero VOIP, l'ospite chiama → il personale risponde dall'app → apre la sbarra da remoto.
- Contatore consumo energia per piazzola: sensore SCT-013 (current transformer) sull'alimentazione della colonnina. L'ESP32 legge kWh in tempo reale e li manda al gestionale per la fatturazione automatica.
- Stazione meteo: sensore BME280 (temperatura, umidità, pressione) + sensore pioggia. Dati disponibili su dashboard del campeggio e per automazioni (chiudi ombrelloni automatici se vento > 50 km/h).
- Controllo irrigazione: relè multipli per le zone del parco. Programma in base a umidità suolo (sensore capacitivo) e previsioni meteo.
- Sensore livello acqua grigie/nere: sensore ultrasonico HC-SR04 sul serbatoio. Alert push quando è al 90% della capacità.
Architettura del sistema
Il protocollo standard per connettere ESP32 al gestionale è MQTT (Message Queuing Telemetry Transport). Funziona così: un broker MQTT (Mosquitto, installato su un Raspberry Pi o nel cloud) fa da hub centrale. L'ESP32 si iscrive a un topic (es. campeggio/sbarra/ingresso/comando) e quando riceve il messaggio 'apri' attiva il relè.
// ESP32 — apertura sbarra via MQTT
#include <WiFi.h>
#include <PubSubClient.h>
const char* SSID = "CampeggioPineta_IoT";
const char* PSK = "password";
const char* BROKER = "192.168.1.100";
const int RELAY = 26; // GPIO collegato al relè
WiFiClient net;
PubSubClient mqtt(net);
void callback(char* topic, byte* payload, unsigned int len) {
String msg((char*)payload, len);
if (msg == "apri") {
digitalWrite(RELAY, HIGH);
delay(300); // impulso 300ms
digitalWrite(RELAY, LOW);
}
}
void setup() {
pinMode(RELAY, OUTPUT);
WiFi.begin(SSID, PSK);
while (WiFi.status() != WL_CONNECTED) delay(500);
mqtt.setServer(BROKER, 1883);
mqtt.setCallback(callback);
mqtt.connect("sbarra-ingresso");
mqtt.subscribe("campeggio/sbarra/ingresso/cmd");
}
void loop() {
if (!mqtt.connected()) mqtt.reconnect();
mqtt.loop();
}Il codice sopra è semplificato. In produzione aggiungere: reconnect automatico WiFi, watchdog timer, TLS/SSL sul broker MQTT, e un topic di feedback che conferma l'avvenuta apertura.
Lista della spesa completa (ingresso singolo)
| Componente | Modello | Costo |
|---|---|---|
| Microcontrollore | ESP32-WROOM-32D | € 6–9 |
| Modulo relè 5V | HW-482 (1 canale, opto-isolato) | € 2–4 |
| Alimentatore | Hi-Link HLK-PM01 (230V→5V 3W) | € 3–5 |
| Box IP65 | ABS 100×68×50mm | € 4–7 |
| Cavi + morsetti | — | € 3–5 |
| Totale | — | € 18–30 |
Integrazione con Ovvo Camping
Ovvo Camping include un broker MQTT interno. Dall'interfaccia di amministrazione puoi mappare qualsiasi topic MQTT a eventi del gestionale: arrivo ospite, check-out, apertura manuale da reception, override emergenza. Non serve scrivere codice lato server: solo configurazione da interfaccia web.
Sicurezza: cosa non fare
- Non usare MQTT senza autenticazione su rete WiFi pubblica: chiunque potrebbe aprire la sbarra.
- Non collegare il relè direttamente ai 230V: usa sempre un relè opto-isolato e un alimentatore certificato.
- Non esporre il broker MQTT su internet senza TLS: usa una VPN o un tunnel sicuro.
- Non lasciare le credenziali WiFi hardcoded nel codice sorgente: usa NVS (Non-Volatile Storage) dell'ESP32.
Ovvo Camping supporta l'integrazione con ESP32 out-of-the-box. Il nostro team può aiutarti a configurare il firmware e testare il sistema prima dell'installazione definitiva.
