Zum Hauptinhalt springen

Basic Module

Dieses Beispiel zeigt das kleinste sinnvolle ArmorLink Module.

Das Module:

  • Erstellt ein ArmorLink Module
  • Aktiviert ESP-NOW
  • Stellt eine Action bereit
  • Sendet Log-Nachrichten
  • Tritt einem ArmorLink-Netzwerk bei

Für den konzeptionellen Überblick siehe Modules.

Vollständiges Beispiel

#include <ArmorLink.h>

ArmorLinkModule module(
"Helmet",
ArmorLinkModuleType::Helmet
);

void setup()
{
Serial.begin(115200);
delay(500);

module.actions()
.add("toggleEyes")
.label("Toggle Eyes")
.command("Eyes", "toggle")
.onExecute([]{
ArmorLink.info("Eyes toggled");
});

ArmorLinkOptions options;
options.enableGateway = false;
options.enableEspNow = true;
options.enableBle = false;
options.enableSerialLogging = true;

ArmorLink.begin(module, options);

ArmorLink.info("Helmet module started");
}

void loop()
{
ArmorLink.loop();
}

Was dieses Beispiel macht

Dieser Sketch erstellt ein normales ArmorLink Module mit dem Namen Helmet.

ArmorLinkModule module(
"Helmet",
ArmorLinkModuleType::Helmet
);

Das Module stellt eine Action bereit:

module.actions()
.add("toggleEyes")
.label("Toggle Eyes")
.command("Eyes", "toggle")
.onExecute([]{
ArmorLink.info("Eyes toggled");
});

Wenn das Module einen passenden Command empfängt, führt ArmorLink den Callback der Action aus.

Weitere Informationen findest du unter Actions.

Moduloptionen

Dieses Beispiel konfiguriert das Module als normales Module.

options.enableGateway = false;

Es aktiviert ESP-NOW-Kommunikation:

options.enableEspNow = true;

Es deaktiviert BLE:

options.enableBle = false;

Normale Modules benötigen in der Regel kein BLE, da sich die ArmorLink App mit dem Gateway verbindet.

Weitere Informationen findest du unter ArmorLinkOptions.

Pairing

Bevor dieses Module mit dem Gateway kommunizieren kann, muss es gekoppelt werden.

Starte Pairing auf dem Gateway:

start

Zeige Kandidaten an:

candidates

Kopple das Module:

pair 1

Weitere Informationen findest du unter Pairing.

Action auslösen

Nach dem Pairing kann ein anderes Module oder die ArmorLink App die Action auslösen, indem folgender Command gesendet wird:

ArmorLink.sendCommand(
"Helmet",
"Eyes",
"toggle"
);

Der Command wird über das Gateway geroutet und an das Helmet Module zugestellt.

Weitere Informationen findest du unter Commands.

Configuration hinzufügen

Ein Module kann persistente Configuration-Werte bereitstellen.

int brightness = 100;

module.config()
.addInt("brightness", &brightness, 100)
.label("Brightness")
.section("LEDs")
.range(0, 255)
.step(1);

Configuration-Werte werden in der ArmorLink App angezeigt und automatisch über Neustarts hinweg gespeichert.

Weitere Informationen findest du unter Configuration.

Telemetry hinzufügen

Ein Module kann Live-Laufzeitdaten bereitstellen, wenn diese von der ArmorLink App angefordert werden.

void sendBatteryTelemetry()
{
float voltage = 4.12f;

ArmorLink.sendTelemetry(
"battery",
"voltage",
voltage,
"V"
);
}

Telemetry wird nur übertragen, wenn sie von der App angefordert wird.

Weitere Informationen findest du unter Telemetry.

Vollständiges Beispiel mit Konfiguration

#include <ArmorLink.h>

ArmorLinkModule module(
"Helmet",
ArmorLinkModuleType::Helmet
);

int brightness = 100;

void setup()
{
Serial.begin(115200);
delay(500);

module.actions()
.add("toggleEyes")
.label("Toggle Eyes")
.command("Eyes", "toggle")
.onExecute([]{
ArmorLink.info("Eyes toggled");
});

module.config()
.addInt("brightness", &brightness, 100)
.label("Brightness")
.section("LEDs")
.range(0, 255)
.step(1);

ArmorLinkOptions options;
options.enableGateway = false;
options.enableEspNow = true;
options.enableBle = false;
options.enableSerialLogging = true;

ArmorLink.begin(module, options);

ArmorLink.info("Helmet module started");
}

void loop()
{
ArmorLink.loop();
}

Nächste Schritte

Weiter mit: