Aplikace komunikující s hardwarem? Představujeme technologie, s nimiž pracují
21. 6. 2022 | Dactyl GroupKaždý už někdy použil navigaci v mobilu, kdekdo si také přes aplikaci pouští hudbu do vzdáleného reproduktoru a už nepotřebujeme peněženku, protože v klidu zaplatíme telefonem. Inovace jdou ale pořád dál, a tak si prostřednictvím mobilu můžeme třeba také zkontrolovat stav nádrže v autě. Všechno se děje pomocí aplikací, které mají něco společného – komunikují bezkontaktně se vzdáleným zařízením, ale všechny jiným způsobem, pomocí jiných technologií. V tomto článku se podíváme, o jaké přesně jde. Máte-li náladu na techničtější čtení, směle do toho!
Jak spolu appky a zařízení komunikují? Různě!
Tento článek jsme pro vás napsali v Dactyl Group – brněnské IT firmě, kde se zaměřujeme na vývoj mobilních aplikací. Baví nás propojovat software s hardwarem. ,,Běžná” aplikace má své kouzlo, když ale vytváříte takovou, pomocí které můžete ovládat například chytré hodinky, auto, nebo dokonce zbraň, je to mnohem dobrodružnější. Jak ale udělat, aby to fungovalo? Možností je několik:
1. Pomocí internetu
Nejedná se o „přímou“ komunikaci, jelikož vše prochází přes server. Typickým příkladem jsou služby k pronajmutí elektrických koloběžek. Polohu koloběžky vidíte v aplikaci, kde si ji můžete předem rezervovat. Když se chcete vydat na cestu, lze ji „prozvonit“, abyste ji jednoduše našli (koloběžka zatroubí či zabliká). Odemkne se stisknutím tlačítka, což vyšle požadavek na server. Někdy musíte vyfotit identifikační QR kód. Koloběžka má také svůj internetový modul, přes který přijímá příkazy k prozvonění, odemknutí a jiné. Vše šlape, jak má, když máte v telefonu internet.
2. Přes Bluetooth
To je jednoznačně nejpopulárnější a nejpoužívanější technologie pro komunikaci se vzdáleným zařízením. Zejména příchod podpory pro Bluetooth Low Energy (BLE) zařízení způsobil revoluci a otevřel spektrum možností pro vývojáře mobilních aplikací. Právě díky tomu fungují všechny chytré hodinky, které jsou párovány s aplikací v mobilu, bezdrátová sluchátka, reproduktory, náramky, smart prsteny a mnoho jiných zařízení.
Před samotnou komunikací musí aplikace provést skenování okolních zařízení, aby se k nějakému zařízení připojila. Aplikace tak ví o všech okolních věcech vysílajících „advertising signal“. Připojuje se pak jen jednorázově a na popředí, nebo naopak může provést párování, resp. „Bonding“ a komunikovat tak pravidelně i na pozadí.
Zajímavost – Jak je to s dosahem? Efektivní vzdálenost se udává 10 metrů. Pod slovem ,,efektivní” rozumíme, že např. přenášená hudba z mobilu do bezdrátových sluchátek bude hrát nepřerušovaně, bez šumu a bez snížené kvality. Jedná se však o velmi hrubý odhad a realita je ovlivněna mnoha faktory. Záleží hlavně na výkonnosti antény mobilu a na vzdálených bluetooth zařízeních (jsou různé antény s odlišným výkonem a dosahem). Velkou roli hraje také prostředí. Bluetooth signál může ovlivnit jiný zdroj bezdrátového rušení, třeba mikrovlnka nebo rádio. Signál oslabují i fyzické překážky – lidé, nábytek, stěny (opět je velký rozdíl mezi sádrokartonem a železobetonovým panelem), či dokonce počasí.
3. Skrze Near Field Communication (NFC)
NFC se hodí pro krátké bezkontaktní vzdálenosti do 4 cm. Tato technologie je známá díky možnosti bezkontaktní platby kartou v mobilu, kde stačí přiložit telefon k terminálu. NFC má však širší využití. U nás v Dactyl Group jsme například pracovali na aplikaci pro společnost ROBE lighting. Ta vyrábí multifunkční svítidla a pomocí NFC komunikace svítidlům rychle a jednoduše nahrává nová nastavení.
4. Pomocí USB rozhraní
Jde o propojení mobilního telefonu se vzdáleným zařízením klasickým USB kabelem. Jelikož se nejedná o bezdrátový přenos, není to uživatelsky pohodlné, takže to dnes již málokdo využívá.
Vývoj aplikací komunikujících s hardwarem má svá úskalí
Když chcete appkou něco ovládat, dá to samozřejmě práci. Projekty tohoto druhu jsou jednoznačně náročnější na vývoj a testování, což je poté dražší i časově náročnější. Z klasické komunikace “aplikace – server” se aplikace stává jakýmsi prostředníkem při komunikaci “zařízení – aplikace – server”.
Aplikace musí řešit synchronizaci dat mezi zařízením a serverem. Při tom může nastat mnoho chybových stavů a situací, které je nutné předvídat a ošetřovat. Např. mobil nebude mít dostupný internet, tudíž data nepůjde posílat na server. Zařízení také může být mimo dosah, nebo může mít výpadek server. Také je potřeba kontrolovat, zda je bluetooth na mobilu zapnutý, nebo zda nebyly aplikací odstraněny permise. Podobné scénáře je nutné zpracovat již v grafickém návrhu, aby si aplikace uměla poradit a aby uživatel nepocítil, že nastal problém.
Vývoj mobilních aplikací na míru je vždy velká legrace i proto, že software vzdáleného bluetooth zařízení má na starosti jiný vývojářský tým. My, mobilní vývojáři, se neobejdeme bez specifikace pro komunikaci. V Dactylu se proto vždy obracíme na vývojáře zařízení, kteří nám naštěstí vycházejí vstříc a komunikaci přizpůsobují tak, aby našim platformám vyhovovala.
Například v případě smart hodinek je důležité získaná data uchovávat i na serveru. Na základě bluetooth specifikace mobilní vývojáři s backend vývojáři upřesní API strukturu a navrhnou komunikaci mezi serverem a aplikací.
V rámci vývoje mobilních aplikací komunikujících s bluetooth jsme se nejčastěji setkali s čipy od firmy Nordic Semiconductor a jejich dev kity.
Z pohledu platforem v komunikaci s bluetooth zařízeními není příliš rozdíl. V iOSu existuje Core Bluetooth framework a v Androidu zase Bluetooth APIs. V případě crossplatformového vývoje v technologii Flutter je bluetooth komunikace nedoporučená, protože neexistuje oficiální plugin.
V Dactyl Group vyvíjíme mobilní aplikace na míru
Zde je několik příkladů naší práce spočívající v komunikaci appky a hardwaru:
BikeLink Tech (komunikace přes Bluetooth a USB)
V USA mají v současné době skvělý ohlas uzamykatelné skříňky pro bezpečné uložení jízdních kol. Pro správné fungování těchto skříněk je však zapotřebí, aby je technici pravidelně kontrolovali. Pro provedení servisu se k nim museli připojit přes speciální typ karty. My servisní proces překlopili do mobilní aplikace, již jsme obohatili o různé vymoženosti a zlepšováky. Ke kontroléru se připojuje buď bezdrátově, nebo USB-C kabelem.
Robe (komunikace přes Bluetooth a NFC)
Firma ROBE vyrábí svítidla pro budovy, pódia a koncertní haly. V naší mobilní appce lze upravit nastavení svítidel a změny jednoduše zapsat přiložením ke svítidlu pomocí NFC.
Leviathan (komunikace přes Bluetooth)
Leviathan vyrábí smart airsoftové zbraně komunikující s naší mobilní aplikací přes bluetooth. Zaznamenává různé statistiky (např. počet výstřelů za minutu) a realtime parametry zbraně (teplota procesoru).
Vývoj jde rychle dopředu! Je úžasné to sledovat a podílet se na tom, že jsou mnohé záležitosti jednodušší a pohodlnější. Pokud hledáte parťáky pro vývoj mobilních aplikací, jsme sice z Brna, ale žádná vzdálenost pro nás není dost velká a žádný úkol nezrealizovatelný.
Patříte ke čtenářům, kteří těmto textům rozumí? Naše parta se pořád rozrůstá. Právě potřebujeme obsadit hned několik pozic.