Guide · 14 min di lettura

Controllare ESP32 da smartphone: BlueGrays IoT in 5 passi

Controllare ESP32 da smartphone: relè e DHT22 con BlueGrays IoT, codice preparato da Ohmi, 5 passi di configurazione, grafici e soluzioni agli errori comuni.

Controllare l'ESP32 da smartphone significa accendere e spegnere un relè, un LED o un motore collegato alla scheda con il telefono che hai in tasca, e leggere sul telefono i valori dei sensori. È anche il primo passo più divertente per imparare l'IoT. L'ESP32 integra Wi-Fi a 2,4 GHz e Bluetooth, quindi non serve nessun modulo aggiuntivo. La vera domanda è quale strada scegliere. Per il controllo dell'ESP32 tramite app puoi scrivere il tuo web server, collegarti via Bluetooth o creare un bot Telegram. Anche le dashboard cloud come Blynk e Arduino IoT Cloud sono un'opzione. Ogni metodo ha tempi di configurazione, portata e limiti diversi.

In questa guida costruirai passo passo la strada più breve: la funzione BlueGrays IoT dell'app BlueGrays. Il codice te lo prepara Ohmi. Tu devi solo montare il circuito e caricare il codice sull'ESP32 con l'Arduino IDE. La scheda si collega al server BlueGrays con una connessione cifrata, quindi telefono e scheda non devono stare sulla stessa rete. Puoi accendere la lampada di casa anche dal lavoro, con i dati mobili. Prima realizzerai un interruttore per lampada con un relè. Poi aggiungerai un DHT22 e porterai sul telefono temperatura e umidità come valori in tempo reale e grafici. In fondo all'articolo trovi anche un confronto con gli altri metodi e una tabella con le soluzioni agli errori più frequenti.

Scheda di sviluppo ESP32 da controllare dallo smartphone
L'ESP32 si collega direttamente a internet con il suo Wi-Fi a 2,4 GHz: per il controllo da smartphone non serve un modulo wireless aggiuntivo.

5 modi per controllare l'ESP32 dallo smartphone

  • Web server locale: l'ESP32 serve una pagina web e tu apri l'indirizzo IP della scheda dal browser del telefono. Non serve nessun account, ma di norma è raggiungibile solo dalla stessa rete Wi-Fi. Tutti i dettagli nell'articolo ESP32 Async Web Server.
  • Bluetooth Classic e BLE: non servono internet né router, il telefono si collega direttamente alla scheda. In ambienti interni la portata è in genere di circa 10 metri. Abbiamo spiegato entrambi i tipi nella guida ESP32 Bluetooth.
  • Bot Telegram: invii comandi alla scheda tramite messaggi e ricevi notifiche dalla scheda. Funziona anche fuori casa, ma non offre una dashboard con grafici o slider. Per la configurazione puoi leggere l'articolo ESP32 Telegram Bot.
  • Dashboard cloud (Blynk, Arduino IoT Cloud): definisci template e variabili nella console web, scrivi il codice da solo e progetti da solo la dashboard sul telefono. È una strada flessibile, ma devi imparare diverse schermate e concetti. Per Blynk è pronta la Guida Blynk ESP32.
  • BlueGrays IoT: nell'app scegli uno degli 8 template pronti. Ohmi prepara il codice con le tue impostazioni dei pin e la tua chiave del dispositivo. Interruttori, slider, selettore colore e grafici compaiono sul telefono in automatico in base al template. Non devi progettare una dashboard né installare un server.

Cosa serve: componenti e software

ComponenteA cosa serve?Nota
Scheda di sviluppo ESP32Microcontrollore con Wi-FiSono supportate ESP32 Dev Module, WROOM, S3 e C3
Cavo USB datiCaricamento del codice e alimentazioneCon un cavo solo di ricarica la porta non compare
Modulo relè 5 VCommutare la lampadaPreferisci un modulo con optoisolatore che scatti con un segnale a 3,3 V
LED + resistenza da 220 ΩPrimo test sicuro al posto del relèNel codice imposta RELAY_ACTIVE_LOW = false
DHT22 (opzionale)Misurare temperatura e umiditàPer il template Stazione ambiente
Breadboard e cavetti jumperRealizzare i collegamentiPer i moduli sono comodi i cavetti maschio-femmina
Rete Wi-Fi a 2,4 GHzAccesso a internet della schedaLa scheda non si collega alle reti a 5 GHz
Arduino IDECaricare il codice sulla schedaServe il pacchetto esp32 di Espressif, versione 3.x
App BlueGraysConfigurazione e controllo da smartphoneiOS e Android; il primo dispositivo è gratuito

Come funziona il controllo dell'ESP32 tramite app?

In BlueGrays IoT il telefono e l'ESP32 non si collegano direttamente tra loro. All'accensione la scheda si connette prima alla rete Wi-Fi di casa a 2,4 GHz. Poi apre una connessione WebSocket cifrata (TLS) verso il server BlueGrays sulla porta 443 e la mantiene sempre aperta. Anche l'app sul telefono si collega allo stesso server. Quando tocchi l'interruttore della lampada, il comando va dal telefono al server e dal server alla scheda. Dato che la connessione è già aperta, il comando arriva senza attese. Il valore di temperatura inviato dalla scheda segue lo stesso percorso in senso inverso. La 443 è la stessa porta usata dai siti web. Per questo non devi configurare il port forwarding sul router, installare un tuo server o conoscere l'indirizzo IP della scheda.

Ciò che identifica la scheda presso il server è la chiave del dispositivo. È una stringa segreta che inizia con bgd_, generata dall'app quando crea il dispositivo. La scheda invia la chiave nell'intestazione della connessione quando la apre. Così il server inoltra alla scheda giusta i comandi che arrivano dal telefono. La chiave non viene stampata nel Monitor seriale. Se la connessione cade, la libreria BlueGraysIoT riprova da sola a intervalli crescenti. I valori misurati mentre era offline li invia appena si ricollega, e quando torna la corrente ripristina l'ultimo stato degli interruttori. Basta che scheda e telefono abbiano accesso a internet: la scheda può stare sul Wi-Fi di casa e il telefono in un'altra città con i dati mobili.

Circuito: collegare il modulo relè all'ESP32

Nei template Lampada con relè e Stazione ambiente i pin predefiniti sono questi: il pin IN del relè va a GPIO26, il pin dati del DHT22 a GPIO4. Puoi cambiarli al passo 3 della configurazione. Controlla la piedinatura della tua scheda con lo strumento Pinout. Su alcune schede il pin a 5 V è marcato VIN, su altre 5V.

ComponentePin del componentePin ESP32Nota
Modulo relèVCC5V (VIN)La bobina richiede 5 V; con la scheda alimentata via USB su questo pin ci sono circa 5 V
Modulo relèGNDGNDMassa comune
Modulo relèINGPIO26Segnale di controllo a 3,3 V
LED (per il test)Gamba lunga (+)GPIO26Con resistenza da 220 Ω; gamba corta a GND, nel codice RELAY_ACTIVE_LOW = false
DHT22VCC3V3Per la Stazione ambiente
DHT22DATAGPIO4Il sensore nudo richiede una pull-up da 10 kΩ; sui moduli è già sulla scheda
DHT22GNDGNDMassa comune
Commutare con un relè una lampada o una presa a 220 V di rete è pericoloso. Fallo con qualcuno esperto e realizza i collegamenti con la spina staccata dalla presa. Non lasciare conduttori scoperti e chiudi il circuito in una scatola. Anche l'app mostra lo stesso avviso nei template con relè: prova prima con un LED. L'ESP32 lavora con logica a 3,3 V. La maggior parte dei moduli relè a 5 V scatta con questo segnale, ma non tutti; per questo scegli un modulo con optoisolatore. Dettagli nell'articolo Che cos'è un modulo relè?.

Configurare BlueGrays IoT: i 5 passi nell'app

Nell'app segui il percorso Officina › I miei dispositivi › Aggiungi nuovo dispositivo. In alto vedrai un contatore come "Passo 1 di 5". I primi tre passi si fanno sul telefono, il quarto sul computer e il quinto di nuovo sul telefono.

  1. Scheda e template: alla domanda "Quale scheda hai?" scegli ESP32, alla domanda "Cosa deve fare?" seleziona uno degli 8 template. Per la prima prova "Lampada con relè" o la "Stazione ambiente" con sensore sono un ottimo punto di partenza. Dai al dispositivo un nome facile da riconoscere, come "Lampada soggiorno".
  2. Componenti e circuito: l'elenco "Prepara i componenti" mostra i pezzi richiesti dal template. Lo schema "Collega i cavi" indica quale terminale va su quale pin. Nei template con relè vedrai l'avviso "Se lavorerai con i 220 V, fallo con qualcuno esperto. Prova prima con un LED."
  3. Wi-Fi e codice: inserisci nome e password della rete Wi-Fi. Il nome della rete deve essere identico e appartenere alla banda a 2,4 GHz. Se vuoi, nella sezione "Pin di collegamento" sostituisci GPIO26 e GPIO4 con altri pin. Poi premi il pulsante "Crea il dispositivo e prepara il codice". Ohmi prepara il codice con la tua chiave del dispositivo; trasferiscilo al computer con "Copia codice" o "Condividi".
  4. Carica con l'Arduino IDE: carichi il codice sull'ESP32. I sotto-passi dell'app li spieghiamo uno per uno nella prossima sezione.
  5. Connessione: la schermata "In attesa della scheda" avanza da sola nel momento in cui la scheda si collega al server.

