Jeffrey Cross
Jeffrey Cross

Bluetooth LE doc-a-thon v táboře ITP

Bluetooth LE doc-a-thon v táboře ITP

V současné době jsem v New Yorku pro letošní ITP Camp, čtyřtýdenní nekonferenční a technologické hřiště pro zaneprázdněné lidi. Koná se každý červen v ITP a sdružuje rozmanitou skupinu tvůrců, umělců, hudebníků a kreativ všeho druhu - aby si vytvořili věci, slyšeli reproduktory na špičce v oblasti technologií a umění a spolupracovali s lidmi, se kterými by se normálně nestýkali. .

Je to také místo, kde se věci dělají, že se vám nepodařilo najít čas a pravděpodobně by jinak, a to je důvod, proč jsem se minulý týden posadil - spolu s Tomem Igoem, Don Colemanem, Sandeepem, Guan Yangem, JB Kim a další - pro dvoudenní Bluetooth LE doc-a-thon.

Všichni jsme pracovali se zařízeními Bluetooth LE - spolu s Donem a Sandeepem píšu knihu pro značku Make: na Bluetooth LE, mobilních telefonech a senzorech, zatímco Guan a JB mají startovací zařízení Bluetooth LE - ale všichni jsme souhlasili že začít používat Bluetooth LE bylo mnohem těžší, než by mělo být, a že hodně skvělých lidí, co dělali, se dostalo na zem (nebo ještě horší), protože lidé nevěděli, že existují. Rozhodli jsme se sednout a něco udělat.

Takže v rámci našeho doc-a-thon jsme shromáždili dokumentaci, videa a příklady kódu, které jsme doufali, že to udělá.

Jak se liší Bluetooth LE?

Bluetooth LE je velmi odlišný od klasického Bluetooth, ve skutečnosti skoro jediné, co je stejné, je jméno.

Tom Igoe a Don Coleman poskytují přehled Bluetooth Low Energy.

Pravděpodobně jste zvyklí přemýšlet o rádiích jako o sériovém připojení, které funguje podobně jako telefonní hovor mezi dvěma telefony - jakmile naváže spojení, každá osoba mluví jako ostatní poslouchá a naopak. Zůstanou ve spojení, i když nic neříká, dokud se nezastaví a hovor není ukončen.

V takovýchto systémech jsou data přenášena pomocí fronty, a když jsou data čtena přijímačem, jsou vymazána z fronty, stejně jako když se moje slova dostanou do uší po telefonu, jsou mimo komunikační kanál. Efektivně to je, jak funguje „klasické“ Bluetooth.

Bluetooth LE je velmi odlišný. Namísto komunikace přes spojení point-to-point, jako je telefon, funguje rádio Bluetooth LE jako obecní nástěnka, přičemž každé rádio funguje buď jako deska nebo jako čtečka desky.

Pokud je vaše rádio vývěska, která se nazývá periferní zařízení v jazyce Bluetooth LE, odesílá data na palubu, aby si je mohli přečíst všichni uživatelé v komunitě. Pokud je vaše rádio čtenář - nazývané centrální zařízení v termínech Bluetooth LE - může číst z libovolných desek (periferních zařízení), které mají informace, o které se stará.

Pokud se vám tato analogie nelíbí, můžete si také představit periferní zařízení jako servery v transakci klient-server. Podobně centrální zařízení jsou klienty světa Bluetooth LE, protože čtou informace z periferních zařízení.

Ale líbí se mi sériové připojení?

Většina (možná všech?) Rádiových desek Bluetooth LE, které jsou k dispozici výrobcům právě teď - například RedBearLab BLE mini a Adafruit Bluefruit LE - předstírají, že vypadají jako sériová zařízení pro jednoduchost a představují službu UART uživateli. Tyto radiopřijímače jsou ve skutečnosti „sériovou“ komunikací ve starém stylu nad základním vzorem nástěnky. Je to hack a vlastně není to dobrý hack.

Ačkoliv zjednodušuje věci ze strany Arduina, používáním rádia tímto způsobem rušíte „nízkou spotřebu energie“ Bluetooth LE. Rádia budou neustále zapnuta a pokud je váš projekt založen na baterii, je to velký problém.

Tom Igoe a Don Coleman mluví o službách a Bluetooth LE.

Představte si příklad, kdy chcete ovládat LED připojenou k desce Arduino z našeho telefonu přes Bluetooth LE. Pokud použijeme sériové spojení, které bude spojité, bude se používat pouze periodicky - když pošleme na palubu Arduino 1 nebo 0, zapneme nebo vypneme LED.

Jako alternativu můžete výrazně snížit spotřebu energie vašeho projektu pomocí technologie Bluetooth LE, jako by se měla používat a implementovat vlastní službu pro rádio připojené k zařízení Arduino, aby bylo možné inzerovat jeho schopnost zapnout nebo vypnout LED.

Vrátíme-li se k našemu příkladu na nástěnce, vytvoříme desku (službu), ke které je připojena post-it poznámka (známá jako charakteristika v jazyce Bluetooth LE), kterou můžeme oba přečíst a informovat nás, zda je dioda LED zapnutá nebo vypnutá nebo zapisovat do - umožňující ovládání LED.

Vytvoření vlastní služby

Bohužel, až do nedávné doby stavba vlastních služeb pro Bluetooth LE byla ve skutečnosti poměrně komplikovaná a ne pro slabé srdce. Je to však jednodušší, protože nyní je k dispozici několik dobrých nástrojů pro většinu těžkého zvedání.

S ohledem na to jsme se rozhodli podívat se na jednu platformu - rádio nordic Semiconductor nRF8001 - a zjistit kompletní nástroj, který by vám umožnil vybudovat vlastní službu pro rádio a využít tuto službu z projektu Arduino. Toto rádio jsme vybrali, protože je snadno dostupné a je zde dobrá podpora knihovny.

První věc, kterou musíte udělat, když pracujete s nRF8001, je instalace nRFGo Studia Nordic, a zatímco nRFGo je aplikace MS Window, běží na Macu pod OS X pomocí Wine. Tato aplikace je nástroj, který potřebujete k vytvoření konfiguračního souboru pro služby Bluetooth LE, které bude rádio propagovat, a jako produkt také vytvoří soubor záhlaví services.h, který budete potřebovat jako součást projektu Arduino.

„Inteligentní spínač světla“

Zapojení našeho příkladu inteligentního světelného spínače.

Chtěli jsme vybudovat něco s více službami, takže jsme se rozhodli postavit „chytrý“ světelný spínač, kde byste nemohli pouze zapnout nebo vypnout světlo přes Bluetooth LE, ale získat aktuální stav světelného spínače (který by mohl také nezávisle ovládat světlo) a upozornit, když byl přepínač přepnut.

Ovládání světla přes Bluetooth LE.

Pěkná věc na tomto příkladu je, jak jednoduché je, kromě desky Arduino a rádia nRF8001 - rozhodli jsme se použít desku Adafruit Bluefruit LE - opravdu potřebujete jen několik vodičů, odporů a dalších běžně dostupných součástí.

Vytvoření konfiguračního souboru services.h pomocí nRFGo Studio je pravděpodobně nejtěžší část celého toolchainu a strávili jsme spoustu času tím, že jsme zjistili nejjednodušší způsob, jak umožnit zahrnutí vygenerovaného souboru services.h do projektu Arduino namísto zahrnout ji do knihovny nRF8001 Arduino.

I když to znamenalo požadavek na vyžádání pro správce knihovny a několik ručních úprav souboru services.h, nakonec to funguje, což znamená, že po vytvoření konfigurace služeb pracujete v rámci IDE Arduino. .

Další podrobnosti a všechny zdrojové kódy pro příklady projektů jsou k dispozici na Githubu jako součást dokumentace a příkladů kódů, které jsme vytvořili během doc-a-thon.

Závěr

Nyní existuje obrovské množství off-the-shelf zařízení Bluetooth LE od wearables na zámky, od drones na lightbulbs - a samozřejmě tam je vždy všudypřítomný iBeacon - ale je zde také rostoucí počet vývojářských desek, které znamenají využití tyto off-the-shelf zařízení z vašeho projektu Arduino (nebo stát se jedním) je také stále jednodušší. Doufejme, že náš doc-a-thon se ukáže být nápomocný při urychlení tohoto procesu, a protože je to všechno na Githubových příspěvcích, jsou samozřejmě velmi vítáni.

Podíl

Zanechat Komentář