Vývoj IoT prototypu pomocí dostupného hardware

Mnoho inženýrů se rozhodne jako základ použít tzv. jednodeskový počítač, který je běžně dostupný. Volba single boardu může přinést rychlé výsledky, ale také způsobit potíže při sériové výrobě. Při výběru prototypové platformy je důležité pečlivě volit procesor, který je základem celého designu. Nesmíme zapomenout na mnoho podpůrných komponent, u kterých musíme ověřit dostupnost nezávisle na MCU a jejich snadnou integraci.

Podíváme se na návrh jednoduchého teplotního čidla pro IoT a zaměříme se na jednotlivé použité komponenty. Výběr platformy je důležitý, abychom mohli posoudit námi navrhnutý koncept a také nám pomůže s jemným doladěním celého systému. Díky dostupným analýzám jsme schopni doladit spotřebu energie celého systému, která je důležitá pro bateriové zařízení. Z jakých bloků se skládá celý systém pro měření teploty v IIoT vidíme na obrázku 1.

Obrázek 1: Základní požadavek na funkci snímače teploty IIoT.

Mikrokontrolér (MCU) dotazuje snímač teploty v předem nastaveném časovém intervalu a poté pomocí bezdrátové komunikace odešle data do cloudu k dalšímu zpracování. Je třeba učinit mnoho individuálních rozhodnutí, které budou ovlivňovat nejen výběr použitých komponent, ale následně také náklady na materiál a celý systém. Například snímač teploty by mohl obsahovat snímač teploty z populární série TMP36 od společnosti Analog Devices nebo komplexnější čidlo kombinující měření teploty, vlhkosti a tlaku vzduchu jako je například BME280 od společnosti Bosch Sensortec. Můžeme zvolit odolný PTC termistor od Epcos -TDK.

Kromě finančních nákladů musíme zvážit technickou stránku – přesnost, toleranci a způsob montáže čidla. Volba snímače ovlivní požadavky na procesor. Pokud bychom použili levný termistor, pravděpodobně by nebyl lineární v požadovaném teplotním rozmezí, takže by bylo potřeba navrhnout softwareovou kompenzaci této nelinearity a tím vznikne požadavek na dostatek místa v procesoru. Na druhou stranu senzor BME280 komunikuje pomocí SPI nebo I2C. To nás omezuje na výběr procesoru, který tuto komunikaci má integrovanou v sobě nebo ji budeme muset softwarem doplnit, což nám zabere čas a prostor v paměti. Každé softwareové zpracování nám spotřebovává drahocenou energii. Nejdůležitější je také volba bezdrátové komunikace.

Mezi nejoblíbenější patří Bluetooth a Wi-Fi. Bluetooth nabízí krátký komunikační dosah a je vhodný pro přenos relativně malého množství dat. Obvykle komunikuje s bránou (koncentrátorem), kde se data shromažďují a na delší vzdálenosti se pak přenáší pomocí WI-FI. Komunikovat přes Wi-Fi může přímo snímač. Tím nebude potřeba shromažďovací brána a můžeme komunikovat na velké vzdálenosti přímo, ale za cenu vyšší spotřeby energie.

Jakmile je rozhodnuto o bezdrátové komunikaci, je zde dodatečné rozhodnutí, zda zvolit diskrétní řešení nebo používat předem certifikovaný bezdrátový modul. Pokud vaše organizace nemá svůj vlastní specializovaný tým pro radiofrekvenční inženýrství a předpokládané objemy výroby jsou velmi vysoké, pak je s největší pravděpodobností jasná volba v řešení pomocí hotového certifikovaného bezdrátového modulu.

Zbývá dořešit otázku řízení spotřeby. Můžeme senzor uzavřít do požadované krabice s knoflíkovou baterií, ale daleko lepším způsobem je použít dobíjecí baterii a pomocí solárního panelu dodávat potřebnou energii. Zaměření se na power management je neméně důležitou činností při návrhu celého systému. Procesor lze uvést do několika druhů spánku a tím ušetřit podstatnou část energie. Vše závisí na dané aplikaci, jak často je nutné měřit teplotu a s jakým zpožděním se mají data objevit v cloudu.