Passi 4 e 5: caricare il codice e verificare la connessione

  1. Se non hai l'Arduino IDE, installalo. I passaggi sono nell'articolo Installare l'Arduino IDE.
  2. In Gestore schede cerca "esp32" e installa il pacchetto esp32 di Espressif. Serve la versione 3.x di questo pacchetto; se hai la vecchia 2.x, aggiornala. L'installazione del pacchetto è spiegata anche nell'articolo Che cos'è l'ESP32?.
  3. Collega la scheda con un cavo USB che trasmetta dati. Dal menu Strumenti › Scheda scegli ESP32 Dev Module (o il modello della tua scheda), dal menu Strumenti › Porta la porta appena comparsa. Se la porta non compare, cambia cavo. Poi installa il driver CP210x o CH340 in base al chip USB della tua scheda.
  4. In Gestore librerie cerca BlueGraysIoT e premi Installa. Quando ti chiede delle dipendenze, scegli "Installa tutto": così vengono installate anche WebSockets, ArduinoJson e DHT sensor library. Se ti blocchi, consulta la guida Aggiungere una libreria Arduino.
  5. Apri un nuovo sketch, cancella il contenuto, incolla il codice copiato dall'app e premi Carica. Se nella finestra in basso resta bloccato su "Connecting…", tieni premuto il pulsante BOOT sulla scheda. Rilascialo quando iniziano a comparire le percentuali di scrittura.
  6. Apri il Monitor seriale e imposta la velocità a 115200. Dovresti vedere prima "Wi-Fi connected" e dopo qualche secondo la riga "BlueGrays IoT: connected".

Appena nel monitor seriale compare la scritta di connessione, la schermata "In attesa della scheda" sul telefono passa a "Connesso: i valori ora arrivano in tempo reale." Ora tocca l'interruttore della lampada: dovresti sentire il clic del relè o vedere il LED accendersi. Se la scheda non si collega entro 2 minuti, l'app ti chiede di controllare tre cose. Hai scelto la rete a 2,4 GHz? Nel monitor seriale compare "Wi-Fi connected"? Maiuscole e minuscole della password sono corrette? Se la prima riga non arriva mai, il problema è sul lato Wi-Fi. In quel caso ti aiuta la checklist dell'articolo ESP32 non si connette al WiFi.

Primo codice: accendere e spegnere una lampada dallo smartphone

Il codice che l'app prepara per il template "Lampada con relè" è simile a quello qui sotto. Le tre righe in alto arrivano già compilate con la tua chiave del dispositivo, il nome della rete e la password; qui sono mostrate con dei segnaposto. Il resto del codice è breve: una funzione per il relè, la definizione di un interruttore e un loop() di una sola riga.

