- Noțiuni introductive despre ESP32 Bluetooth
- Înțelegerea Bluetooth Low Energy (BLE) și ESP32 Classic Bluetooth
- Pregătirea Arduino IDE pentru ESP32
- Program Serial Bluetooth pentru ESP32
- Testarea Serial Bluetooth cu ESP32
Modulele Bluetooth precum HC-05 și HC-06 sunt ușor de configurat și rapid de utilizat cu Arduino IDE, dar au propriile lor limitări precum consumul mare de energie și funcționează pe vechiul Bluetooth V2.0. De asemenea, recent mi-am luat un nou kit ESP32 DEV, aceste module au o mulțime de caracteristici precum Wi-Fi și Bluetooth încorporate, pini ADC și DAC ample, Suport audio, Suport pentru card SD, Mod Deep Sleep etc. totul pentru a construi proiecte IoT.
Și, așa cum i-ar plăcea oricărui hobby, ESP32 este acum susținut oficial de Arduino IDE. Mai devreme trebuie să facem o soluție uriașă cu Biblioteca Neil Kolbans, dar acum, datorită muncii grele a acestui tip, ESP32 cu Arduino IDE a devenit o plimbare de tort. Prin urmare, mi-am lansat Arduino IDE și am urmărit câteva exemple de programe BLE, prin care nu am înțeles nimic. După o lungă perioadă de timp de navigare și youtubing, mi-am dat seama că mai sunt multe lucruri de înțeles dacă trebuie să lucrați cu Bluetooth Low Energy (BLE) folosind ESP32. Am decis să acoper BLE în articole separate, așa că aici vom folosi Bluetooth Serial Classic al ESP32 pentru a comuta un LED folosind Smart Phone. Dacă sunteți interesat să verificați cum să utilizați caracteristicile BLE, verificați acest articol pe ESP32 BLE Server și ESP32 BLE Client
Noțiuni introductive despre ESP32 Bluetooth
Primul program pe care am vrut să-l încerc a fost un program simplu cu ajutorul căruia pot activa sau dezactiva un LED de pe o aplicație Bluetooth Terminal pentru telefonul mobil, la fel ca vechile zile bune HC-05. Dar se pare că Bluetooth Low Energy (BLE) nu este indentat pentru asta. De asemenea, am descoperit că există două tipuri de Bluetooth în modulul ESP32, unul este Bluetooth clasic și celălalt este BLE Bluetooth Low Energy. Bine, dar de ce?…. de ce avem două tipuri de Bluetooth și ce ar trebui să folosesc pentru proiectul meu?
Înțelegerea Bluetooth Low Energy (BLE) și ESP32 Classic Bluetooth
Bluetooth Low Energy, așa cum indică și numele, consumă mai puțină energie decât Bluetooth-ul clasic. Se realizează prin trimiterea datelor, după cum este necesar, cu actualizări periodice predefinite. Dar, spre deosebire de Bluetooth-ul clasic, nu este folosit pentru a transfera fișiere sau muzică. V-ați întrebat vreodată cum telefonul dvs. identifică automat faptul că dispozitivul Bluetooth pe care tocmai l-ați asociat este un dispozitiv audio sau un laptop sau telefon, este posibil să fi văzut, de asemenea, că nivelul bateriei din playerul audio wireless sau din banda de fitness este afișat automat în bara de stare a mobilul tău; toate acestea sunt posibile cu caracteristicile dispozitivelor BLE. Un dispozitiv BLE funcționează cu Bluetooth V4.0 și poate funcționa cu o putere redusă ca server sau ca client care produceBLE o alegere ideală pentru balize, ceasuri inteligente, benzi de fitness etc.
Bluetooth clasic, pe de altă parte, este doar simplu Bluetooth vechi simplu pe care îl folosim pentru a transfera fișiere și alte date. Aproape toate dispozitivele BLE au funcționalitate Bluetooth clasică asociată. Bluetooth-ul utilizat în module precum HC-05 este o versiune a Bluetooth-ului clasic numit Bluetooth SSP (Serial Port Protocol), ceea ce înseamnă că Bluetooth respectă protocolul serial standard, ceea ce face mai ușor să trimiteți și să primiți date fără prea multe cheltuieli generale. La sfârșitul acestui tutorial vom învăța cum să folosim funcționalitatea Serial Bluetooth în ESP32.
Aici, în acest articol, vom folosi funcția Serial Bluetooth de pe ESP32 pentru a o asocia cu un smartphone și vom folosi orice aplicație Bluetooth Terminal existentă din magazinul Play pentru a trimite comenzi către ESP32 și pentru a comuta LED-ul de la bord în consecință.
În articolele ulterioare vom acoperi ESP32 BLE ca server, precum și ca client. Serverul BLE este, în general, utilizat pentru a trimite date BLE către alte dispozitive Bluetooth, iar clientul BLE este utilizat pentru scanarea altor dispozitive BLE, acționând astfel ca far.
Pregătirea Arduino IDE pentru ESP32
Rețineți că Arduino IDE în mod implicit nu acceptă placa ESP32; trebuie să le descărcați și să le instalați folosind managerul de bord. Dacă acesta este primul dvs. program cu ESP32, urmați acest tutorial de pornire pentru a adăuga placa ESP32 la Arduino și a încărca o schiță de testare.
Mai mult, puteți face mai multe proiecte cu ESP32, fără a utiliza niciun microcontroler cu acesta.
Program Serial Bluetooth pentru ESP32
Programul complet pentru a comuta un LED folosind ESP32 Bluetooth este dat la sfârșitul acestei pagini. Sub această rubrică, permite să rupem codul în fragmente mici și să încercăm să le înțelegem. Dacă ați folosit deja alte module Bluetooth, cum ar fi HC-05, atunci veți găsi acest exemplu de program ESP32 Bluetooth Classic foarte similar.
Ideea programului este de a inițializa o conexiune Serial Bluetooth utilizând ESP32 și de a asculta date de pe dispozitive asociate. Dacă datele primite sunt „1”, atunci aprindem LED-ul, iar dacă este „0”, ar trebui să oprim LED-ul. Începem programul nostru prin adăugarea fișierului antet BluetoothSerial care face ca ESP32 Bluetooth să funcționeze ca Bluetoth SSP.
#include „BluetoothSerial.h” // Fișier antet pentru Bluetooth serial, va fi adăugat în mod implicit în Arduino
Există o mulțime de lucruri în spatele acestei biblioteci, dar am ales să nu ne adâncim pentru a menține lucrurile simple. Următorul lucru de care avem nevoie este un obiect pentru operațiunile noastre legate de Bluetooth. Aici l-am numit pe al meu ca ESP_BT , dar puteți alege orice nume.
BluetoothSerial ESP_BT; // Obiect pentru Bluetooth
Apoi, în interiorul funcției void setup () . Vom începe comunicația serială cu rata baud 9600 și inițializa semnalul Bluetooth cu un nume. Aici l-am numit „ESP32_LED_Control ”, acesta va fi numele care va fi găsit de telefonul nostru atunci când încercăm să împerechem. În cele din urmă, am declarat pinul LED încorporat ca pin de ieșire, deoarece îl vom comuta pe baza semnalului Bluetooth.
void setup () { Serial.begin (9600); // Porniți monitorul serial în 9600 ESP_BT.begin ("ESP32_LED_Control"); // Numele semnalului dvs. Bluetooth Serial.println („Dispozitivul Bluetooth este gata de asociere”); pinMode (LED_BUILTIN, OUTPUT); // Specificați că pinul LED este ieșit }
În interiorul funcției de buclă de gol infinit, verificăm dacă există date care vin din modulul Bluetooth, dacă da, atunci datele sunt citite și stocate în variabila de intrare . De asemenea, imprimăm această valoare pe monitorul Serial doar pentru a verifica ce primește Arduino.
if (ESP_BT.available ()) // Verifică dacă primim ceva de la Bluetooth { incoming = ESP_BT.read (); // Citiți ceea ce primim Serial.print („Primit:”); Serial.println (de intrare);
Acum, orice date primite sunt stocate în variabila de intrare , deci putem compara direct această variabilă cu valoarea așteptată și putem efectua acțiunea necesară. Dar valoarea trimisă de la Bluetooth va fi în formă de caractere , iar Arduino va citi valoarea zecimală a caracterului care este trimis de pe telefon. În cazul nostru pentru caracterul „0” valoarea zecimală va fi 48 și pentru caracterul „1” valoarea zecimală va fi 49. Puteți consulta graficul ASCII pentru a înțelege care va fi valoarea zecimală pentru fiecare caracter.
Aici am comparat variabila de intrare cu 48 și 49 pentru a verifica 0 și respectiv 1. Dacă este un 1, atunci oprim LED-ul și, de asemenea, imprimăm un mesaj de confirmare înapoi la Bluetooth, spunând că LED-ul a fost oprit și invers pentru 0.
if (incoming == 49) { digitalWrite (LED_BUILTIN, HIGH); ESP_BT.println („LED-ul aprins”); } if (de intrare == 48) { digitalWrite (LED_BUILTIN, LOW); ESP_BT.println ("LED-ul stins"); }
Testarea Serial Bluetooth cu ESP32
Conectați-vă ESP-ul la Arduino IDE și selectați placa și portul corecte, așa cum s-a discutat în tutorialul de început. Deoarece este un al treilea manager de consiliu, poate dura ceva mai mult până când codul va fi compilat și încărcat. Odată încărcat, lansați monitoarele seriale (doar pentru depanare) și deschideți setarea Bluetooth de pe telefon. Ar trebui să găsiți un dispozitiv Bluetooth numit ESP32_LED_Control pair cu.
Acum puteți deschide orice aplicație de terminal Bluetooth pe telefonul dvs. smartphone, o folosesc pe cea numită „Terminal Bluetooth” care a fost descărcată din magazinul de aplicații Google. Conectați aplicația Bluetooth la dispozitivul pe care tocmai l-am asociat și tastați 1 și apăsați trimitere.
Modulul ESP32 ar trebui să-l primească și să aprindă LED-ul conform programului nostru și, de asemenea, să vă ofere un mesaj de confirmare care să spună că LED-ul este aprins, precum imaginea de mai sus. Puteți verifica, de asemenea, monitorul serial, care va afișa datele primite de ESP32 Bluetooth în format zecimal, care este Arduino, va citi 48 pentru 0 și 49 pentru 1, așa cum am explicat mai devreme. Instantaneul ferestrei terminalului meu este prezentat mai jos.
În mod similar, ar trebui să puteți opri LED-ul trimițând 0 din aplicația mobilă. Lucrarea completă este prezentată în videoclipul de mai jos. Sper că ai înțeles tutorialul și ai învățat ceva util. Dacă aveți îndoieli, nu ezitați să le lăsați în secțiunea de comentarii de mai jos sau să folosiți forumurile noastre pentru alte asistențe tehnice.