Postup nasazení aplikace vysoké úrovně do Azure Sphere
V této lekci se naučíte, jak nasadit aplikaci vysoké úrovně do Azure Sphere a streamovat telemetrická data do IoT Central.
Architektura řešení
Následující text popisuje, jak se streamují telemetrická data Azure Sphere do IoT Central.
- Aplikace vysoké úrovně běžící na jádru Cortex-A7 odečte každých 6 sekund senzory prostředí, serializuje data jako JSON a pošle zprávu telemetrie do IoT Hubu.
- Azure IoT Central odebírá zprávy telemetrie odeslané do IoT Hubu zařízením a zobrazuje data uživateli.
Princip aplikace Azure Sphere
V těchto cvičeních se intenzivně používají časovače událostí, takže existuje zobecněný model, který práci s časovači zjednodušuje. Programování řízené událostmi pomáhá zjednodušit návrh aplikace.
Existují dva druhy časovačů:
- Pravidelné časovače
- Jednorázové časovače
Časovače událostí generují události vázané na funkce obslužných rutin, které implementují požadované akce.
Aplikace deklaruje pravidelný časovač události measureSensorTimer. Při inicializaci se tento časovač spustí každých 6 sekund a zavolá funkci obslužné rutiny MeasureSensorHandler.
static LP_TIMER measureSensorTimer = {
.period = { 6, 0 },
.name = "measureSensorTimer",
.handler = MeasureSensorHandler };
Funkce MeasureSensorHandler se zavolá při aktivaci časovače measureSensorTimer.
Funkce MeasureSensorHandler odečte senzor prostředí, naformátuje data do řetězce JSON, zobrazí data JSON na kartě Výstup a odešle telemetrii do Azure IoT Central.
/// <summary>
/// Read sensor and send to Azure IoT
/// </summary>
static void MeasureSensorHandler(EventLoopTimer* eventLoopTimer)
{
static int msgId = 0;
static LP_ENVIRONMENT environment;
if (ConsumeEventLoopTimerEvent(eventLoopTimer) != 0)
{
lp_terminate(ExitCode_ConsumeEventLoopTimeEvent);
}
else {
if (lp_readTelemetry(&environment) &&
snprintf(msgBuffer, JSON_MESSAGE_BYTES, msgTemplate,
environment.temperature, environment.humidity, environment.pressure, msgId++) > 0)
{
Log_Debug("%s\n", msgBuffer);
lp_azureMsgSendWithProperties(msgBuffer, telemetryMessageProperties, NELEMS(telemetryMessageProperties));
}
}
}
Seznámení s technologií IoT Plug and Play
IoT Plug and Play umožňuje autorům řešení integrovat chytrá zařízení s jejich řešeními bez jakékoli ruční konfigurace. Jádrem technologie IoT Plug and Play je model zařízení, který zařízení používá k inzerování svých schopností vůči aplikaci s podporou IoT Plug and Play. Další informace najdete v článku Co je IoT Plug and Play.
Model IoT Plug and Play pro tento výukový modul se nachází v adresáři IoTPlugAndPlay. Tento model byl nahrán do veřejného úložiště modelů IoT Plug and Play.
Model IoT Plug and Play používaný v tomto výukovém modulu je deklarován v souboru main.c.
#define IOT_PLUG_AND_PLAY_MODEL_ID "dtmi:com:example:azuresphere:labmonitor;1"
IoT Central je aplikace s podporou IoT Plug and Play. Když se zařízení poprvé připojí k IoT Central, předá se do IoT Central ID modelu IoT Plug and Play. IoT Central pak načte model IoT Plug and Play z veřejného úložiště modelů IoT Plug and Play a vytvoří šablonu zařízení a výchozí zobrazení.