- Introducció a ESP32 Bluetooth
- Comprendre el Bluetooth de baix consum (BLE) i el Bluetooth ESP32 Classic
- Preparant Arduino IDE per ESP32
- Programa Bluetooth en sèrie per a ESP32
- Prova de Bluetooth de sèrie amb ESP32
Els mòduls Bluetooth com HC-05 i HC-06 són fàcils de configurar i s’utilitzen ràpidament amb Arduino IDE, però tenen la seva pròpia limitació, com ara un alt consum d’energia i funcionen a l’antiga Bluetooth V2.0. A més, recentment he aconseguit un nou kit ESP32 DEV, aquests mòduls tenen un munt de funcions com Wi-Fi i Bluetooth integrats, amplis pins ADC i DAC, suport d’àudio, suport de targetes SD, mode de son profund, etc. tot per construir projectes IoT.
I, com a qualsevol aficionat li encantaria, l’ESP32 ara té el suport oficial de l’IDE Arduino. Abans hem de fer una gran solució amb Neil Kolbans Library, però ara gràcies al treball dur d’aquest programa, ESP32 amb Arduino IDE s’ha convertit en un passeig de pastissos. Per tant, vaig llançar el meu Arduino IDE i vaig aprofundir en alguns exemples de programes BLE, a través dels quals no entenia res. Després de molt de temps navegant i fent youtubing, em vaig adonar que hi ha moltes coses més per entendre si heu de treballar amb Bluetooth Low Energy (BLE) mitjançant ESP32. Vaig decidir cobrir el BLE en articles separats, de manera que aquí utilitzarem el Bluetooth Serial Clàssic d'ESP32 per canviar un LED mitjançant el telèfon intel·ligent. Si esteu interessats en comprovar com utilitzar les funcions de BLE, consulteu aquest article al servidor ESP32 BLE i al client ESP32 BLE
Introducció a ESP32 Bluetooth
El primer programa que volia provar era un programa senzill amb el qual puc encendre o apagar un LED des d’una aplicació de terminal Bluetooth del telèfon mòbil, igual que els bons dies HC-05. Però resulta que, Bluetooth Low Energy (BLE) no està sagnat per això. També vaig descobrir que hi ha dos tipus de Bluetooth al mòdul ESP32, un és el Bluetooth clàssic i l’altre és BLE Bluetooth Low Energy. D'acord, però per què?…. per què tenim dos tipus de Bluetooth i què he d'utilitzar per al meu projecte?
Comprendre el Bluetooth de baix consum (BLE) i el Bluetooth ESP32 Classic
El Bluetooth Low Energy, com el seu nom indica, consumeix menys energia que el Bluetooth clàssic. S’aconsegueix enviant dades segons les necessitats amb actualitzacions periòdiques predefinides. Però, a diferència del Bluetooth clàssic, no s’utilitza per transferir fitxers ni música. Alguna vegada us heu preguntat com el vostre telèfon identifica automàticament que el dispositiu Bluetooth que acabeu d’aparellar és un dispositiu d’àudio o un ordinador portàtil o un telèfon, és possible que també hagueu vist que el nivell de bateria del reproductor d’àudio sense fils o de la banda de fitness es mostra automàticament a la barra d’estat de el vostre mòbil; Tot això és possible amb les característiques dels dispositius BLE. Un dispositiu BLE funciona amb Bluetooth V4.0 i pot funcionar amb poca potència com a servidor o com a client que ho fabricaBLE una opció ideal per als fars, rellotges intel·ligents, bandes de fitness, etc..

El Bluetooth clàssic, en canvi, és només el simple Bluetooth antic que fem servir per transferir fitxers i altres dades. Gairebé tots els dispositius BLE tenen associada la funcionalitat Bluetooth clàssica. El Bluetooth utilitzat en mòduls com HC-05 és una versió del Bluetooth clàssic anomenat Bluetooth SSP (Serial Port Protocol), el que significa que el Bluetooth segueix el protocol sèrie estàndard que facilita l’enviament i la recepció de dades sense despeses generals. Al final d’aquest tutorial, aprendrem a utilitzar la funcionalitat Serial Bluetooth a ESP32.
Aquí, en aquest article , utilitzarem la funció Serial Bluetooth a ESP32 per emparellar-la amb un telèfon intel·ligent i utilitzarem qualsevol aplicació existent del terminal Bluetooth des de Play Store per enviar ordres a l’ESP32 i canviar el LED de la placa en conseqüència.
En articles posteriors tractarem ESP32 BLE com a servidor i client. El servidor BLE s'utilitza generalment per enviar dades BLE a altres dispositius Bluetooth i el client BLE s'utilitza per escanejar altres dispositius BLE, de manera que actuen com a far.
Preparant Arduino IDE per ESP32
Tingueu en compte que Arduino IDE per defecte no admet la placa ESP32; els heu de descarregar i instal·lar mitjançant el gestor de la placa. Si aquest és el vostre primer programa amb ESP32, seguiu aquest tutorial inicial per afegir la placa ESP32 al vostre Arduino i penjar un esbós de prova.