Nesmíme opomenout úvahy týkající se objemu výroby. Je rozdíl, zda společnost vyrábí pouze jeden typ takového snímacího zařízení nebo bude nabízet více senzorů pro měření jiných fyzikálních veličin. Je důležité vybrat MCU tak, aby splňoval požadavky pro co nejvíce použitých senzorů a mohli ho tak použít ve více zařízeních. Větší objem produkce většinou znamená snížení ceny. Vždy je tlak na minimální dobu vývoje, a tak se uplatňuje nová generace plně integrovaných a kompaktních počítačů (SBC). Dobrým příkladem kompaktního plně integrovaného SBC je Feather M0 Wi-Fi od Adafruit (obrázek 2).

Obrázek 2: SBC počítač Adafruit Feather M0 Wi-Fi.

Hmotnost pouhých 6,1 gramu a rozměry 2,1 x 0,9 x 0,3 palce. Adafruit Feather M0 Wi-Fi obsahuje procesor ATSAMD21G18 od Microchip v pouzdře QFN. Běží na 48 MHz, disponuje 256 kB Flash a 32 kB SRAM pamětí. Arm Cortex-M0 nabízí 20 přístupných pinů GPIO, 8 portů PWM, 10 x 12bitových analogových vstupů a jeden DAC. Má integrované sériové komunikační rozhraní SPI, I2C a UART. Na desce je umístěn 3.3 V regulátor napětí AP2112K-3.3 od Diodes Inc se špičkovým proudem 600 mA. Regulátor umožňuje napájení celé desky přes konektor micro USB. Logické úrovně jsou udržovány na hodnotě 3,3 VDC. V případě propojení se zařízením s 5 VDC budou požadovány tzv. přepínače hladin. Deska může být dodána s 3.7 VDC baterií LiPo a s obvodem MCP7331T-2ACI / OT od Microchip, který zajišťuje power managment. Typově schválený modul ATWINC1500 taktéž od Microchipu má integrovanou anténou s certifikací FCC a zajišťuje komunikaci Wi-Fi s frekvencí 2,4 GHz a 802,11 b / g / n. Při normálním provozu se spotřeba celé desky pohybuje okolo 10 mA a při přenosu dat se spotřeba může vyšplhat na 300 mA. Schéma zařízení Adafruit Feather M0 Wi-Fi je zobrazeno na obrázku 3.

 

Obrázek 3: Schematický diagram zařízení Adafruit Feather M0 Wi-Fi.

Krystal 32,768 kHz , čtyři LED diody a několik odporů a kondenzátorů doplňuje BOM celé desky. Vývoj softwaru na Feather je podporován USB bootloaderem integrovaným v MCU. Umožňuje použití populárního Arduino IDE. Použití tohoto přístupu umožňuje rychlý vývoj aplikace. Místo použití Feather’s Arduino USB na programování a ladění, můžeme použít programové prostředí Atmel (ASF). K tomu nám slouží piny SWDIO / SWCLK umístěné na spodní straně desky.

Klíčem k úspěšnému použití SBC spočívá v tom, že jste schopni navrhnout svůj vlastní design na základě základních komponent SBC. Procesor i bezdrátový modul je běžně dostupný a přichází s mnoha vývojovými nástroji a zdroji. Datasheet mikrokontroléru SAMD21G18, který naleznete zde poskytuje podrobné informace o jeho vlastnostech.

K dispozici je také vývojová deska ATSAMD21 XPRO spolu s rozsáhlou uživatelskou příručkou, integrovaným emulátorem, programátorem a debuggerem (Atmel-ICE) a řadou rozšiřujících desek, jako je ATIO1-XPRO, která hostí řadu různých senzorů. WINC1500 je také dobře podporován vývojovými prostředky včetně rozšiřující desky XPRO pro použití s ​​ATSAMD21 XPRO respektive ATWINC1500-XPRO.

