Obsah:
Video: Ako používať Bluetooth (BLE) s ESP32: 3 kroky
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:58
#####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
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:
Ako používať krokový motor ako rotačný snímač a OLED displej pre kroky: 6 krokov
Ako používať krokový motor ako rotačný kodér a OLED displej na kroky: V tomto návode sa naučíme sledovať kroky krokového motora na OLED displeji. Pozrite si ukážkové video. Kredit za originálny návod odošle používateľovi youtube " sky4fly "
Visuino Ako používať tlačidlo ako vstup na ovládanie vecí ako LED: 6 krokov
Visuino Ako používať tlačidlo ako vstup na ovládanie vecí ako LED: V tomto návode sa naučíme, ako zapnúť a vypnúť LED diódu jednoduchým tlačidlom a Visuino. Pozrite si ukážkové video
ESP32 Bluetooth návod - Ako používať vstavané Bluetooth v ESP32: 5 krokov
ESP32 Bluetooth návod | Ako používať vstavaný Bluetooth v ESP32: Ahoj, pretože doska ESP32 je vybavená WiFi a Bluetooth, ale pre naše väčšinou Projekty zvyčajne používame iba Wifi, nepoužívame Bluetooth. Takže v tomto návode ukážem, aké ľahké je používať Bluetooth ESP32 & Pre vaše základné projekty
Ako používať terminál Mac a ako používať kľúčové funkcie: 4 kroky
Ako používať terminál Mac a ako používať kľúčové funkcie: Ukážeme vám, ako otvoriť terminál MAC. V termináli vám tiež ukážeme niekoľko funkcií, ako napríklad ifconfig, zmena adresárov, prístup k súborom a arp. Ifconfig vám umožní skontrolovať vašu IP adresu a vašu MAC adresu
Ako používať Wiimote ako počítačovú myš pomocou sviečok ako senzora !!: 3 kroky
Ako používať Wiimote ako počítačovú myš pomocou sviečok ako senzora !!: Táto príručka vám ukáže, ako prepojiť diaľkový ovládač Wii Remote (Wiimote) s počítačom a používať ho ako myš