A més, podeu fer més projectes amb ESP32, sense utilitzar cap microcontrolador.
Programa Bluetooth en sèrie per a ESP32
El programa complet per commutar un LED mitjançant Bluetooth ESP32 es dóna al final d'aquesta pàgina. Sota aquest encapçalament, permet dividir el codi en petits fragments i provar d'entendre'ls. Si ja heu utilitzat altres mòduls Bluetooth com l'HC-05, trobareu que aquest programa d' exemple ESP32 Bluetooth Classic és molt similar.
La idea del programa és inicialitzar una connexió Serial Bluetooth mitjançant ESP32 i escoltar dades de dispositius aparellats. Si les dades entrants són '1', encenem el LED i, si és '0', hauríem d'apagar el LED. Comencem el nostre programa afegint el fitxer de capçalera BluetoothSerial que fa que el Bluetooth ESP32 funcioni com Bluetoth SSP.
#include "BluetoothSerial.h" // Fitxer de capçalera per a Bluetooth de sèrie, s'afegirà per defecte a Arduino
Hi ha moltes coses que passen darrere d’aquesta biblioteca, però hem decidit no aprofundir-hi perquè les coses siguin senzilles. El següent que necessitem és un objecte per a les nostres operacions relacionades amb Bluetooth. Aquí he anomenat el meu ESP_BT , però podeu triar qualsevol nom.
BluetoothSerial ESP_BT; // Objecte per Bluetooth
A continuació, dins de la funció void setup () . Nosaltres vam començar la comunicació sèrie amb la velocitat de transmissió de 9600 i inicialitzar el senyal Bluetooth amb un nom. Aquí l’he anomenat com a “ESP32_LED_Control ”, aquest serà el nom que trobarà el nostre telèfon en intentar emparellar-lo. Finalment, he declarat el pin LED incorporat com a pin de sortida, ja que el canviarem en funció del senyal Bluetooth.
configuració nul·la () { Serial.begin (9600); // Inicieu el monitor sèrie al 9600 ESP_BT.begin ("ESP32_LED_Control"); // Nom del vostre senyal Bluetooth Serial.println ("El dispositiu Bluetooth està a punt per emparellar-se"); pinMode (LED_BUILTIN, OUTPUT); // Especifiqueu que es produeix la sortida del pin LED }
Dins de la funció de bucle de buit infinit, comprovem si hi ha dades que provenen del mòdul Bluetooth, si és així, les dades es llegeixen i s’emmagatzemen a la variable entrant . També imprimim aquest valor al monitor sèrie només per comprovar què rep l'Arduino.
if (ESP_BT.available ()) // Comproveu si rebem alguna cosa de Bluetooth { incoming = ESP_BT.read (); // Llegiu el que rebem Serial.print ("Rebut:"); Serial.println (entrant);
Ara, les dades rebudes s’emmagatzemen a la variable entrant , de manera que podem comparar directament aquesta variable amb el valor esperat i realitzar l’acció necessària. Però el valor enviat des de Bluetooth es mostrarà en forma de caràcters i Arduino llegirà el valor decimal del caràcter que s’envia des del telèfon. En el nostre cas per al caràcter 0, el valor decimal serà 48 i per al caràcter 1, el valor decimal serà 49. Podeu consultar el gràfic ASCII per entendre quin serà el valor decimal de cada caràcter.
Aquí hem comparat la variable entrant amb 48 i 49 per comprovar si hi ha 0 i 1 respectivament. Si és un 1, apaguem el LED i també imprimim un missatge de reconeixement a Bluetooth que indica que el LED estava apagat i viceversa per a 0.
if (entrant == 49) { digitalWrite (LED_BUILTIN, HIGH); ESP_BT.println ("LED encès"); } if (entrant == 48) { digitalWrite (LED_BUILTIN, BAIX); ESP_BT.println ("LED apagat"); }
Prova de Bluetooth de sèrie amb ESP32
Connecteu el vostre ESP al vostre IDE Arduino i seleccioneu la placa i el port correctes tal com es comenta al tutorial inicial. Com que és un tercer gestor de la junta de partit, pot trigar una mica més a que el codi es compili i es carregui. Un cop penjat, inicieu els monitors de sèrie (només per depurar-los) i obriu la configuració de Bluetooth al telèfon. Haureu de trobar un dispositiu Bluetooth anomenat ESP32_LED_Control parell amb.

Ara podeu obrir qualsevol aplicació de terminal Bluetooth al vostre telèfon intel·ligent. Estic fent servir la denominada "Terminal Bluetooth" que s'ha descarregat de Google App Store. Connecteu l’aplicació Bluetooth al dispositiu que acabem d’aparellar i escriviu 1 i premeu Envia.

El mòdul ESP32 l’hauria de rebre i encendre el LED segons el nostre programa i també us donarà un missatge d’agraïment indicant que el LED està encès com la captura de pantalla que es mostra més amunt. També podeu comprovar el monitor de sèrie que mostrarà les dades que rebrà l’ESP32 Bluetooth en format decimal, que és el vostre Arduino, que llegirà 48 per 0 i 49 per 1, tal com s’ha explicat anteriorment. A continuació es mostra la instantània de la finestra del meu terminal.


De la mateixa manera, també hauríeu de poder apagar el LED enviant 0 des de l'aplicació mòbil. El funcionament complet es mostra al vídeo següent. Espero que hàgiu entès el tutorial i que hàgiu après alguna cosa útil. Si teniu cap dubte, no dubteu a deixar-los a la secció de comentaris o utilitzar els nostres fòrums per obtenir ajuda tècnica.
