Tartalomjegyzék:

A Bluetooth (BLE) használata ESP32 -vel: 3 lépés
A Bluetooth (BLE) használata ESP32 -vel: 3 lépés

Videó: A Bluetooth (BLE) használata ESP32 -vel: 3 lépés

Videó: A Bluetooth (BLE) használata ESP32 -vel: 3 lépés
Videó: BLE with ESP32 tutorial part 1: the Server 2024, Június
Anonim

#####JEGYZET#####

Az ebben az utasításban bemutatott módszer régi és elavult. Nézze meg ezt a videót a legújabb módszerért.

###############

Míg az ESP32 kiterjedt funkciólistával büszkélkedhet (Wikipédia), a legnagyobb vonzerő a beépített Bluetooth v4.2 BLE támogatással. De ez az állítás félrevezető lehet, miközben a hardver megvan, a Bluetooth használatához szükséges szoftvertámogatás hiányzik. (Fejlesztés alatt áll)

Azok számára, akik nem tudják, mi a BLE, ez a Bluetooth Low Energy rövidítése. Ez egy Bluetooth protokoll, amely jelentősen csökkenti az energiafogyasztást a "klasszikus" Bluetooth -hoz képest.

Ebben az utasításban megmutatom, hogyan használhatja a rendelkezésére álló korlátozott (szoftveres) erőforrásokat az ESP32 tábláról a BLE -n keresztüli adatok küldésére a telefonra.

Néhány lemondás…

Néhány tudnivalót meg kell említenem, mielőtt tovább folytatná ezt az útmutatót.

1. megjegyzés: Amikor azt mondom, hogy a Bluetooth támogatás még nem érhető el, úgy értem, az arduino fejlesztői környezetben.

A támogatás nagyon jól elérhető a hivatalos SDK -ban és az IDF -ben is, de nem találtam megfelelő utasításokat ezekre.

2. megjegyzés: Az általam használt módszer nagyon sok megoldás, és nem a BLE ideális működésének feltétele. A könyvtár támogatja a szolgáltatások BLE -ben történő létrehozását, nem itt található az arduino környezetben.

Az egyetlen dolog, amit megbízhatóan megtehetsz, egy jelzőfény létrehozása, amely a nevét hirdeti. Egy YouTube -megjegyzés nagyon elegánsan fogalmazott: "LOL, brutális hack. De mit tehetsz?"

3. megjegyzés: Az egyetlen küldhető adatfajta a string.

Jól dönthet úgy, hogy más típusú adatokat kódol és dekódol a karakterláncba, de ez nem tartozik az útmutató hatálya alá.

1. lépés: A példaépítés

Image
Image
A példaépítés
A példaépítés
A példaépítés
A példaépítés
A példaépítés
A példaépítés

Ha csak a magyarázatért van itt, akkor kihagyhatja ezt a lépést, de ha végighalad rajta, akkor egy kicsit világosabb lehet.

Először egy példaprojektet fogok készíteni, majd megpróbálom elmagyarázni, hogyan működik, és hogyan lehet megismételni a Bluetooth kommunikációt. Építeni fogunk egy hordozható hőmérséklet -érzékelőt, amely élő adást küld az okostelefonra. A build napokig futhat egyetlen li-po-n, és könnyen bemutatja a BLE előnyeit.

A modult alátétként használhatja az italok szigetelésére, és értesítést kaphat, amint az ital eléri az optimális hőmérsékletet. Mert paráznaság lenne, ha 40 fok feletti teát kellene kortyolgatni.

Az egyetlen hardver, amire szüksége van, egy ESP32 kártya és egy digitális hőmérséklet -érzékelő. Az alaplapom támogatja a külső akkumulátort, így egy 3,7 V-os li-po-t használok, amelyet egy régi eszközről mentettem, hogy ezt a projektet hordozhatóvá tegyem.

Hardver

A hőmérséklet -érzékelő csatlakoztatása egyszerű. A piros vezeték a 3.3V -hoz, a fekete a földhöz (gnd), a sárga a GPIO 2 -hez csatlakozik, amely a táblámon D9 jelöléssel van ellátva. Csatlakoztasson egy 4,7 k ohmos ellenállást a piros és a sárga vezeték közé. Nem az ellenállást használom, hanem az érzékelőmhez mellékelt 3 tűs dugaszolható csatlakozót. Beépített felhúzó ellenállással rendelkezik.

A li-po-t valóban JST-csatlakozóval kell csatlakoztatni, de nem bántam meg, hogy ilyet vásárolhatok, ezért csak behúztam néhány (női-női) áthidaló kábelt a csatlakozóba, és forrasztottam egy másik párt az akkumulátor csatlakozóira. Ez megbízható csatlakozást és ideiglenes tápkapcsolót tesz lehetővé.

Most projektházként egy hungarocell lemezt használok, amelyet egy nagyobb lapból vágtak ki. Ez nagyszerű szigetelést eredményez. Egy másik, sokkal kisebb lemez a tetején ragadt, de egy kicsit oldalra. Ez az extra hosszú huzalok becsomagolására szolgál, hogy ne lógjanak mindenfelé. A ragasztó nagylelkű felhasználása és egy kis lyuk az érzékelő szonda számára készen áll a szoftverre.

Szoftver

Ha még nincs telepítve az arduino IDE, akkor kattintson erre a linkre a letöltéshez. Az arduino szoftver alapértelmezés szerint nem tartalmazza a kártya definícióit a különböző ESP32 kártyákhoz. Ahhoz, hogy elérjék ezt a linket, és letöltik a fájlokat zip -ben. Csomagolja ki őket a következő helyre:

C:/Felhasználók // Dokumentumok/Arduino/hardver/espserrif/ESP32

Hol található a felhasználóneve a számítógépen. Győződjön meg arról, hogy a különböző fájlok elérhetők az ESP32 mappában, és nem egy másik mappában.

Ha most elindítja az arduino szoftvert, és megnyitja az Eszközök-> táblákat, akkor különféle ESP32 táblákat kell látnia, amikor lefelé görget.

A legtöbb digitális hőmérséklet -érzékelő a OneWire protokollt használja a mikrovezérlőkkel való kommunikációhoz, így meg kell szereznünk a könyvtárat. Lépjen a vázlathoz-> tartalmazza a könyvtárat-> kezelje a könyvtárakat, és keressen egyet, és telepítse a könyvtárat, amely túl sok szerző. Nincs szüksége a onewire hubra. Ignoráld.

Most letöltheti és megnyithatja az ehhez a lépéshez mellékelt kódot (hőmérséklet-példa.ino).

Ha tőlem eltérő érzékelőt használ, akkor ennek megfelelően kell megváltoztatnia a kódot. Cserélje ki a kódot a getTemp () alatt. Csak adja vissza a végső hőmérsékletet

Visszatérés;

Hol van a hőmérsékletet tartalmazó úszó.

Csatlakoztassa a táblát, válassza ki a megfelelő táblát és portot az eszközök közül, majd nyomja meg a feltöltést.

Ha a kód nem hajlandó feltölteni, válassza le az érzékelőt, és csatlakoztassa a GPIO 0 -t a földhöz. A feltöltés után állítsa vissza a kapcsolatokat.

Az ESP -nek most a kávé hőmérsékletét kell kiabálnia a világnak, de szüksége van valakire, aki megérti.

Az Android App

Sajnálom az iPhone -használókat (… nem igazán).

Töltse le az apk -t innen és telepítse. Amikor elindítja az alkalmazást, egy nagyon egyszerű felület fogadja Önt.

Ha hibaüzenetet kap, amely szerint „a reklámozás nem támogatott”, kattintson az OK gombra, és figyelmen kívül hagyja, de ha a „BLE nem támogatott” üzenet jelenik meg, akkor a telefon nem rendelkezik Bluetooth 4.0 vagy újabb verzióval, és nem tud futni az alkalmazást.