Feather-M0 Wi-Fi poskytuje nejen ideální vývojovou platformu s níž si lze ověřit designovou koncepci, ale vzhledem k tomu, že všechny komponenty, na kterých je založen, jsou snadno dostupné, může být spolehlivě a rychle převzata do výrobní fáze. Aby bylo možné prokázat snadnost vytvoření prototypu pro aplikace IoT, uvedeme si příklad, který spojuje Feather M0 Wi-Fi se službou Microsoft IoT, Azure. Podrobné informace naleznete zde, ve kterých jsou popsány jednotlivé kroky pro připojení k Azure, potřebné knihovny pro použití s ​​instrukcemi Arduino IDE.

Microsoft Azure je dobrým příkladem odolné platformy IIoT pro podnikovou třídu, která zajišťuje konektivitu se senzory, ale také poskytuje komplexní sadu aplikací pro ukládání a analýzu shromážděných dat. K dispozici je bezplatná zkušební verze, která poskytuje snadný přístup ke všem požadovaným funkcím.

Tento příklad používá snímače teploty, vlhkosti a tlaku Bosch BME280. Můžete použít fyzický hardware nebo máte možnost si celý systém vyzkoušet se simulací daného hardware. Prvním krokem je registrace na bezplatný účet společnosti Microsoft Azure zde. Po dokončení registrace se přihlasite a přejdete na Dashboard Microsoft Azure zobrazenou na obrázku 4.

Klikněte na tlačítko + Nové v horní části stránky Dashboard a vyberte položku Internet věcí, po které následuje IoT Hub. Potom můžete pojmenovat parametry Hubu IoT (jméno a skupina). Vše je znázorněno na obrázku 5.

Posledním krokem procesu instalace je vytvoření zařízení v hubu sítě IoT. To je znázorněno na obrázku 6, kde je přidáno zařízení s ID TempSensor1. Zaškrtněte políčko pro automatické generování klíčů zařízení, které se objeví po uložení. Budete potřebovat primární klíč pro toto zařízení, jakmile spustíte Feather M0. To může být matoucí, protože každé zařízení i IT Hub mají své vlastní primární klíče. Pro zadání primárního klíče budete vyzváni při připojení zařízení do sítě. (Obrázek 8).

Obrázek 6: Přidání snímače teploty Feather jako zařízení do Hubu IoT

Nyní jste připraveni pracovat na přiloženém pracovním listu, který si můžete stáhnout zde. Za předpokladu, že již máte k dispozici svůj ID Arduino, stačí přidat podpůrné soubory pro desku Feather M0. Výukový program Adafruit vás provede procesem, který naleznete zde. Je dobrou praxí testovat desku Feather M0 Wi-Fi pomocí příkladu Blink. Ujistěte se, že jste schopni kompilovat a provádět upload, a že 13 LED diod integrovaných na desce vedle konektoru micro USB bliká správně, než se pustíte do další činnosti.

Chcete-li použít ukázkový příklad, musíte přidat seznam knihoven do prostředí Arduino IDE. Všimněte si, že pro AzureIoTHub, AzureIoTUtility a AzureIoTProtocol HTTP je nutné mít nainstalovanou verzi Azure knihovny 1.0.21, jinak příklad selže při kompilaci.

Pokud se rozhodnete nepoužívat fyzicky snímač BME280, ale použijete simulované data, budete muset ještě implementovat jeho knihovnu. Ve výchozím nastavení se totiž předpokládá použití fyzického snímače. Chcete-li simulovat data, musíte změnit konfiguraci hlavičky v config.h souboru: ‚#define SIMULATED_DATA true‚.

Obrázek 7 zobrazuje úplný seznam knihoven a v dolní části obrazovky úspěšnou kompilaci a nahrání příkladu do fyzické desky Feather M0.

Obrázek 7: Arduino IDE zobrazující seznam knihoven a úspěšné nahrávání

Jakmile je příklad nahrán, musíte se přepnout na sériový monitoring IDE. Podrobnosti o přístupu k Wi-Fi a řetězec pro připojení Azure jsou zadávány prostřednictvím sériového monitoru (obrázek 8).

Obrázek 8: Zadání informací o připojení Wi-Fi a zařízení

Krátce po zadání výše uvedených údajů byste měli na sériovém monitoru vidět, že bylo provedeno připojení k Wi-Fi. Potom by Feather měl začít odesílat data do Azure IoT Hubu, jak je ukázáno na obrázku 9. V tomto příkladu jsme použili simulované údaje.

Jakmile zprávy začaly být přijímány pomocí Azure IoT Hubu, můžete zkontrolovat, zda se skutečně přijali. Obrázek 10 znázorňuje souhrn zařízení IoT s uvedením počtu přijatých zpráv.

Jakmile data senzoru začnou být přijímána platformou Azure, můžete si vyzkoušet funkce pro ukládání a analýzu dat. Další informace o nich naleznete na webových stránkách společnosti Microsoft Azure. Jak již bylo uvedeno v tomto článku, pro bateriové zařízení je důležitá optimalizace spotřeby elektrické energie. Wi-Fi je obzvláště náročný protokol na energii, ale má mnoho výhod oproti jiným technologiím. Z tohoto důvodu je nutné se zaměřit na optimalizaci spotřeby, aby bylo dosaženo nízké spotřeby energie bez vlivu na výkon snímače. Jak procesor, tak Wi-Fi modul lze uvést do režimu spánku, a tak výrazně prodloužit životnost baterie. Podrobné informace o různých režimech spánku MCU a o způsobu ovládání napájení zařízení naleznete v datasheetu SAM-D21. Aplikační poznámka, která zkoumá úsporu spotřeby energie z periferních rozhraní naleznete zde.

ATWINC1500 má také podobné možnosti úspory energie. Vše naleznete v této aplikační poznámce. Ve svém tutoriálu Feather M0 Wi-Fi, Adafruit zobrazuje použití monitoru napájení pro znázornění chování spotřeby Wi-Fi modulu (obrázek 11).

Oranžová čára na obrázku 11 představuje celkovou spotřebu energie desky Feather M0 Wi-Fi. Fialová čára označuje napájecí napětí baterie LiPo. Všimněte si špičky způsobené rádiovým přenosem. První z nich je tzv. link setup s IoT hubem. Mimo radiovou komunikaci je klidový proud zhruba 22 mA, což je zhruba 10 mA pro MCU a 12 mA pro modul Wi-Fi. Detailní pochopení dané aplikace nám umožní nastavit režimy spánku tak, abychom nenarušili plynulý chod komunikace a zároveň zařízení bylo v co nejdelší době v režimu spánku.

Pokud se například požaduje pouze měření teploty jednou za minutu, zařízení může být udržováno v režimu spánku po dobu nejméně 55 sekund. Na měření teploty a komunikaci s cloudem bohatě stačí doba 5 sekund. Čili zařízení bude v nejhlubším režimu spánku 91% času. Energii lze uspořit využitím valstností dané aplikace. Můžeme měřit několik hodnot dopředu a pak je jako balík poslat přes Wi-Fi najednou. Nebo se odesílat teplotu pouze tehdy, když se teplota liší od předchozího měření o určitou hodnotu.

Závěr
Snadno dostupné SBC je ideálním řešením, na níž si lze prokázat koncept aplikace a vytvořit si snadno a rychle prototyp celého systému. Pečlivý vyběr SBC, který využívá dostupné procesory a bezdrátové komponenty zajistí rychlý přechod od prototypu ke konečnému designu pro výrobu. Urychlíme vývoj dané aplikace a získáme velkou podporu komunity a mnoho volně dostupných zdrojových kódů, příkladů a návodů, které výrobci těchto desek poskytují.

Zdroj