C++ (Arduino IDE)
1/*
2 * Salon lambası · BlueGrays IoT
3 * BlueGrays · bluegrays.com
4 * Bu kodu paylaşma: içinde cihaz anahtarın ve Wi-Fi şifren var.
5 * Do not share this code: it contains your device key and Wi-Fi password.
6 */
7
8#include <BlueGraysIoT.h>
9
10// Uygulama bu üç satırı senin bilgilerinle doldurur / The app fills these three lines with your details
11const char *DEVICE_KEY = "bgd_UYGULAMADAKI_ANAHTARIN";
12const char *WIFI_NAME = "EV_AGI_2_4_GHZ";
13const char *WIFI_PASSWORD = "WIFI_SIFREN";
14
15BlueGraysIoT bg(DEVICE_KEY);
16
17const int RELAY_PIN = 26;
18const bool RELAY_ACTIVE_LOW = true;  // çoğu röle modülü LOW ile çeker / most relay modules switch on LOW
19void setRelay(bool on) { digitalWrite(RELAY_PIN, (on != RELAY_ACTIVE_LOW) ? HIGH : LOW); }
20
21void setup() {
22  Serial.begin(115200);
23  pinMode(RELAY_PIN, OUTPUT);
24  setRelay(false);                  // açılışta lamba kapalı / lamp off at power-up
25  bg.onSwitch("lamba", setRelay);   // uygulamadaki "Lamba" anahtarı / the "Lamba" switch in the app
26  bg.setDebug(Serial);              // durum mesajları Seri Port Ekranı'na / status messages to the Serial Monitor
27  bg.setLanguage(BG_LANG_TR);
28  bg.begin(WIFI_NAME, WIFI_PASSWORD);
29}
30
31void loop() {
32  bg.loop();  // burada uzun delay() kullanma / avoid long delay() calls here
33}
34
RigaFunzione
#include Include la libreria; Wi-Fi, connessione cifrata e riconnessione li gestisce la libreria
DEVICE_KEY, WIFI_NAME, WIFI_PASSWORDChiave del dispositivo (inizia con bgd_), nome e password della rete a 2,4 GHz; le compila l'app
BlueGraysIoT bg(DEVICE_KEY)Crea l'oggetto bg con la chiave; tutti gli altri comandi passano da questo oggetto
RELAY_PIN = 26Pin a cui è collegato l'IN del relè; se al passo 3 hai cambiato pin, qui vedrai un altro numero
RELAY_ACTIVE_LOW = trueLa maggior parte dei moduli relè scatta con segnale LOW; se provi con un LED imposta false, altrimenti funziona al contrario
setRelay(bool on)Quando on è true scrive il livello attivo: LOW sui moduli attivi bassi, HIGH sugli altri
setRelay(false) (dentro setup)All'accensione della scheda la lampada parte spenta
bg.onSwitch("lamba", setRelay)Ogni volta che l'interruttore Lampada nell'app cambia, chiama la funzione setRelay con true o false
bg.setDebug(Serial)Scrive i messaggi di stato della connessione nel Monitor seriale
bg.setLanguage(BG_LANG_TR)Stampa i messaggi di stato in turco
bg.begin(WIFI_NAME, WIFI_PASSWORD)Avvia la connessione alla rete Wi-Fi e al server BlueGrays
bg.loop()Elabora i comandi in arrivo e mantiene viva la connessione; va chiamata di continuo dentro loop()
Non usare delay() lunghi dentro loop(). Se scrivi delay(5000), la scheda per 5 secondi non può chiamare bg.loop(). Il comando dell'interruttore dal telefono arriva in ritardo e la connessione può anche cadere. Se ti serve una temporizzazione usa millis(), come nel prossimo esempio. La logica è spiegata nell'articolo Arduino millis() e delay().

Aggiungere un sensore: Stazione ambiente (relè + DHT22)

Ora aggiungiamo un DHT22 alla stessa scheda e inviamo dati al telefono. Se nell'app scegli il template "Stazione ambiente", accanto all'interruttore della lampada compaiono anche i valori di temperatura (°C) e umidità (%) con i rispettivi grafici. Il DHT22 misura da -40 a 80 °C con una precisione di circa ±0,5 °C. L'umidità la misura nell'intervallo 0–100% e si può leggere al massimo una volta ogni 2 secondi. Collega il pin dati a GPIO4, VCC a 3V3 e GND a GND. Il funzionamento della famiglia DHT è spiegato a confronto nell'articolo Sensore di temperatura e umidità DHT11.

C++ (Arduino IDE)
1/*
2 * Oda istasyonu · BlueGrays IoT
3 * BlueGrays · bluegrays.com
4 * Bu kodu paylaşma: içinde cihaz anahtarın ve Wi-Fi şifren var.
5 * Do not share this code: it contains your device key and Wi-Fi password.
6 */
7
8#include <BlueGraysIoT.h>
9#include <DHT.h>
10
11const char *DEVICE_KEY = "bgd_UYGULAMADAKI_ANAHTARIN";
12const char *WIFI_NAME = "EV_AGI_2_4_GHZ";
13const char *WIFI_PASSWORD = "WIFI_SIFREN";
14
15BlueGraysIoT bg(DEVICE_KEY);
16
17const int RELAY_PIN = 26;
18const bool RELAY_ACTIVE_LOW = true;  // çoğu röle modülü LOW ile çeker / most relay modules switch on LOW
19void setRelay(bool on) { digitalWrite(RELAY_PIN, (on != RELAY_ACTIVE_LOW) ? HIGH : LOW); }
20DHT dht(4, DHT22);                   // DHT22 veri ucu GPIO4 / DHT22 data on GPIO4
21unsigned long lastReadMs = 0;
22
23void setup() {
24  Serial.begin(115200);
25  pinMode(RELAY_PIN, OUTPUT);
26  setRelay(false);
27  bg.onSwitch("lamba", setRelay);
28  dht.begin();
29  bg.setDeadband("sicaklik", 0.1);   // 0,1 °C değişmeden gönderme / send only after a 0.1 °C change
30  bg.setDeadband("nem", 1.0);        // %1 değişmeden gönderme / send only after a 1 % change
31  bg.setDebug(Serial);
32  bg.setLanguage(BG_LANG_TR);
33  bg.begin(WIFI_NAME, WIFI_PASSWORD);
34}
35
36void loop() {
37  bg.loop();  // burada uzun delay() kullanma / avoid long delay() calls here
38  if (millis() - lastReadMs >= 2000) {  // DHT22 en fazla 2 saniyede bir okunur / DHT22 reads at most every 2 s
39    lastReadMs = millis();
40    bg.send("sicaklik", dht.readTemperature());
41    bg.send("nem", dht.readHumidity());
42  }
43}
44