Győződjön meg arról, hogy a Bluetooth be van kapcsolva a telefonján, és kattintson a „Szkennelés indítása” gombra, amíg az esp a hatótávolságon belül van és be van kapcsolva, bizonyos hőmérsékletértékeket kell kapnia.

Lehetséges hibák:

  • -1000:: Ez azt jelenti, hogy a készülék nem találja az ESP -t. győződjön meg arról, hogy a Bluetooth be van kapcsolva, és próbálja újraindítani az ESP -t.
  • SNA:: Ez azt jelenti, hogy a telefon adatokat fogad az ESP -től, de maga az ESP nem talált hőmérséklet -érzékelőt a GPIO 2 készüléken. Ellenőrizze a tábla sémáival, hogy a GPIO 2 -hez van csatlakoztatva, és nem egy D2 -ként jelölt tűhöz.

2. lépés: A magyarázat

A BLE általában úgy működik, hogy egy eszköz jelzőfényként hirdeti nevét, ezt a nevet bárki láthatja, és az eszköz azonosítására szolgál. Ezután az eszköz különféle szolgáltatásokat hozhat létre, amelyeket mások látnak, amikor csatlakoznak hozzá. Ezek a szolgáltatások különböző adatfolyamokat tartalmazhatnak.

Pl. A „Weather Station” nevű készüléket a következőképpen lehet kiszolgálni: „Hőmérséklet”, „Páratartalom” és „Szél”. Amikor egy másik BLE -eszköz, mint az okostelefon, eszközöket keres, látja a Weather Station -et, és amikor csatlakozik hozzá, képes lesz fogadni a különböző szolgáltatásoknak megfelelő adatfolyamokat.

A jelenleg rendelkezésre álló könyvtárak (az ESP32 számára) lehetővé teszik számunkra, hogy olyan jelzőt hozzunk létre, amelyet mások is felfedezhetnek, de ez a mérték. Nem tudunk szolgáltatásokat létrehozni, és semmilyen eszköz nem tud csatlakozni hozzá.

Tehát hogyan küldök adatokat szolgáltatások létrehozása nélkül, a Beacon Stuffing nevű WiFi protokollhoz hasonló technikával. Ez azt jelenti, hogy magába a beacon névbe is be kell küldeni az elküldendő adatokat. Ez lehetővé teszi számomra az adatok reklámozását anélkül, hogy más eszközöket kellene csatlakoztatni a jelzőfényhez.

ble.begin (beaconMsg); // a beaconMsg a meghirdetett név

A SimpleBLE könyvtár segítségével létrehozunk egy jelzőfényt a nevével ESP formátumban. Ahol az „ESP” mindig változatlan marad a név elején, és 100 milliszekundumonként a getValue () függvény által visszaadott legújabb adatokkal helyettesíti.

float getValue () {return sensorValue;}

Az androidos alkalmazás az ESP -vel kezdődő BLE -eszközneveket keresi, ha megtalálta, feldarabolja a nevet, és csak a végéről jeleníti meg az adatokat.

A kommunikáció csak egy út, az alkalmazás nem küld vissza semmit.

3. lépés: Következtetés

A nap végén ez a módszer nem helyettesíti a megfelelően megvalósított BLE könyvtárat, de elegendő lehet néhány projekt lezárása, amíg a teljes BLE támogatás meg nem érkezik az Arduino -hoz. Remélhetőleg ez az útmutató segít némi segítséget nyújtani Önnek.

NAGY Köszönöm a DFRobot.com -nak, hogy elküldte nekem ezeket a termékeket:

  • ESP32 FireBeetle tábla
  • FireBeetle Expantion Shield
  • DS18B20 hőmérséklet érzékelő

Nemrég találtam erre a könyvtárra. A ReadME azt állítja, hogy csatlakozhat más BLE -eszközökhöz az adatok fogadásához (nem hirdetheti magát). Nem próbáltam, de ha érdekel nézd meg.

A projekt videóját megtekintheti: YouTube

Ajánlott: