Obsah:

Ako používať Bluetooth (BLE) s ESP32: 3 kroky
Ako používať Bluetooth (BLE) s ESP32: 3 kroky

Video: Ako používať Bluetooth (BLE) s ESP32: 3 kroky

Video: Ako používať Bluetooth (BLE) s ESP32: 3 kroky
Video: ESP32 Tutorial 3 - Resistor, LED, Bredboard and First Project: Hello LED -ESP32 IoT Learnig kit 2024, November
Anonim

#####POZNÁMKA#####

Metóda uvedená v tomto návode je stará a zastaraná. Pozrite sa na toto video, kde nájdete najnovšiu metódu.

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

Aj keď sa ESP32 môže pochváliť rozsiahlym zoznamom funkcií (Wikipedia), najväčšou vlastnosťou, ktorá púta pozornosť, je vstavaný bluetooth v4.2 s podporou BLE. Toto tvrdenie však môže byť zavádzajúce, zatiaľ čo hardvér je k dispozícii, softvérová podpora používania rozhrania Bluetooth chýba. (Je vo vývoji)

Pre tých, ktorí nevedia, čo je BLE, to znamená Bluetooth Low Energy. Je to protokol bluetooth, ktorý v porovnaní s „klasickým“Bluetooth zvyšuje výrazne nižšiu spotrebu energie.

V tomto návode vám ukážem, ako môžete použiť obmedzené (softvérové) zdroje, ktoré máte k dispozícii, na odosielanie údajov z dosky ESP32 do vášho telefónu cez BLE.

Niekoľko zrieknutí sa zodpovednosti…

Predtým, ako budete v tejto príručke pokračovať, by som mal spomenúť niekoľko vecí, ktoré by som mal spomenúť.

Poznámka 1: Keď hovorím, že podpora Bluetooth ešte nie je k dispozícii, mám na mysli vývojové prostredie arduino.

Podpora môže byť veľmi dostupná v oficiálnej SDK aj v IDF, ale nenašiel som pre ne žiadne kompetentné pokyny.

Poznámka 2: Metóda, ktorú používam, je do značnej miery riešením a nie tým, ako by v ideálnom prípade malo fungovať BLE. Knižnica podporuje vytváranie služieb v BLE tu nie je pre arduino prostredie.

Jediná vec, ktorú môžete spoľahlivo urobiť, je vytvoriť maják, ktorý inzeruje jeho meno. Komentár na YouTube to vyjadril veľmi elegantne: „LOL, brutálny hack. Ale čo môžete robiť?“

Poznámka 3: Jediný druh údajov, ktoré môžete odoslať, je reťazec.

Môžete sa veľmi dobre rozhodnúť kódovať a dekódovať údaje iného druhu do az reťazca, ale to je nad rámec tejto príručky.

Krok 1: Príklad zostavy

Image
Image
Príklad stavby
Príklad stavby
Príklad stavby
Príklad stavby
Príklad stavby
Príklad stavby

Ak ste tu len kvôli vysvetleniu, môžete tento krok preskočiť, ale jeho absolvovanie vám môže poskytnúť väčšiu jasnosť.

Najprv vytvorím príklad projektu a potom sa pokúsim vysvetliť, ako funguje a ako môžete replikovať komunikáciu Bluetooth. Postavíme prenosný snímač teploty, ktorý do vášho smartfónu odošle živý prenos. Zostava môže fungovať niekoľko dní na jednom li-po a ľahko demonštruje výhody BLE.

Modul môžete použiť ako podložku na izoláciu nápojov a dostanete upozornenie hneď, ako váš nápoj dosiahne optimálnu teplotu. Pretože by to bola travestia, keby ste museli popíjať čaj, ktorý mal stupeň vyšší ako 40.

Jediný hardvér, ktorý potrebujete, je doska ESP32 a digitálny snímač teploty. Moja doska podporuje externú batériu, takže používam 3,7 V li-po, ktorý som zachránil z nejakého starého zariadenia, aby bol tento projekt prenosný.

Hardvér

Pripojenie snímača teploty je jednoduché. Červený vodič sa pripája na 3,3 V, čierny na uzemnenie (GND), žltý na GPIO 2, ktorý je na mojej doske označený ako D9. Medzi červený a žltý vodič zapojte odpor 4,7 kOhm. Nepoužívam odpor, namiesto toho používam 3-kolíkový konektor, ktorý je súčasťou môjho senzora. Má vstavaný pull up odpor.

Li-po by mal byť skutočne pripojený pomocou konektora JST, ale nemohol som sa obťažovať kúpiť si ho, a tak som do konektora vložil niekoľko prepojovacích káblov (medzi ženami a ženami) a spájal som ďalší pár na svorky batérie. To zaisťuje spoľahlivé pripojenie a provizórny vypínač.

Teraz ako prílohu projektu používam kotúč z polystyrénu, ktorý bol vystrihnutý z väčšieho listu. Vďaka tomu je výborný izolant. Ďalší oveľa menší disk je prilepený hore, ale trochu nabok. Slúži na zabalenie extra dlhých drôtov, aby nevisali po celom mieste. Po výdatnom použití lepidla a malého otvoru pre senzorovú sondu ste pripravení pristúpiť k softvéru.

Softvér

Ak ešte nemáte arduino IDE nainštalované, prejdite na tento odkaz a stiahnite si ho. Softvér arduino štandardne neobsahuje definície dosiek pre rôzne dosky ESP32. Ak ich chcete nechať prejsť týmto odkazom a stiahnuť súbory vo formáte zip. Musíte ich rozbaliť na toto miesto:

C:/Používatelia // Dokumenty/Arduino/hardvér/espserrif/ESP32

