Okos otthon is fókuszban

Arduino kalandok

Arduino kalandok

Autó okosítás - BT kapcsolat - part 2

2019. december 12. - denx

A neten elérhető programok egy része jó, más része bugos, de az látszik, hogy az én igényeimet nem szolgálja ki egyik se. Csapjunk hát bele a fejlesztésbe. Mivel ez egy proof of concept jellegű munka, ezért elég sok vargabetű és zsákutca van már a mögöttem, igyekszem csak a lényeget elmesélni itt.

ESP32...

 Amivel elég hamar szembetaláltam magam az ESP32 kapcsán, az a platform különbözősége. Ezt a lapkát ugyanis a gyártó szerint a legjobb, ha minden fejlesztő a saját IDF nevű feljesztőkörnyezetével programozza.

espressif-logo.png

Őszintén szólva nem ástam magam nagyon bele a témába, de az látszik, hogy ez nem annyira kényelmes dolog, mint mondjuk az Arduino környezet. Szerencsére a kettő megfér egymás mellett: Atom - PlatformIO párossal simán lehet olyat csinálni, hogy 1-1 forrásfájl IDF-ben van írva és azt egy ardus projektben használja az ember fia.

... és a BT

Ha az ember rákeres arra, hogy ESP32 és BT, akkor vagy ugyanarra a példaprogramra akad, amire én is, vagy BLE-vel kezdenek foglalkozni a fellelhető oldalak. Nekem a BLE most nem jó, viszont az az Espressif-es példaprogram sem volt elég jó, ami mindenhol a neten van. 

Az a példa nem csinál mást, minthogy az ESP-t mint BT eszközt beindítja és várja hogy valaki csatlakozzon hozzá. Kapufa: nekem az kell, hogy az ESP csatlakozzon másik BT eszközhöz és utána beszélgetésbe elegyedjenek. Amikor nagy nehezen találtam egy olyan példát, ahol az ESP létesíti a kapcsolatot, akkor meg az volt a gond, hogy csak a legegyszerűbb, pin-kód nélküli csatlakozás volt leimplementálva. Az én BT CAN adapterem sem bonyolult, de ha telefonról próbálok rá csatlakozni, akkor az a következő képpen megy:

  1. hosszan nyomom az adapteren léve gombot, amire az felkínálja magát párosodásra
  2. telefonon keresni kezdem az elérhető BT eszközöket, amik között megtalálom az adaptert is, de a neve nem látszik, csak a címe (mac address)
  3. rábökök telefonon, mire kiderül a neve is és felteszi a kérdést a telefon, hogy "ez az az eszköz, amelyik a következő PIN-kódot írja ki? 654321". Nos, mivel kijelző nincs az eszközön, ezért vakon kell az ember rámondja, hogy "igen"
  4. Ezután a párosodás lemegy és onnantól a 2 eszköz ismeri egymást.

Nem bonyolult a dolog, de az tesz bele egy kis csavart, hogy PIN-kód kerül szóba. Elég sokáig kellett kutatnom, mire rátaláltam az egyik helyen egy olyan libre, ami képes ilyen pin-kódos eszközhöz párosodni:

https://github.com/gmag11/BTClassicSPP

Nem ígér sokat a lib, de azt hozza! Szóval ezzel sikerült név alapján csatlakoznom az adapterhez. Más kérdés, hogy minden alkalommal párosodniuk kellett, de ez csak az én hibám volt: ugyanis ha a név mellé a címet is megadjuk a lib hívásakor, akkor már párosodás nélkül is simán megy a dolog. 

Szóval sikerült elérnem, hogy csatlakozzon a kütyü az adapterhez. Ha nyomok egy resetet az ESP-n, akkor újraindulás után kell egy kis idő, mire ismét kapcsolódik, de ez mindössze pár másodperc és szerintem amiatt van, hogy az adapternek le kell rendeznie magában hogy újracsatlakozás van a korábban kapcsolódott eszközhöz.

Soros port

Miután a kapcsolat létrejött, egy igen egszerű kis kódrészlettel eljutottam oda, hogy ha valamit beírok a PC-re dugott ESP-nek a soros portjára, akkor azt elküldi BT-n az adapternek és amit válaszként kap, azt meg visszaírja nekem soros porton.

Ez kiváló lehetőség volt arra, hogy ki tudja próbálni, válaszol-e az adapter az AT parancsokra. Szerencsére mindenre tökéletesen válaszolt és sikerült jó sok olyan adatot begyűjtenem, amire utána fel tudtam építeni a feldolgozó kódot

A bejegyzés trackback címe:

https://ardu.blog.hu/api/trackback/id/tr5415341122

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása