- Az ESP32 Bluetooth használatának megkezdése
- A Bluetooth Low Energy (BLE) és az ESP32 Classic Bluetooth megértése
- Arduino IDE előkészítése az ESP32-hez
- Soros Bluetooth program az ESP32-hez
- Soros Bluetooth tesztelése ESP32-vel
Az olyan Bluetooth modulok, mint a HC-05 és a HC-06, könnyen telepíthetők és gyorsan használhatók az Arduino IDE-vel, de megvannak a maguk korlátai, mint például a nagy energiafogyasztás, és a régi Bluetooth V2.0-n működnek. Nemrégiben szereztem magamnak egy új ESP32 DEV készletet, ezek a modulok rengeteg olyan funkcióval rendelkeznek, mint a beépített Wi-Fi és Bluetooth, bőséges ADC és DAC csapok, hangtámogatás, SD-kártya támogatás, mély alvási mód stb. mindent az IoT projektek építéséhez.
És ahogy bármelyik hobbi kedveli, az ESP32-t most hivatalosan is támogatja az Arduino IDE. Korábban óriási megoldást kell megtennünk a Neil Kolbans Könyvtárral, de most ennek a srácnak a kemény munkájának köszönhetően az ESP32 programozása az Arduino IDE-vel torta-sétává vált. Ezért elindítottam az Arduino IDE-m, és alaposan átnéztem néhány BLE programot, amelyeken keresztül semmit sem értettem. Hosszú szörfözés és youtubozás után rájöttem, hogy még sok mindent meg kell értenünk, ha az ESP32 használatával együtt kell dolgozni a Bluetooth Low Energy (BLE) technológiával. Úgy döntöttem, hogy a BLE-t külön cikkekben tárgyalom, ezért itt az ESP32 klasszikus soros Bluetooth-ját használjuk a LED váltására az okostelefon segítségével. Ha kíváncsi a BLE funkcióinak használatára, olvassa el ezt a cikket az ESP32 BLE Server és az ESP32 BLE kliensről
Az ESP32 Bluetooth használatának megkezdése
Az első program, amelyet ki akartam próbálni, egy egyszerű program volt, amelynek segítségével be- vagy kikapcsolhatok egy LED-et egy mobiltelefon Bluetooth Terminal alkalmazásból, akárcsak a régi jó HC-05 napok. De kiderült, hogy a Bluetooth Low Energy (BLE) nincs erre behúzva. Azt is felfedeztem, hogy az ESP32 modulban kétféle Bluetooth létezik, az egyik a Klasszikus Bluetooth, a másik pedig a BLE Bluetooth Low Energy. Oké, de miért?…. Miért van kétféle Bluetooth, és mit használjak a projektemhez?
A Bluetooth Low Energy (BLE) és az ESP32 Classic Bluetooth megértése
A Bluetooth alacsony energiafogyasztás, mivel a neve azt jelzi, kevesebb energiát fogyaszt, mint a klasszikus Bluetooth. Szükség esetén adatokat küld előre meghatározott időszakos frissítésekkel. De a klasszikus Bluetooth-tól eltérően nem használják fájlok vagy zene átvitelére. Gondolkodott már azon, hogy a telefonja hogyan azonosítja automatikusan, hogy az imént párosított Bluetooth-eszköz audioeszköz, laptop vagy telefon, azt is láthatta, hogy a vezeték nélküli audiolejátszó vagy fitnesz sáv akkumulátorszintje automatikusan megjelenik a a te telefonod; mindezek a BLE eszközök jellemzőivel lehetségesek. A BLE eszköz a Bluetooth V4.0-val működik, és alacsony energiafogyasztással működhet szerverként vagy klienskéntA BLE ideális választás jelzők, intelligens órák, fitnesz zenekarok stb.
A klasszikus Bluetooth viszont csak az egyszerű sima Bluetooth, amelyet fájlok és egyéb adatok továbbítására használunk. Szinte az összes BLE eszköz klasszikus Bluetooth funkcióval rendelkezik. Az olyan modulokban használt Bluetooth, mint a HC-05, a klasszikus Bluetooth egyik változata, az úgynevezett Bluetooth SSP (Serial Port Protocol), vagyis a Bluetooth a szabványos soros protokollt követi, amely megkönnyíti az adatok küldését és fogadását különösebb rezsi nélkül. A bemutató végén megtanuljuk, hogyan kell használni a soros Bluetooth funkciót az ESP32-ben.
Ebben a cikkben itt fogjuk használni az ESP32 soros Bluetooth funkcióját, hogy párosítsuk azt egy okostelefonnal, és a Play áruház bármelyik meglévő Bluetooth terminál alkalmazásával parancsokat küldjünk az ESP32-nek, és ennek megfelelően kapcsoljuk be a fedélzeti LED-et.
A későbbi cikkekben az ESP32 BLE-t szerverként és kliensként is tárgyaljuk. A BLE szervert általában a BLE adatok küldésére használják más Bluetooth eszközökre, a BLE klienst pedig más BLE eszközök beolvasására használják, így jeladóként működnek.
Arduino IDE előkészítése az ESP32-hez
Ne feledje, hogy az Arduino IDE alapértelmezés szerint nem támogatja az ESP32 kártyát; le kell töltenie és telepítenie kell őket a fórumkezelő segítségével. Ha ez az első ESP32-es programja, akkor kövesse ezt a kezdő oktatóanyagot, hogy hozzáadja az ESP32 táblát az Arduino-hoz, és feltöltsön egy tesztvázlatot.
Ezenkívül több projektet is megtehet az ESP32 segítségével, anélkül, hogy bármilyen mikrovezérlőt használna vele.
Soros Bluetooth program az ESP32-hez
A teljes program a LED váltására az ESP32 Bluetooth segítségével az oldal végén található. Ebben a címsorban engedi feltörni a kódot apró részletekben, és megpróbálja megérteni őket. Ha már használt más Bluetooth modult, mint például a HC-05, akkor ezt az ESP32 Bluetooth Classic példaprogramot nagyon hasonlónak találná.
A program ötlete egy soros Bluetooth kapcsolat inicializálása az ESP32 használatával, és a párosított eszközök adatainak meghallgatása. Ha a beérkező adat „1”, akkor bekapcsoljuk a LED-et, és ha „0”, akkor ki kell kapcsolnunk a LED-et. A programunkat a BluetoothSerial fejlécfájl hozzáadásával kezdjük, amely az ESP32 Bluetooth-t Bluetoth SSP-ként működik.
#include "BluetoothSerial.h" // Fejlécfájl a soros Bluetooth-hoz, alapértelmezés szerint hozzá lesz adva az Arduino-hoz
Nagyon sok dolog folyik e könyvtár mögött, de úgy döntöttünk, hogy nem mélyedünk el benne, hogy egyszerűek legyünk. A következő dologra szükségünk van egy tárgyra a Bluetooth-hoz kapcsolódó műveleteinkhez. Itt az enyémet ESP_BT- nek neveztem el , de tetszőleges nevet választhat.
BluetoothSerial ESP_BT; // Object for Bluetooth
Ezután a void setup () függvényen belül. A soros kommunikációt 9600 átviteli sebességgel kezdjük, és a Bluetooth jelet névvel inicializáljuk. Itt neveztem el „ESP32_LED_Control ” néven, ez lesz az a név, amelyet telefonunk talál, amikor párosítani próbálunk. Végül kimeneti tűnek nyilvánítottam a beépített LED-csapot, mivel a Bluetooth-jel alapján fogjuk váltani.
void setup () { Soros.kezdés (9600); // Indítsa el a soros monitort 9600-ban ESP_BT.begin ("ESP32_LED_Control"); // A Bluetooth Signal Serial neve.println ("A Bluetooth eszköz készen áll a párosításra"); pinMode (LED_BUILTIN, OUTPUT); // Adja meg, hogy a LED pin kimenet }
A végtelen void loop funkción belül ellenőrizzük, hogy érkeznek-e adatok a Bluetooth modulból, ha igen, akkor az adatokat beolvassa és tárolja a bejövő változó. Ezt az értéket a Soros monitorra is kinyomtatjuk, hogy ellenőrizzük, mit kap az Arduino.
if (ESP_BT.available ()) // Ellenőrizze, hogy kapunk-e valamit a Bluetooth-tól { bejövő = ESP_BT.read (); // Olvassa el, mit kapunk a Serial.print ("Received:"); Soros.println (bejövő);
Bármilyen információt is fogadunk, a bejövő változó tárolja, így közvetlenül összehasonlíthatjuk ezt a változót a várható értékkel, és elvégezhetjük a szükséges műveletet. De a Bluetooth-ról küldött érték char formában lesz, és az Arduino beolvassa a telefonról küldött char decimális értékét. Esetünkben a „0” karakter esetén a tizedesérték 48, az „1” karakter esetében a tizedesérték 49 lesz. Az ASCII diagram segítségével megismerheti, hogy mi lesz minden karakter tizedesértéke.
Itt összehasonlítottuk a bejövő változót 48-mal és 49-gyel, hogy ellenőrizzük a 0, illetve az 1 értéket. Ha ez 1, akkor kikapcsoljuk a LED-t, és vissza is nyomtatunk egy nyugtázó üzenetet a Bluetooth-ra, miszerint a LED ki volt kapcsolva, és fordítva 0-ra.
if (bejövő == 49) { digitalWrite (LED_BUILTIN, HIGH); ESP_BT.println ("a LED bekapcsolt"); } if (bejövő == 48) { digitalWrite (LED_BUILTIN, LOW); ESP_BT.println ("a LED kikapcsolt"); }
Soros Bluetooth tesztelése ESP32-vel
Csatlakoztassa ESP-jét az Arduino IDE-hez, és válassza ki a megfelelő alaplapot és portot, amint az az első lépések ismertetésében le van írva. Mivel ez egy harmadik féltábla- kezelő, a kód összeállítása és feltöltése kissé tovább tarthat. A feltöltés után indítsa el a soros monitorokat (csak a hibakereséshez), és nyissa meg telefonján a Bluetooth beállítást. Meg kell találnia egy ESP32_LED_Control nevű Bluetooth-eszközt.
Most bármely Bluetooth terminál alkalmazást megnyithat okostelefonján, én a „Bluetooth Terminal” nevű alkalmazást használom, amelyet a Google App Store-ból töltöttünk le. Csatlakoztassa a Bluetooth alkalmazást az eszközhöz, amelyet éppen párosítottunk, írja be az 1-et, és nyomja meg a Küldés gombot.
Az ESP32 modulnak meg kell kapnia és be kell kapcsolnia a LED-et a programunknak megfelelően, és egy nyugtázó üzenetet is meg kell adnia arról, hogy a LED bekapcsolt állapotban van, mint a fent látható képernyőkép. Ellenőrizheti a soros monitort is, amely megmutatja az ESP32 Bluetooth által fogadott adatokat tizedes formátumban, vagyis az Arduino 48-at 0-nak és 49-et 1-nek fog olvasni, amint azt korábban kifejtettük. A terminál ablakom pillanatképe az alábbiakban látható.
Hasonlóképpen képesnek kell lennie a LED kikapcsolására a 0 alkalmazás elküldésével a mobilalkalmazásból. A teljes munkát az alábbi videó mutatja. Remélem, megértette a bemutatót, és megtanult valami hasznosat. Ha kétségei vannak, hagyja nyugodtan az alábbi megjegyzés részben, vagy használja fórumunkat más technikai segítségért.