La parte del relè è uguale al primo codice; le novità sono tre. La prima è la riga bg.send("sicaklik", dht.readTemperature()): invia un valore dalla scheda all'app e il primo parametro è il nome della variabile nell'app. La seconda è la riga bg.setDeadband("sicaklik", 0.1). Imposta la variazione minima: la temperatura non viene reinviata finché non cambia di 0,1 °C, per l'umidità la soglia è dell'1%. La terza è il controllo millis() - lastReadMs >= 2000 dentro loop. Il sensore viene letto ogni 2 secondi, ma nel frattempo bg.loop() continua a girare senza attese. La libreria invia il valore solo quando cambia e non supera la frequenza del piano. Per la stessa variabile, tra due invii passa almeno 1 secondo nel piano gratuito e almeno 0,2 secondi con Premium. Questi limiti sono controllati dal server; cambiare i numeri nel codice non li aggira. Se la temperatura della stanza resta per minuti a 23,4 °C, la scheda non invia nuovi valori; quando passa a 23,5 °C parte un solo messaggio. Se un cavo è allentato o manca la pull-up, la lettura non è valida (NaN). Se il valore non arriva, controlla prima il collegamento di GPIO4 e l'alimentazione.

Cosa vedi sul telefono?

  • Stato: in alto nella schermata del dispositivo compare Online o Offline, e sotto l'indicazione "Ultimo dato … fa". È il primo posto dove capisci se la scheda è davvero connessa.
  • Controlli: nel template lampada compare un interruttore on/off. Nel template striscia RGB arrivano selettore colore, luminosità 0–100% e scelta dell'effetto. Nel template tenda c'è uno slider per l'angolo da 0 a 180°.
  • Valori in tempo reale e grafici: ci sono gli intervalli 1 h, 24 h, 7 giorni e 30 giorni. Nelle viste a 7 e 30 giorni viene mostrata la media oraria. Sul grafico compaiono Minimo, Massimo e Ultimo valore. Finché la scheda resta connessa, ogni minuto si aggiunge un nuovo punto.
  • Codice e chiave: qui puoi rivedere in qualsiasi momento il codice completo, la chiave del dispositivo e i dati Wi-Fi. Se devi riprogrammare la scheda, copia il codice da qui.
  • Rigenera chiave: usalo se qualcuno ha visto la tua chiave o se hai cambiato scheda. La vecchia chiave diventa subito non valida; basta caricare una volta il nuovo codice sulla scheda.
  • Rimuovi dispositivo: il dispositivo e lo storico dei grafici vengono cancellati e ti viene restituito lo slot del dispositivo.

Gratuito e Premium: quanto puoi usarlo?

Il primo dispositivo è gratuito. Per realizzare un interruttore per lampada o una stazione ambiente con un ESP32 non ti serve altro. Nella Stazione ambiente temperatura e umidità sono due variabili distinte. Nel piano gratuito arrivano sul telefono i valori in tempo reale di entrambe, ma lo storico dei grafici viene conservato per una sola variabile. Le differenze tra i piani sono qui sotto; i dettagli nell'articolo Cosa sblocca BlueGrays Premium?.

FunzioneGratuitoPremium
Numero di dispositivi110
Variabili con storico dei grafici120
Durata dello storico24 ore30 giorni
Intervallo minimo tra due invii della stessa variabile1 secondo0,2 secondi

Confronto con gli altri metodi