Kde je vaše používateľské meno na počítači. Uistite sa, že rôzne súbory sú k dispozícii v priečinku ESP32 a nie v inom priečinku.

Ak teraz spustíte softvér arduino a prejdete na nástroje-> dosky, pri posúvaní nadol by ste mali vidieť rôzne dosky ESP32.

Väčšina digitálnych snímačov teploty používa na komunikáciu s mikrokontrolérmi protokol OneWire, takže potrebujeme knižnicu. Prejdite na skicu-> zahrnúť knižnicu-> spravovať knižnice a vyhľadať onewire a nainštalovať knižnicu, ktorá je príliš veľkým počtom autorov. Nepotrebujete rozbočovač onewire. Nevšímaj si to.

Teraz si môžete stiahnuť a otvoriť kód priložený k tomuto kroku (teplota-priklad.ino).

Ak používate iný snímač ako ja, budete musieť zodpovedajúcim spôsobom zmeniť kód. Nahraďte kód v rámci getTemp (). Stačí vrátiť konečnú teplotu vo forme

Návrat;

Kde je plavák obsahujúci teplotu.

Zapojte dosku, z nástrojov vyberte správnu dosku a port a kliknite na tlačidlo Nahrať.

Ak sa kód odmietne nahrať, odpojte snímač a pripojte GPIO 0 k zemi. Po nahraní obnovte pripojenia.

Váš ESP by teraz mal kričať o teplote vašej kávy do sveta, ale potrebujete niekoho, kto tomu rozumie.

Aplikácia pre Android

Ospravedlňujeme sa používateľom iPhone (… nie naozaj).

Tu si stiahnite apk a nainštalujte ho. Hneď po spustení aplikácie vás privíta veľmi jednoduché rozhranie.

Ak sa zobrazí chybové hlásenie „Reklama nie je podporovaná“, kliknite na tlačidlo OK a ignorujte ho. Ak sa vám však zobrazí správa „BLE nie je podporované“, váš telefón nemá Bluetooth 4.0 alebo novší a nemôže byť spustený aplikáciu.

Uistite sa, že je v telefóne zapnuté rozhranie Bluetooth, a kliknite na položku „Spustiť skenovanie“, pokiaľ je zariadenie esp v dosahu a zapnuté, mali by ste dostávať hodnoty teploty.

Možné chyby:

  • -1000:: To znamená, že vaše zariadenie nemohlo nájsť ESP. uistite sa, že je zapnuté Bluetooth, a skúste reštartovať ESP.
  • SNA:: To znamená, že váš telefón prijíma údaje z ESP, ale samotný ESP nedokázal nájsť snímač teploty na GPIO 2. Uistite sa, že sú pripojenia zaistené a skontrolujte, či používate odpor správnej hodnoty. Dôkladne skontrolujte schémy dosky, či ste pripojení k GPIO 2 a nie k pinu označenému ako D2.

Krok 2: Vysvetlenie

BLE normálne funguje tak, že zariadenie inzeruje svoje meno ako maják. Tento názov môže vidieť ktokoľvek a používa sa na identifikáciu zariadenia. Potom môže zariadenie vytvárať rôzne služby, ktoré vidia ostatní, keď sa k nemu pripoja. Tieto služby môžu mať rôzne toky údajov.

Napríklad napr. Na zariadení s názvom „Meteorologická stanica“je možné vykonávať servis ako „teplota“, „vlhkosť“a „vietor“. Keď iné zariadenie BLE, ako je váš smartphone, vyhľadá zariadenia, uvidí meteorologickú stanicu a keď sa k nej pripojí, bude schopné prijímať toky údajov pod zodpovedajúcimi rôznym službám.

Knižnice (pre ESP32), ktoré sú nám v súčasnosti k dispozícii, nám umožňujú vytvoriť maják, ktorý môžu objaviť iní, ale to je jeho rozsah. Nemôžeme vytvárať služby ani sa k nemu nemôže pripojiť žiadne zariadenie.

Posielam údaje bez vytvárania služieb teda využívam techniku podobnú protokolu WiFi, ktorá sa nazýva Beacon Stuffing. To znamená, že uvádzam údaje, ktoré sa majú odoslať, v samotnom názve majáka. To mi umožňuje inzerovať údaje bez toho, aby bolo potrebné, aby sa k majáku pripájali ďalšie zariadenia.

ble.begin (beaconMsg); // beaconMsg je inzerovaný názov

Na vytvorenie majáku s jeho názvom vo formáte ESP používame knižnicu SimpleBLE. Kde „ESP“zostáva vždy na začiatku názvu nezmenené a je nahradené najnovšími údajmi vrátenými funkciou getValue () každých 100 milisekúnd.

float getValue () {return sensorValue;}

Aplikácia pre Android hľadá názvy zariadení BLE začínajúce na „ESP“, akonáhle ich nájde, rozdelí názov a zobrazí údaje iba od konca.

Komunikácia je len jedným zo spôsobov, aplikácia nič neposiela späť.

Krok 3: Záver

Na konci dňa táto metóda nenahrádza správne implementovanú knižnicu BLE, ale môže postačovať na zastavenie niektorých projektov, kým do Arduina nepríde úplná podpora BLE. Dúfajme, že vám tento návod na použitie bol nápomocný.

VEĽKÉ Ďakujem DFRobot.com za zaslanie týchto produktov:

  • Doska ESP32 FireBeetle
  • Rozširovací štít FireBeetle
  • Snímač teploty DS18B20

Nedávno som našiel túto knižnicu. ReadME tvrdí, že sa môžete pripojiť k iným zariadeniam BLE na príjem údajov (nemôžete sa inzerovať). Neskúšal som to, ale ak máte záujem, môžete sa na to pozrieť.

Video z projektu si môžete pozrieť na: YouTube

Odporúča: