- Darbo su ESP32 „Bluetooth“ pradžia
- Supratimas apie „Bluetooth Low Energy“ (BLE) ir „ESP32 Classic Bluetooth“
- „Arduino IDE“ paruošimas ESP32
- ESP32 serijinė „Bluetooth“ programa
- „Serial Bluetooth“ bandymas naudojant ESP32
„Bluetooth“ modulius, tokius kaip HC-05 ir HC-06, lengva nustatyti ir greitai naudoti su „Arduino IDE“, tačiau jie turi savo apribojimus, tokius kaip didelis energijos suvartojimas, ir jie veikia su senuoju „Bluetooth V2.0“. Be to, neseniai įsigijau naują ESP32 DEV rinkinį, šiuose moduliuose yra daugybė funkcijų, tokių kaip įmontuotas „Wi-Fi“ ir „Bluetooth“, daug ADC ir DAC kaiščių, garso palaikymas, SD kortelių palaikymas, gilaus miego režimas ir kt. viskas, kad būtų galima kurti DI projektus.
Kaip ir bet kuriam mėgėjui patiks, ESP32 dabar oficialiai palaiko „Arduino IDE“. Anksčiau mes turime padaryti didžiulę problemą su Neil Kolbans biblioteka, tačiau dabar šio vaikino sunkaus darbo dėka programavimas ESP32 su „Arduino IDE“ tapo torto pasivaikščiojimu. Taigi aš paleidžiau savo „Arduino IDE“ ir nuėjau į keletą „BLE“ programų pavyzdžių, per kuriuos nieko nesupratau. Po ilgo naršymo ir „youtubing“ laiko supratau, kad dar daug ką reikia suprasti, jei reikia dirbti su „ Bluetooth Low Energy“ (BLE) naudojant ESP32. Aš nusprendžiau apžvelgti BLE atskiruose straipsniuose, todėl čia mes naudosime ESP32 „Classic Serial Bluetooth“, kad perjungtume šviesos diodą naudodami išmanųjį telefoną. Jei norite sužinoti, kaip naudoti BLE funkcijas, patikrinkite šį straipsnį ESP32 BLE serveryje ir ESP32 BLE kliente
Darbo su ESP32 „Bluetooth“ pradžia
Pirmoji programa, kurią norėjau išbandyti, buvo paprasta programa, kuria naudodamasis galiu įjungti arba išjungti šviesos diodą iš mobiliojo telefono „Bluetooth“ terminalo programos, kaip ir senos geros „HC-05“ dienos. Tačiau paaiškėja, kad „Bluetooth Low Energy“ (BLE) tam nėra įtraukta. Taip pat atradau, kad ESP32 modulyje yra dviejų tipų „Bluetooth“, vienas yra „ Classic Bluetooth “, kitas - „ BLE Bluetooth Low Energy“. Gerai, bet kodėl?…. kodėl mes turime dviejų tipų „Bluetooth“ ir ką turėčiau naudoti savo projektui?
Supratimas apie „Bluetooth Low Energy“ (BLE) ir „ESP32 Classic Bluetooth“
„Bluetooth“ energijos suvartojimas, nes pavadinimas rodo, sunaudoja mažiau energijos nei klasikinis „Bluetooth“. Tai pasiekiama siunčiant duomenis pagal poreikį su iš anksto nustatytais periodiniais atnaujinimais. Tačiau, skirtingai nei klasikinis „Bluetooth“, jis nenaudojamas perduodant failus ar muziką. Ar kada pagalvojote, kaip jūsų telefonas automatiškai atpažįsta, kad ką tik suporuotas „Bluetooth“ įrenginys yra garso įrenginys, nešiojamas kompiuteris ar telefonas, galbūt taip pat matėte, kad belaidžio garso grotuvo ar kūno rengybos juostos akumuliatoriaus lygis automatiškai rodomas jūsų mobilusis; visa tai įmanoma naudojant BLE prietaisų charakteristikas. „ BLE“ įrenginys veikia su „ Bluetooth V4.0“ ir gali veikti mažai naudodamas serverį arba kaip klientą, kuris sukuriaBLE yra idealus pasirinkimas švyturiams, išmaniesiems laikrodžiams, kūno rengybos juostoms ir kt.
Kita vertus, klasikinis „Bluetooth “ yra tik paprastas paprastas senas „Bluetooth“, kurį naudojame failams ir kitiems duomenims perduoti. Beveik visi BLE įrenginiai turi klasikinę „Bluetooth“ funkciją, susietą su juo. „Bluetooth“, naudojama tokiuose moduliuose kaip „HC-05“, yra klasikinio „Bluetooth“, vadinamo „Bluetooth SSP“ (nuoseklaus prievado protokolas), versija, tai reiškia, kad „Bluetooth“ atitinka standartinį nuoseklųjį protokolą, kuris leidžia lengviau siųsti ir gauti duomenis be didelių pridėtinių išlaidų. Šios pamokos pabaigoje mes sužinosime, kaip naudoti „Serial Bluetooth“ funkciją ESP32.
Šiame straipsnyje mes naudosime „ESP32“ nuosekliąją „Bluetooth“ funkciją, kad suporuotume jį su išmaniuoju telefonu, ir naudosime bet kurią esamą „Bluetooth“ terminalo programą iš „Play“ parduotuvės komandoms siųsti į ESP32 ir atitinkamai perjunkite laive esantį šviesos diodą.
Vėlesniuose straipsniuose aptarsime ESP32 BLE kaip serverį ir klientą. BLE serveris paprastai naudojamas siųsti BLE duomenis į kitus „Bluetooth“ įrenginius, o BLE klientas naudojamas nuskaityti kitus BLE įrenginius, taigi veikia kaip švyturys.
„Arduino IDE“ paruošimas ESP32
Atminkite, kad „Arduino IDE“ pagal nutylėjimą nepalaiko ESP32 plokštės; turite atsisiųsti ir įdiegti juos naudodami lentos tvarkyklę. Jei tai yra jūsų pirmoji programa su ESP32, vadovaukitės šia darbo pradžios pamoka, kad pridėtumėte ESP32 plokštę prie „Arduino“ ir įkeltumėte bandymo eskizą.
Be to, galite atlikti daugiau projektų naudodami ESP32, nenaudodami su juo jokio mikrovaldiklio.
ESP32 serijinė „Bluetooth“ programa
Visa programa, kaip perjungti šviesos diodą naudojant „ESP32 Bluetooth“, pateikiama šio puslapio pabaigoje. Pagal šią antraštę leidžia suskaidyti kodą į mažus fragmentus ir bandyti juos suprasti. Jei jau naudojote kitus „Bluetooth“ modulius, pvz., HC-05, ši ESP32 „Bluetooth Classic“ pavyzdinė programa būtų labai panaši.
Programos idėja yra inicijuoti nuoseklų „Bluetooth“ ryšį naudojant ESP32 ir klausytis duomenų iš suporuotų įrenginių. Jei gaunami duomenys yra „1“, mes įjungiame šviesos diodą, o jei jis yra „0“, turėtume išjungti šviesos diodą. Mes pradedame savo programą pridėdami antraštės failą „ BluetoothSerial“ , dėl kurio ESP32 „Bluetooth“ veikia kaip „Bluetoth SSP“.
#include „BluetoothSerial.h“ // „Serial Bluetooth“ antraštės failas pagal numatytuosius nustatymus bus įtrauktas į „Arduino“
Už šios bibliotekos vyksta daug dalykų, tačiau mes nusprendėme nesigilinti, kad viskas būtų paprasta. Kitas dalykas, kurio mums reikia, yra su „Bluetooth“ susijusių operacijų objektas. Čia aš pavadinau savo kaip ESP_BT , bet jūs galite pasirinkti bet kokį vardą.
„BluetoothSerial ESP_BT“; // „Bluetooth“ objektas
Tada funkcijos „ void setup“ () viduje. Pradedame nuoseklų ryšį 9600 perdavimo sparta ir inicijuojame „Bluetooth“ signalą pavadinimu. Čia aš jį pavadinau „ESP32_LED_Control “. Tai bus vardas, kurį ras mūsų telefonas bandydami susieti. Galiausiai aš paskelbiau įmontuotą LED kaištį kaip išvesties kaištį, nes mes jį pakeisime pagal „Bluetooth“ signalą.
negaliojanti sąranka () { Serial.begin (9600); // Pradėti nuoseklų monitorių 9600 ESP_BT.begin ("ESP32_LED_Control"); // „Bluetooth Signal Serial.println“ pavadinimas („„ Bluetooth “įrenginys paruoštas poruoti“); pinMode (LED_BUILTIN, OUTPUT); // Nurodykite, kad LED kaištis būtų išvestas }
Begalinės tuštumos ciklo funkcijos viduje mes patikriname, ar iš „Bluetooth“ modulio gaunama duomenų, jei taip, tada duomenys yra skaitomi ir saugomi įeinančiame kintamajame. Mes taip pat atspausdiname šią vertę serijiniame monitoriuje, kad patikrintume, ką gauna „Arduino“.
if (ESP_BT.available ()) // Patikrinkite, ar mes gauname ką nors iš „Bluetooth“ { incoming = ESP_BT.read (); // Perskaityk, ką mes gauname Serial.print ("Gauta:"); Serial.println (gaunamas);
Bet kokie gaunami duomenys yra saugomi gaunamame kintamajame, todėl galime tiesiogiai palyginti šį kintamąjį su laukiama verte ir atlikti reikiamą veiksmą. Bet iš „Bluetooth“ atsiųsta reikšmė bus char forma, o „Arduino“ nuskaitys dešimtainę iš telefono siunčiamos simbolio vertę. Mūsų simbolio „0“ atveju dešimtainė reikšmė bus 48, o „1“ dešimtainė vertė bus 49. Galite sužinoti ASCII diagramą, kad suprastumėte, kokia bus kiekvieno simbolio dešimtainė vertė.
Čia mes palyginome gaunamą kintamąjį su 48 ir 49, kad patikrintume 0 ir 1. Jei tai yra 1, mes išjungiame šviesos diodą ir taip pat atsispausdiname patvirtinimo pranešimą atgal į „Bluetooth“, sakydami, kad šviesos diodas buvo išjungtas, ir atvirkščiai 0.
if (gaunamas == 49) { digitalWrite (LED_BUILTIN, HIGH); ESP_BT.println („LED įjungtas“); } if (gaunamas == 48) { digitalWrite (LED_BUILTIN, LOW); ESP_BT.println ("LED išjungtas"); }
„Serial Bluetooth“ bandymas naudojant ESP32
Prijunkite ESP prie „Arduino IDE“ ir pasirinkite tinkamą plokštę ir prievadą, kaip aptarta darbo pradžios pamokoje. Kadangi tai yra 3 -oji šalis lenta vadybininkas tai gali užtrukti šiek tiek ilgiau kodas gauti kaupiami ir įkeltas. Įkėlę paleiskite „Serial“ monitorius (tik derinimui) ir telefone atidarykite „Bluetooth“ nustatymą. Turėtumėte rasti „Bluetooth“ įrenginį, pavadintą ESP32_LED_Control .
Dabar savo išmaniajame telefone galite atidaryti bet kurią „Bluetooth“ terminalo programą. Aš naudoju „Bluetooth“ terminalą, kuris buvo atsisiųstas iš „Google App Store“. Prijunkite „Bluetooth“ programą prie įrenginio, kurį ką tik suporavome, įveskite 1 ir paspauskite „Send“.
ESP32 modulis turėtų jį gauti ir įjungti šviesos diodą pagal mūsų programą, taip pat pateikti patvirtinimo pranešimą, kuriame sakoma, kad šviesos diodas yra įjungtas, kaip parodyta aukščiau pateiktame ekrano kopija. Taip pat galite patikrinti nuoseklųjį monitorių, kuriame bus rodomi duomenys, kuriuos gauna ESP32 „Bluetooth“ dešimtainiu formatu, ty jūsų „Arduino“ skaitys 48 už 0 ir 49 už 1, kaip paaiškinta anksčiau. Mano terminalo lango nuotrauka rodoma žemiau.
Taip pat turėtumėte sugebėti išjungti šviesos diodą siunčiant 0 iš mobiliosios programos. Visas darbas parodytas toliau pateiktame vaizdo įraše. Tikiuosi, kad supratote pamoką ir sužinojote ką nors naudingo. Jei turite kokių nors abejonių, palikite jas komentarų skiltyje žemiau arba naudokitės mūsų forumais, jei norite kitos techninės pagalbos.