MetodoAccesso da fuori casaCosa devi fare tuDashboard e graficiQuando conviene?
Web server localeDi norma no, solo dalla stessa reteScrivere il codice ESP32 e la pagina HTMLLa progetti tuPannello di controllo domestico senza internet
Bluetooth / BLENo, circa 10 mCodice della scheda e un'app lato telefonoDipende dall'app che usiLuoghi senza router, controllo a breve distanza
Bot TelegramSìCreare il bot e scrivere il codiceMessaggi e pulsanti, niente graficiNotifiche e comandi semplici
BlynkSìTemplate, datastream, dashboard e codiceWidget pronti e graficiChi vuole progettare la propria dashboard
Arduino IoT CloudSìDefinire Thing e variabili nell'account Arduino, completare il codiceWidget della dashboardChi resta nell'ecosistema Arduino
BlueGrays IoTSìMontare il circuito e caricare il codiceControlli e grafici pronti in base al templatePartire in fretta e usarlo mentre impari

La scelta giusta dipende dalle tue esigenze. Se non hai proprio internet, Bluetooth o web server locale sono l'unica opzione. BlueGrays IoT, Blynk e Arduino IoT Cloud richiedono che scheda e telefono abbiano accesso a internet. Se vuoi configurazioni flessibili, come progettare l'interfaccia da zero o collegarti a Home Assistant, ESP32 MQTT e le dashboard cloud offrono più possibilità. In BlueGrays IoT i template pronti sono 8. In compenso schema del circuito, elenco componenti, codice e interfaccia del telefono arrivano pronti e coerenti tra loro. Mentre impari, le probabilità di sbagliare qualcosa si riducono.

Sicurezza: chiave, password Wi-Fi e codice

  • La chiave del dispositivo è l'identità della scheda. Chi conosce la chiave che inizia con bgd_ può spacciarsi per la tua scheda. Per questo non condividerla in screenshot, forum o gruppi di messaggistica.
  • La password Wi-Fi resta sul telefono. La password non viene inviata al server; il nome della rete invece viene salvato con il dispositivo per poterti mostrare di nuovo il codice. Nel codice caricato sulla scheda, però, la password è scritta in chiaro.
  • Non condividere il codice. Come avvisa anche l'app, nel codice ci sono la tua chiave del dispositivo e la password Wi-Fi. Se vuoi mostrarlo su un forum per chiedere aiuto, cancella prima le righe DEVICE_KEY, WIFI_NAME e WIFI_PASSWORD.
  • La connessione è cifrata. Il traffico tra scheda e server passa in TLS sulla porta 443: chi è sulla stessa rete non può leggere i comandi.
  • Se hai dubbi, rigenera la chiave. Il pulsante Rigenera chiave invalida subito la vecchia chiave. Anche se dai la scheda a qualcun altro, rigenera la chiave o rimuovi il dispositivo.

Errori comuni e soluzioni

SintomoCausa probabileSoluzione
Nel monitor seriale non compare mai "Wi-Fi connected"È stata scelta una rete a 5 GHz o c'è un errore di maiuscole/minuscole nella passwordInserisci il nome della rete a 2,4 GHz; se sul router le bande hanno lo stesso nome, separale; riscrivi con attenzione la password
Nessuna porta nel menu Strumenti › PortaCavo solo di ricarica o driver mancanteUsa un cavo dati; installa il driver CP210x o CH340 in base al chip
Il caricamento resta bloccato su "Connecting…"La scheda non entra in modalità di caricamentoTieni premuto BOOT e rilascialo quando inizia la scrittura; altro nell'articolo Arduino non carica il codice
La compilazione si ferma con errori legati al core ESP32È installata la vecchia versione 2.x del pacchetto esp32Aggiorna alla versione 3.x dal Gestore schede
"No such file or directory" (BlueGraysIoT.h, DHT.h, WebSockets)Libreria o dipendenze non installateReinstalla BlueGraysIoT e scegli "Installa tutto"; cerca a parte per nome quella mancante
Caratteri senza senso nel monitor serialeLa velocità non è 115200Imposta la velocità del Monitor seriale a 115200
Compare "Wi-Fi connected" ma non "BlueGrays IoT: connected"La rete non esce su internet, la rete aziendale blocca o è caricato un codice precedente alla rigenerazione della chiaveProva con l'hotspot del telefono; carica il codice aggiornato dalla schermata Codice e chiave
La scheda si riavvia quando il relè scattaAlimentazione insufficiente (brownout)Usa un cavo di qualità e un alimentatore potente, alimenta il relè dai 5V; vedi ESP32 Brownout
Il LED è acceso con l'interruttore spentoRELAY_ACTIVE_LOW è rimasto true, come per il relèSe usi direttamente un LED imposta RELAY_ACTIVE_LOW = false
Con il Wi-Fi attivo il sensore analogico dà sempre lo stesso valoreIl sensore è collegato a un pin ADC2Usa uno dei pin ADC1 (GPIO32–39); dettagli nell'articolo Che cos'è l'ADC?
I valori di temperatura e umidità non arrivanoPin dati del DHT22 sul pin sbagliato o pull-up mancanteCollega DATA a GPIO4 e VCC a 3V3; sul sensore nudo aggiungi una pull-up da 10 kΩ

