Come impostare e programmare l'ESP32 per comunicare con uno smartphone Android tramite Bluetooth

Come Impostare E Programmare L Esp32 Per Comunicare Con Uno Smartphone Android Tramite Bluetooth



ESP32 è una scheda microcontrollore con una vasta gamma di funzionalità. Dispone di moduli Wi-Fi e Bluetooth integrati. Utilizzando entrambi questi moduli, puoi programmare ESP32 in modalità wireless. Con questo, non devi preoccuparti di connessioni a cavo lungo per il controllo delle periferiche ESP32.

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

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ù.

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 // Include la libreria di comunicazione seriale Bluetooth

#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.