In questo articolo collegheremo una scheda ESP32 con un telefono Android e comunicheremo i dati tramite Bluetooth. Inoltre, controlleremo un LED collegato ai pin GPIO dell'ESP32 direttamente tramite lo smartphone Android.
Contenuti:
- Che cos'è ESP32 Bluetooth LE
- Come programmare ESP32 per comunicare tramite Bluetooth con smartphone Android
- Passaggi per connettere ESP32 Bluetooth con il telefono Android
- Schema elettrico
- Hardware
- Produzione
- Conclusione
Che cos'è ESP32 Bluetooth LE
ESP32 è una scheda microcontroller che supporta sia Bluetooth Classic che Bluetooth Low Energy, noto anche come Bluetooth intelligente. Il BLE o Bluetooth intelligente è specifico per comunicazioni ad alta efficienza energetica o progettato per comunicazioni a corto raggio o piccoli trasferimenti di dati.
La funzionalità BLE dell'ESP32 gli consente di agire come server o client nelle comunicazioni Bluetooth. Può gestire attività come servizi di lettura e scrittura. Può anche crittografare le connessioni e stabilire connessioni SPP (Serial Port Profile) per la trasmissione dei dati in modalità pass-through UART-BLE. Il Bluetooth ESP32 supporta i protocolli 4.2, il che significa che è compatibile con diversi livelli come Physical Layer (PHY) e Link Layer (LL). Supporta anche Host Controller Interface (HCI), tra gli altri.
Controlla la tabella delle differenze per ESP32 Classic e BLE Bluetooth.
Caratteristica | Bluetooth classico | Bluetooth a basso consumo energetico (BLE) |
Tipo di comunicazione | Comunicazione continua e bidirezionale | Raffiche di dati intermittenti, principalmente unidirezionali |
Gamma operativa | Può raggiungere fino a 100 metri | Normalmente funziona sotto i 100 metri |
Il consumo di energia | Consuma fino a 1 Watt | Varia da 10 milliwatt a 500 milliwatt |
Velocità di trasferimento | Le velocità di trasferimento dei dati variano da 1 a 3 Megabit al secondo | Supporta da 125 kilobit al secondo a 2 megabit al secondo |
Tempo di risposta | Latenza intorno ai 100 millisecondi | Risposta rapida con latenza di 6 millisecondi |
Supporto vocale | Dotato di trasmissione vocale | Manca la funzionalità di trasmissione vocale |
Dai un'occhiata a questi articoli Bluetooth ESP32 per saperne di più.
- ESP32 Bluetooth – Guida definitiva
- ESP32 – Bluetooth classico e Bluetooth Low Energy (BLE)
Come programmare ESP32 per comunicare tramite Bluetooth con smartphone Android
Per programmare ESP32 in modo che possa comunicare con un telefono Android utilizzando il protocollo Bluetooth, è necessario configurare la libreria seriale Bluetooth ESP32. Per questo, è necessario disporre di una configurazione IDE Arduino con una scheda ESP32 installata.
Dopo aver impostato il Bluetooth ESP32, è necessario installare l'applicazione Android seriale Bluetooth. Ciò ti consentirà di inviare istruzioni da un telefono Android a ESP32 utilizzando la comunicazione seriale Bluetooth.
Diamo uno sguardo più da vicino a ciascuno di questi passaggi:
Passaggi per connettere ESP32 Bluetooth con il telefono Android
Per programmare la scheda ESP32 per la comunicazione Bluetooth, seguire questi passaggi:
Passaggio 1: installazione della scheda ESP32 nell'IDE Arduino
Per installare ESP32 sull'IDE Arduino, segui semplicemente la guida fornita in questo articolo.
Installazione della scheda ESP32 nell'IDE Arduino
Dopo l'installazione, la scheda ESP32 può essere collegata e programmata utilizzando l'IDE Arduino.
Passaggio 2: carica il codice Bluetooth ESP32
Una volta installata la scheda ESP32, vedrai diverse librerie preinstallate e i relativi esempi nell'IDE di Arduino. Tutte queste librerie sono correlate alla scheda ESP32. Per la comunicazione seriale Bluetooth, utilizzeremo ESP32 BluetoothSerial.h codice di esempio della libreria.
Per aprire il codice di esempio, apri l'IDE di Arduino e vai su: File > Esempi > BluetoothSerial > SerialtoSerialBT
Per aprire questo codice di esempio, assicurati che la scheda ESP32 sia selezionata.
Dopo aver aperto il codice di esempio, vedrai il seguente codice nella finestra dell'IDE Arduino:
//Benvenuti in Linuxhint#include 'BluetoothSerial.h'
//#define USE_PIN // Togli il commento se desideri il PIN durante l'accoppiamento
cost car * spillo = '1234' ; // Definisce un PIN di abbinamento personalizzato
Stringa nome_dispositivo = 'ESP32' ;
#se !definito(CONFIG_BT_ENABLED) || !definito(CONFIG_BLUEDROID_ENABLED)
#errore Il Bluetooth non è abilitato! Esegui 'make menuconfig' per abilitarlo
#finisci se
#se !definito(CONFIG_BT_SPP_ENABLED)
#errore Bluetooth seriale mancante o non abilitato. È disponibile solo per il chip ESP32.
#finisci se
BluetoothSeriale SerialBT ;
vuoto impostare ( ) {
Seriale. inizio ( 115200 ) ;
SerialBT. inizio ( nome del dispositivo ) ; //Nome del dispositivo Bluetooth
Seriale. printf ( 'Il dispositivo ' % S ' è iniziato. \N Inizia ad associare il tuo dispositivo! \N ' , nome del dispositivo. c_str ( ) ) ;
//Serial.printf('Il dispositivo '%s' con indirizzo MAC %s è avviato.\nInizia ad accoppiarlo con Bluetooth!\n', device_name.c_str(), SerialBT.getMacString());
#ifdef USE_PIN
SerialBT. setPin ( spillo ) ;
Seriale. println ( 'Utilizzo del PIN' ) ;
#finisci se
}
vuoto ciclo continuo ( ) {
Se ( Seriale. disponibile ( ) ) {
SerialBT. scrivere ( Seriale. Leggere ( ) ) ;
}
Se ( SerialBT. disponibile ( ) ) {
Seriale. scrivere ( SerialBT. Leggere ( ) ) ;
}
ritardo ( venti ) ;
}
Dopo aver caricato il codice, sullo schermo verrà visualizzato il seguente messaggio. Questo messaggio descrive che la tua scheda ESP32 è pronta per l'accoppiamento.
Passaggio 3: spiegazione del codice
Il codice è iniziato includendo le librerie necessarie e verificando la disponibilità del Bluetooth. Imposta inoltre le variabili per il nome e il PIN del dispositivo Bluetooth.
Nel impostare() funzione, viene definita la comunicazione seriale in baud e il dispositivo Bluetooth viene inizializzato con il suo nome. È possibile impostare un PIN personalizzato per l'autenticazione durante l'accoppiamento.
IL ciclo continuo() la funzione controlla continuamente i dati sulle connessioni seriali e Bluetooth. Ciò consente di stabilire una comunicazione bidirezionale tra ESP32 e un dispositivo Bluetooth accoppiato.
Passaggio 4: installa l'applicazione Android
Una volta caricato il codice, il passo successivo è installare e configurare l'applicazione Android per la connessione Bluetooth.
Apri il Play Store e installa il Terminale Bluetooth seriale applicazione.
Dopo l'installazione, apri le impostazioni Bluetooth dello smartphone e collega il telefono al Bluetooth ESP32. Se hai definito un PIN nel codice IDE di Arduino devi inserire il PIN altrimenti si connetterà direttamente.
Ora apri l'applicazione Bluetooth seriale e seleziona Dispositivi opzione.
Dal menu appena aperto, seleziona il dispositivo ESP32. Questo elenco mostra tutti i dispositivi Bluetooth attualmente attivi.
Come puoi vedere, l'ESP32 Bluetooth è connesso al tuo smartphone Android.
Per testare la connessione, invieremo una stringa. Qui ho inviato due stringhe diverse.
Noterai che le stesse due stringhe verranno visualizzate anche sul terminale IDE di Arduino.
Ora facciamo un ulteriore passo avanti e controlliamo una periferica esterna come un LED utilizzando ESP32 Bluetooth tramite lo smartphone Android.
Passaggio 5: controlla un LED utilizzando un telefono Android tramite Bluetooth
Per controllare un LED utilizzando ESP32 e Bluetooth Android, modificare prima il codice precedente e definire un pin GPIO per il LED. Successivamente è necessario impostare i valori per l'accensione e lo spegnimento del LED.
Carica il codice qui sotto per procedere ulteriormente.
#include#define LED_PIN 15 // Definisce il pin del LED
BluetoothSeriale SerialBT ; // Crea un oggetto BluetoothSerial
byteBT_INP ; // Variabile per memorizzare l'input Bluetooth
// Controlla se Bluetooth e Bluedroid sono abilitati nella configurazione dell'SDK
#se !definito(CONFIG_BT_ENABLED) || !definito(CONFIG_BLUEDROID_ENABLED)
#errore Il Bluetooth non è abilitato. Esegui 'make menuconfig' per abilitarlo.
#finisci se
vuoto impostare ( ) {
modalità pin ( LED_PIN , PRODUZIONE ) ; // Imposta il pin LED come uscita
Seriale. inizio ( 115200 ) ;
SerialBT. inizio ( 'ESP32' ) ; // Inizializza il Bluetooth con il nome 'ESP32'
Seriale. println ( 'Il dispositivo Bluetooth è pronto per l'accoppiamento.' ) ; // Indica che il Bluetooth è pronto
}
vuoto ciclo continuo ( ) {
// Controlla se sono disponibili dati da leggere da Bluetooth
Se ( SerialBT. disponibile ( ) ) {
BT_INP = SerialBT. Leggere ( ) ; // Legge il byte in arrivo da Bluetooth
Seriale. scrivere ( BT_INP ) ; // Visualizza il byte letto sul monitor seriale
}
// Controlla i dati Bluetooth ricevuti e imposta lo stato del LED
Se ( BT_INP == '1' ) {
digitalWrite ( LED_PIN , ALTO ) ; // Accende il LED se viene ricevuto '1'
} altro Se ( BT_INP == '0' ) {
digitalWrite ( LED_PIN , BASSO ) ; // Spegne il LED se viene ricevuto '0'
}
}
Questo codice serve a un microcontrollore ESP32 per controllare un LED tramite Bluetooth. Include una libreria per la comunicazione Bluetooth. Successivamente, definisce il pin LED e configura il Bluetooth con un dispositivo denominato ESP32. Il loop principale legge i dati Bluetooth e accende o spegne il LED in base al comando ricevuto (1 per ON, 0 per OFF).
Schema elettrico
Lo schema elettrico è semplice, con un LED collegato al pin D15 dell'ESP32. È possibile definire qualsiasi altro GPIO per il controllo LED.
Imparentato: Riferimento pinout ESP32 – Guida definitiva
Hardware
Nell'hardware avrai bisogno di una breadboard, una scheda ESP32 e un LED. Collega l'ESP32 al sistema e carica il programma su di esso.
Ora invia 1 e 0 dall'applicazione di comunicazione seriale Bluetooth del telefono Android.
Vedrai lo stesso input sul terminale IDE Arduino ricevuto dal telefono Android.
Produzione
Una volta inviato il valore Alto o 1 il LED si accenderà, allo stesso modo quando si invia il valore Basso il LED si spegnerà.
Imposta un pulsante personalizzato
Puoi anche impostare un pulsante personalizzato all'interno dell'applicazione Bluetooth seriale. Ad esempio, è possibile creare un pulsante per i valori ALTI e BASSI. In questo modo, non è necessario digitare manualmente i valori. Invece, devi solo premere il pulsante di scelta rapida e verrà eseguita l'istruzione impostata.
Nota: Per aprire le impostazioni del pulsante, premere a lungo sul pulsante.
Per impostare il valore del pulsante ALTO, definire le seguenti impostazioni.
Similitudine per il valore del pulsante BASSO, è necessario definire le impostazioni seguenti.
Abbiamo collegato con successo la scheda ESP32 a un telefono Android tramite Bluetooth. Ora puoi creare molti progetti usandolo. Ad esempio, puoi controllare i tuoi elettrodomestici utilizzando il Bluetooth ESP32 attraverso un circuito relè.
Imparentato: Relè con ESP32 utilizzando l'IDE Arduino
Conclusione
ESP32 è una scheda microcontrollore avanzata con funzionalità Wi-Fi e Bluetooth. Entrambi questi moduli integrati ti aiutano a progettare progetti avanzati e a controllare le periferiche in modalità wireless. Allo stesso modo, puoi connettere ESP32 con un telefono Android ed eseguire diverse operazioni. Per questo, dovrai installare l'applicazione Android seriale Bluetooth. Una volta installato, apri il codice di esempio per ESP32 Bluetooth e caricalo sulla tua scheda. Una volta caricato il codice, puoi associarlo alla tua scheda tramite un telefono Android.