Idee per progetti IoT con l'ESP32

Una volta creato il percorso tra scheda, server e telefono, aggiungere un nuovo dispositivo ti richiede pochi minuti. Inizia con l'interruttore per la lampada, poi guarda i dati del DHT22 arrivare sul telefono, e quindi passa a progetti più grandi come l'irrigazione o la tenda. Nell'app BlueGrays trovi questi progetti IoT con ESP32 passo passo, con schema elettrico e codice. Puoi usare il filtro progetti IoT in Esplora e, con la scheda "Configura come dispositivo IoT" nella pagina del progetto, collegare lo stesso circuito direttamente al tuo telefono.

Domande frequenti

Come si controlla l'ESP32 dallo smartphone?

L'ESP32 si può controllare dallo smartphone con un web server locale, via Bluetooth, con un bot Telegram o con le dashboard cloud. Con BlueGrays IoT segui il percorso Officina › I miei dispositivi › Aggiungi nuovo dispositivo. Scegli scheda e template, inserisci i dati Wi-Fi e carichi con l'Arduino IDE il codice preparato da Ohmi. Quando la scheda si connette, interruttori e valori compaiono sul telefono.

Si può controllare l'ESP32 dal telefono senza internet?

Con BlueGrays IoT no: sia la scheda sia il telefono devono essere connessi a internet, perché i comandi passano dal server. Per il controllo senza internet puoi usare il Bluetooth (BLE) o un web server ESP32 sulla stessa rete.

Posso controllare l'ESP32 da un'altra città?

Sì. Scheda e telefono si collegano allo stesso server, quindi non devono stare sulla stessa rete. La scheda può essere sul Wi-Fi di casa a 2,4 GHz e il telefono sui dati mobili. Non servono port forwarding, IP statico o un tuo server.

BlueGrays IoT è a pagamento?

Il primo dispositivo è gratuito. Il piano gratuito include 1 dispositivo, lo storico dei grafici per 1 variabile e 24 ore di storico. Con Premium si sbloccano 10 dispositivi, lo storico dei grafici per 20 variabili e fino a 30 giorni di storico.

Meglio controllare l'ESP32 via Bluetooth o via Wi-Fi?

Il Bluetooth non richiede internet né router, ma in ambienti interni la portata è in genere di circa 10 metri. Con il controllo via Wi-Fi e server gestisci la scheda da qualsiasi parte del mondo e conservi anche grafici e storico. Se sei sempre in casa e non hai un router conviene il Bluetooth, se vuoi l'accesso remoto è meglio il Wi-Fi.

Quanti dispositivi posso collegare a BlueGrays IoT?

Puoi aggiungere 1 dispositivo nel piano gratuito e 10 con Premium. Le schede supportate sono ESP32 (Dev Module, WROOM, S3, C3) e Raspberry Pi Pico W. Quando rimuovi un dispositivo, lo slot ti viene restituito.

Vedi tutti i progetti
ESP32 Interruttore IoT per Lampada (Relè)
#372Principiante
IoT

ESP32 Interruttore IoT per Lampada (Relè)

Accendi e spegni la lampada dal telefono, ovunque tu sia. Questo progetto è la guida passo passo del modello IoT Lampada con relè dell'app, montato con un ESP32 e un modulo relè e provato prima con un LED. Vai in Officina › Dispositivi › Aggiungi dispositivo e scegli Lampada con relè; Ohmi prepara il codice con la tua chiave del dispositivo. Il codice di questa pagina è un esempio: chiave e dati Wi-Fi sono segnaposto.

0.0(0)
ESP32 Stazione IoT per la Stanza (Relè + DHT22)
#371Intermedio
IoT

ESP32 Stazione IoT per la Stanza (Relè + DHT22)

