Obsah:
Video: Jak používat Bluetooth (BLE) s ESP32: 3 kroky
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:21
#####POZNÁMKA#####
Metoda ukázaná v tomto Instructables je stará a zastaralá. Podívejte se na toto video, kde najdete nejnovější metodu.
###############
Zatímco ESP32 se může pochlubit rozsáhlým seznamem funkcí (Wikipedia), největší funkcí, která upoutá pozornost, je vestavěný bluetooth v4.2 s podporou BLE. Toto prohlášení však může být zavádějící, zatímco hardware je k dispozici, softwarová podpora pro použití Bluetooth chybí. (Je ve vývoji)
Pro ty, kteří nevědí, co je BLE, to znamená Bluetooth Low Energy. Je to protokol bluetooth, který ve srovnání s „klasickým“Bluetooth zvyšuje výrazně nižší spotřebu energie.
V tomto Instructables vám ukážu, jak můžete použít omezené (softwarové) zdroje, které máte k dispozici, k odesílání dat z desky ESP32 do vašeho telefonu přes BLE.
Několik zřeknutí se odpovědnosti…
Několik poznámek, které bych měl zmínit, než budete v této příručce pokračovat dále.
Poznámka 1: Když říkám, že podpora Bluetooth ještě není k dispozici, mám na mysli vývojové prostředí arduino.
Podpora může být velmi dobře dostupná v oficiální SDK i v IDF, ale nenašel jsem pro ně žádné kompetentní pokyny.
Poznámka 2: Metoda, kterou používám, je do značné míry řešením a nikoli tím, jak by v ideálním případě mělo fungovat BLE. Knihovna podporující vytváření služeb v BLE zde pro prostředí arduino není.
Jediná věc, kterou můžete spolehlivě udělat, je vytvořit maják, který inzeruje jeho jméno. Komentář na YouTube to vyjádřil velmi elegantně: "LOL, brutální hack. Ale co můžete dělat?"
Poznámka 3: Jediný druh dat, která můžete odeslat, je řetězec.
Můžete se velmi dobře rozhodnout kódovat a dekódovat data jiného druhu do az řetězce, ale to je mimo rozsah této příručky.
Krok 1: Příklad sestavení
Pokud jste zde jen kvůli vysvětlení, můžete tento krok přeskočit, ale jeho procházení vám může dát trochu větší jasnost.
Nejprve vytvořím příklad projektu a poté se pokusím vysvětlit, jak funguje a jak můžete replikovat komunikaci Bluetooth. Postavíme přenosný teplotní senzor, který odešle živý přenos do vašeho smartphonu. Sestavení může běžet několik dní na jednom li-po a snadno demonstruje výhody BLE.
Modul můžete použít jako tácek k izolaci nápojů a obdržení upozornění, jakmile váš nápoj dosáhne optimální teploty. Protože by to byl průšvih, kdybyste museli usrkávat čaj, který měl stupeň nad 40.
Jediný hardware, který potřebujete, je deska ESP32 a digitální teplotní senzor. Moje deska podporuje externí baterii, takže používám 3,7V li-po, který jsem zachránil z nějakého starého zařízení, aby byl tento projekt přenosný.
Hardware
Připojení pro teplotní senzor je jednoduché. Červený vodič se připojuje na 3,3 V, černý na zem (GND), žlutý na GPIO 2, který je na mé desce označen jako D9. Mezi červený a žlutý vodič připojte odpor 4,7 kOhm. Nepoužívám odpor, místo toho používám 3pinový konektor, který lze připojit k mému senzoru. Má vestavěný pull up odpor.
Li-po by měl být opravdu připojen pomocí konektoru JST, ale nemohl jsem se obtěžovat ho koupit, takže jsem do konektoru vložil některé propojovací kabely (žena-žena) a připájel další pár na svorky baterie. To zajišťuje spolehlivé připojení a provizorní vypínač.
Nyní jako kryt projektu používám disk z polystyrenu, který byl vystřižen z většího listu. Díky tomu je skvělý izolant. Další mnohem menší disk je přilepený nahoře, ale trochu stranou. Slouží k omotání extra délky drátů, aby se nepohybovaly všude. Po velkorysém nasazení lepidla a malého otvoru pro senzorovou sondu jste připraveni přejít k softwaru.
Software
Pokud ještě nemáte nainstalované arduino IDE, přejděte na tento odkaz a stáhněte si jej. Software arduino ve výchozím nastavení neobsahuje definice desek pro různé desky ESP32. Chcete -li je přimět jít tímto odkazem a stáhnout soubory ve formátu zip. Musíte je rozbalit na toto místo:
C:/Uživatelé // Dokumenty/Arduino/hardware/espserrif/ESP32
Kde je vaše uživatelské jméno na vašem PC. Ujistěte se, že různé soubory jsou k dispozici ve složce ESP32 a nejsou v jiné složce.
Nyní, když spustíte software arduino a přejdete na nástroje-> desky, měli byste při posouvání dolů vidět různé desky ESP32.
Většina digitálních teplotních senzorů používá ke komunikaci s mikrořadiči protokol OneWire, takže potřebujeme získat knihovnu. Přejděte na skicu-> zahrnout knihovnu-> spravovat knihovny a hledat onewire a nainstalovat knihovnu, která je mimochodem příliš mnoho autorů. Nepotřebujete rozbočovač onewire. Ignorujte to.
Nyní si můžete stáhnout a otevřít kód připojený k tomuto kroku (teplota-příklad.ino).
Pokud používáte jiný snímač než já, budete muset kód odpovídajícím způsobem změnit. Nahraďte kód pod getTemp (). Stačí vrátit konečnou teplotu ve formě
Vrátit se;
Kde je plovák obsahující teplotu.
Zapojte desku, z nástrojů vyberte správnou desku a port a klikněte na Nahrát.
Pokud kód odmítne nahrát, odpojte snímač a připojte GPIO 0 k zemi. Po odeslání obnovte připojení.
Váš ESP by nyní měl křičet teplotu vaší kávy do světa, ale potřebujete někoho, kdo tomu rozumí.
Aplikace pro Android
Omlouváme se uživatelům iPhonu (… vlastně ne).
Stáhněte si apk odtud a nainstalujte jej. Když spustíte aplikaci, uvítá vás velmi jednoduché rozhraní.
Pokud se zobrazí chybová zpráva „reklama není podporována“, klikněte na OK a ignorujte ji, ale pokud se zobrazí zpráva „BLE není podporováno“, váš telefon nemá Bluetooth 4.0 nebo vyšší a nelze jej spustit aplikace.
Ujistěte se, že je v telefonu zapnuté Bluetooth, a klikněte na „Spustit skenování“, pokud je esp v dosahu a zapnuté, měli byste dostávat nějaké hodnoty teploty.
Možné chyby:
- -1000:: To znamená, že vaše zařízení nemohlo najít ESP. ujistěte se, že je zapnuté Bluetooth, a zkuste restartovat ESP.
- SNA:: To znamená, že váš telefon přijímá data z ESP, ale ESP sám nemohl najít teplotní čidlo na GPIO 2. Ujistěte se, že jsou připojení bezpečná, zkontrolujte, zda používáte odpor správné hodnoty. Znovu zkontrolujte schémata desky, zda jste připojeni k GPIO 2 a ne k pinu označenému jako D2.
Krok 2: Vysvětlení
BLE normálně funguje tak, že zařízení inzeruje své jméno jako maják, toto jméno může vidět kdokoli a slouží k identifikaci zařízení. Poté může zařízení vytvářet různé služby, které vidí ostatní, když se k němu připojí. Tyto služby mohou mít různé datové toky.
Pro např. Zařízení s názvem „Meteorologická stanice“může pod ním obsluhovat například „Teplota“, „Vlhkost“a „Vítr“. Když jiné zařízení BLE, jako je váš smartphone, vyhledává zařízení, uvidí meteorologickou stanici a když se k ní připojí, bude schopno přijímat datové toky pod odpovídajícími různými službami.
Knihovny (pro ESP32), které jsou nám aktuálně k dispozici, nám umožňují vytvořit maják, který mohou objevit ostatní, ale to je jeho rozsah. Nemůžeme vytvářet služby ani se k němu nemůže připojit žádné zařízení.
Jak tedy odesílám data bez vytváření služeb, je použití techniky podobné protokolu WiFi s názvem Beacon Stuffing. To znamená, že zahrnuji data, která mají být odeslána, v samotném názvu majáku. To mi umožňuje inzerovat data bez nutnosti připojení dalších zařízení k majáku.
ble.begin (beaconMsg); // beaconMsg je inzerovaný název
Knihovnu SimpleBLE používáme k vytvoření majáku s jeho názvem ve formátu ESP. Kde „ESP“vždy zůstává nezměněn na začátku názvu a je nahrazen nejnovějšími daty vrácenými funkcí getValue () každých 100 milisekund.
float getValue () {return sensorValue;}
Aplikace pro Android vyhledává názvy zařízení BLE začínající na „ESP“, jakmile je najde, rozdělí název a zobrazí pouze data od konce.
Komunikace je pouze jedním ze způsobů, aplikace nic neposílá zpět.
Krok 3: Závěr
Na konci dne tato metoda nenahrazuje řádně implementovanou knihovnu BLE, ale může stačit některé projekty odložit, dokud do Arduina nepřijde kompletní podpora BLE. Naštěstí vám tento Instructables pomohl.
VELKÉ díky DFRobot.com za zaslání těchto produktů:
- Deska ESP32 FireBeetle
- FireBeetle Expantion Shield
- Snímač teploty DS18B20
Nedávno jsem našel tuto knihovnu. ReadME tvrdí, že se můžete připojit k jiným zařízením BLE a přijímat data (nemůžete se inzerovat). Nezkoušel jsem to, ale pokud máte zájem, můžete se na to podívat.
Video z projektu si můžete prohlédnout na: YouTube
Doporučuje:
Jak vytvořit zaváděcí jednotku Linux (a jak ji používat): 10 kroků
Jak vytvořit zaváděcí jednotku Linux (a jak ji používat): Toto je jednoduchý úvod, jak začít s Linuxem, konkrétně Ubuntu
Rotační kodér: Jak funguje a jak jej používat s Arduinem: 7 kroků
Rotační kodér: Jak to funguje a jak používat s Arduinem: Tento a další úžasné návody si můžete přečíst na oficiálním webu ElectroPeak Přehled V tomto tutoriálu se seznámíte s používáním rotačního kodéru. Nejprve uvidíte nějaké informace o rotačním kodéru a poté se naučíte, jak
ESP32 Bluetooth Tutorial - Jak používat vestavěný Bluetooth v ESP32: 5 kroků
ESP32 Bluetooth Tutorial | Jak používat vestavěný Bluetooth ESP32: Ahoj kluci, protože deska ESP32 je dodávána s WiFi & Bluetooth oba, ale pro naše většinou Projekty obvykle používáme pouze Wifi, nepoužíváme Bluetooth. Takže v tomto návodu ukážu, jak snadné je používat Bluetooth ESP32 & Pro vaše základní projekty
Jak nastavit a používat WeMos TTgo ESP32 Uno D1 R32: 3 kroky
Jak nastavit a používat WeMos TTgo ESP32 Uno D1 R32: Jak nastavit WeMos® TTgo ESP32 uno D1 R32 projde všemi kroky k uvedení WeMos® TTgo ESP32 uno D1 R32 do provozu
Jak používat terminál Mac a jak používat klíčové funkce: 4 kroky
Jak používat terminál Mac a jak používat klíčové funkce: Ukážeme vám, jak otevřít terminál MAC. V Terminálu vám také ukážeme několik funkcí, jako je ifconfig, změna adresářů, přístup k souborům a arp. Ifconfig vám umožní zkontrolovat vaši IP adresu a vaši MAC adresu