Accendi la lampada dal telefono e guarda temperatura e umidità della tua stanza dal vivo, ovunque tu sia. Questo progetto è la guida passo passo del modello IoT Stazione per la stanza dell'app, con un ESP32, un modulo relè e un DHT22. Vai su Officina › Dispositivi › Aggiungi dispositivo e scegli Stazione per la stanza; Ohmi prepara il codice con la tua chiave del dispositivo. Il codice qui è un esempio: chiave e dati Wi-Fi sono segnaposto.

0.0(0)
1
ESP32 Irrigazione IoT (Sensore + Pompa)
#376Intermedio
IoT

ESP32 Irrigazione IoT (Sensore + Pompa)

La pompa parte da sola quando la terra del vaso si secca, e guardi l'umidità del terreno dal vivo sul telefono. Questo progetto è la guida passo passo del modello IoT Umidità del terreno + pompa dell'app, con un ESP32, un sensore di umidità del terreno, un relè e una mini pompa ad acqua. Vai su Officina › Dispositivi › Aggiungi dispositivo; Ohmi prepara il codice con la tua chiave del dispositivo. Il codice qui è un esempio: chiave e dati Wi-Fi sono segnaposto.

0.0(0)
ESP32 Striscia LED RGB IoT (WS2812B)
#374Intermedio
IoT

ESP32 Striscia LED RGB IoT (WS2812B)

Comanda la luce della stanza dal telefono: scegli il colore, regola la luminosità, accendi l'effetto arcobaleno o respiro. Ecco la guida passo passo del modello IoT Striscia LED RGB dell'app, montato con un ESP32 e una striscia WS2812B da 30 LED con tre fili. Vai in Officina › Dispositivi › Aggiungi dispositivo e scegli Striscia LED RGB; Ohmi prepara il codice con la tua chiave del dispositivo. Il codice di questa pagina è un esempio: chiave e dati Wi-Fi sono segnaposto.

0.0(0)
1
ESP32 Apritenda IoT (Servo SG90)
#378Intermedio
IoT

ESP32 Apritenda IoT (Servo SG90)

Tocca + o − sul telefono e il servo gira a quell'angolo nello stesso momento: apri e chiudi una tenda in miniatura, l'asta di una veneziana o un piccolo coperchio ovunque tu sia. Questo progetto è la guida passo passo del modello IoT Tenda con servo dell'app, con un ESP32 e un servo SG90, con soli 3 fili. Vai su Officina › Dispositivi › Aggiungi dispositivo; Ohmi prepara il codice con la tua chiave del dispositivo. Il codice qui è un esempio: chiave e dati Wi-Fi sono segnaposto.

0.0(0)
1
Pico W Temperatura e Umidità IoT (DHT22)
#373Principiante
IoT

Pico W Temperatura e Umidità IoT (DHT22)

Guarda dal vivo sul telefono la temperatura e l'umidità della stanza, ovunque tu sia. Questo progetto è la guida passo passo del modello IoT Temperatura e umidità dell'app, montato con un Raspberry Pi Pico W e un DHT22. Vai in Officina › Dispositivi › Aggiungi dispositivo, scegli Pico W come scheda e Temperatura e umidità come modello; Ohmi prepara il codice con la tua chiave del dispositivo. Il codice di questa pagina è un esempio: chiave e dati Wi-Fi sono segnaposto.

0.0(0)
1
Pico W Sensore IoT per Porta (Reed)
#375Principiante
IoT

Pico W Sensore IoT per Porta (Reed)

La porta o la finestra è rimasta aperta? Guardalo sul telefono. Questo progetto è la guida passo passo del modello IoT Porta / finestra dell'app, montato con un Raspberry Pi Pico W, un interruttore reed e un piccolo magnete. Vai in Officina › Dispositivi › Aggiungi dispositivo, scegli Pico W come scheda e Porta / finestra come modello; Ohmi prepara il codice con la tua chiave del dispositivo. Il codice di questa pagina è un esempio: chiave e dati Wi-Fi sono segnaposto.

0.0(0)
Pico W Contatore di Movimento IoT (PIR)
#377Principiante
IoT

Pico W Contatore di Movimento IoT (PIR)

Conta quante volte qualcuno passa da una porta o da un corridoio e guarda il momento del movimento dal vivo sul telefono. Questo progetto è la guida passo passo del modello IoT Rilevatore di movimento dell'app, con un Raspberry Pi Pico W e un sensore di movimento PIR, con soli 3 fili. Vai su Officina › Dispositivi › Aggiungi dispositivo; Ohmi prepara il codice con la tua chiave del dispositivo. Il codice qui è un esempio: chiave e dati Wi-Fi sono segnaposto.

0.0(0)