Amazon Sidewalk ist eine von Amazon entwickelte Technologie für drahtlose Netzwerke mit geringer Bandbreite und großer Reichweite. Mit ihr soll die Konnektivität von smarten Bauteilen über die Grenzen eines einzelnen Hauses oder Grundstücks hinaus erweitert werden, indem ein gemeinsames Netzwerk geschaffen wird, das größere Flächen wie Nachbarschaften und Gemeinden abdecken kann. Amazon Sidewalk schafft ein Netzwerk aus verschiedenen Geräten, das dazu beitragen kann, das Betriebsverhalten und die Konnektivität von IoT-Geräten zu verbessern, insbesondere für Geräte außerhalb des Hauses, wie beispielsweise Überwachungssysteme, Außenbeleuchtung und Sprinkleranlagen. Dadurch können diese Geräte mit dem Internet verbunden werden, auch wenn sie sich außerhalb der Reichweite herkömmlicher Wi-Fi®- und anderer Heimnetzwerke befinden. Produktentwickler können somit ihre Ressourcen auf die Entwicklung ihrer Produkte konzentrieren und brauchen sich nicht um Aufbau, Sicherung und Wartung eines zuverlässigen Netzwerks zu kümmern.
Amazon Sidewalk nutzt dazu einen kleinen Teil der Wi-Fi-Bandbreite Ihres Heimnetzes, um eine Verbindung zu Amazon Sidewalk-fähigen Geräten herzustellen, und zwar auch zu Geräten außerhalb Ihres Hauses oder zu denen Ihrer Nachbarn (wenn diese ebenfalls Teil des Amazon Sidewalk-Netzwerks sind). Die sprachgesteuerten smarten Geräte wie Amazon Echo oder Ring-Kameras fungieren als „Brücken“ und stellen einen kleinen Teil der Internet-Bandbreite Ihres Heimnetzes für das Amazon-Sidewalk-Netzwerk zur Verfügung (Abbildung 1). Diese Brücken stellen dann die Verbindung zu Amazon Sidewalk-fähigen Geräten her, die wiederum Bluetooth® Low Energy (speziell das 900-MHz-Spektrum) und andere Frequenzen für die Kommunikation über große Entfernungen nutzen und damit eine größere Reichweite als Standard-WLAN-Netz ermöglichen. Dadurch kann der Einsatzbereich von smarten Geräten wie Beleuchtungen, Haustier-Trackern oder intelligenten Bewässerungssystemen auf mehr als achthundert Meter erweitert werden.
Dies kann besonders in Situationen hilfreich sein, in denen WLAN- oder Mobilfunkverbindungen eingeschränkt sind, oder bei Geräten im Außenbereich, die weit von einem Netzzugangspunkt entfernt sind, oder wenn ein Heimnetzwerk ausfällt, aber wichtige Nachrichten an den Hausbesitzer weitergeleitet werden müssen.
Dieses letzte Szenario werden wir im vorliegenden Projekt untersuchen. Wir werden ein System zur Wassererkennung erstellen, das in der Lage ist, das Vorhandensein von Wasser zu erkennen und diese Informationen über Amazon Sidewalk an den Hausbesitzer weiterzuleiten. Wenn der Wasserschaden einen Unterbrecher auslöst, der mit dem WLAN-Router des Heimnetzes verbunden ist, können die Notfallbenachrichtigungen über ein mit dem Nachbarn verbundenes Gerät, z. B. ein Echo-Gerät oder eine Ring-Türklingel, gesendet werden, wobei dann Sidewalk anstelle des Heim-WLANs verwendet wird.
Um ein System zur Wassererkennung mithilfe von Amazon Sidewalk zu bauen, werden wir die folgende Bauteile und Tools verwenden:
Neben der Stückliste sind die folgenden Werkzeuge entweder erforderlich oder es ist empfehlenswert, sie zur Hand zu haben:
Laut Silicon Labs und Amazon ist für das Sidewalk-Protokoll ein Gateway erforderlich, das den Endgeräten den Zugriff auf die Amazon Web Services (AWS) Cloud ermöglicht. Mehrere Amazon-Produkte können als Gateway fungieren (Abbildung 2). Diese Produkte verfügen über unterschiedliche Funktionen und bieten unterschiedliche Unterstützung für die Merkmale des Amazon Sidewalk Netzwerks. In diesem Projekt wird der Amazon Echo Smart-Lautsprecher der vierten Generation als Amazon Sidewalk-Gateway verwendet, da Silicon Labs das Amazon Sidewalk Software Development Kit für seine Produkte validiert.
Wir empfehlen die Verwendung eines eigenen Gateways, da dies während der Entwicklungsphase die größte Kontrolle über die Bereitstellung eines konsistenten Netzwerkzugangs bietet. Vielleicht haben Sie jedoch bereits Zugang zum Amazon Sidewalk-Netzwerk an Ihrem Standort. Um den Zugang zu bestätigen, überprüfen Sie die Sidewalk Coverage Map von Amazon.
Die Konfiguration Ihres Gateways mit Sidewalk-Unterstützung hängt außerdem von einigen zusätzlichen Anforderungen ab:
Für dieses Projekt zur Wassererkennung werden das Silicon Labs Pro Kit für Amazon Sidewalk (Abbildung 3) und ein Flüssigkeitsleckagesensor BAF147B002-00A0 von Amphenol Advanced Sensors verwendet.
Das umfangreiche Development Kit Silicon Labs Pro Kit for Amazon Sidewalk enthält alle Hardware- und Software-Tools, die für die Evaluierung und Entwicklung von hochskalierbaren Amazon Sidewalk-Geräten erforderlich sind.
Das Kit enthält die folgenden Bauteile:
In diesem Projekt werden wir das Wireless Pro Kit Mainboard und das KG100S Radio-Board verwenden. Achten Sie darauf, dass das KG100S Radio-Board sorgfältig in die Hauptplatine eingesteckt wird, wobei die Pins mit feinem Rastermaß zwischen den beiden Schaltungen genau ausgerichtet werden müssen. Stellen Sie außerdem sicher, dass der Stromschalter der Hauptplatine auf die Position AEM gestellt ist. So können wir das Gerät über USB betreiben, während wir die Firmware programmieren. Die Hauptplatine kann auch mit einer CR2032-Knopfzelle betrieben werden, wodurch sich das Gerät bequem in realen Applikationen einsetzen lässt.
Für dieses Projekt verwenden wir den Flüssigkeitsleckagesensor BAF147B002-00A0 von Amphenol Advanced Sensors (Abbildung 4). Der Sensor verfügt über einen festen 510-kΩ-Widerstand, der die beiden Elektroden miteinander verbindet. Wasser wirkt als variabler Widerstand zwischen den Elektroden, wodurch sich der Innenwiderstand des Sensors ändert.
Ein zweiter fester externer 10-kΩ-Widerstand muss als Pull-up-Widerstand hinzugefügt werden. Ein Anschluss des Widerstands wird mit einem Anschluss des Wassersensors verbunden, der andere Anschluss mit der 3,3-V-Stromversorgung der Hauptplatine (Abbildung 5).
HINWEIS: Der 10-kΩ-Widerstand ist ein empfohlener Anfangswert. Wenn Sie keine zuverlässigen Sensormesswerte erhalten, versuchen Sie es mit immer größeren Widerstandswerten. Wenn Sie ein anderes Development Board mit einer 5-V-Quellenspannung verwenden, sollten Sie außerdem mit einem 100-kΩ-Festwiderstand beginnen.
Dieses Projekt zur Wassererkennung verwendet Simplicity Studio 5 zur Entwicklung und zum Upload der Firmware auf das Development Board. Silicon Labs Simplicity Studio 5 (SSv5) ist eine kostenlose integrierte Entwicklungsumgebung (IDE) für die Entwicklung von Embedded-Applikationen auf Bauteilen von Silicon Labs. SSv5 ist eine Eclipse-basierte IDE, die für Windows, macOS und Ubuntu Linux verfügbar ist und ein umfassendes Toolset für Softwareentwicklung, Debugging, Konfiguration und Analyse bietet. Sie ist darauf ausgelegt, den Entwicklungsprozess für Entwickler mit unterschiedlichen Vorkenntnissen zu vereinfachen. Sie bietet eine intuitive Benutzerschnittstelle und eine große Auswahl an Funktionen, darunter:
Neben Simplicity Studio empfehlen wir Ihnen, J-Link RTT Viewer herunterzuladen und zu installieren, um Applikationen anzuzeigen. Die Software ist hier abrufbar. Um die Applikation zu konfigurieren, gehen Sie folgendermaßen vor:
Da Sidewalk ein Amazon-Dienst ist, werden wir AWS (Abbildung 6) für das Backend verwenden, um Nachrichten vom Embedded-Gerät an die Cloud zu übermitteln. Nach Angaben von Silicon Labs müssen Sie wissen, ob Sie ein Root-Nutzer oder ein IAM-Nutzer (Identity and Access Management) sind. Wenn Sie ein neuer Entwickler sind, empfehlen wir Ihnen, ein Root-Benutzerkonto einzurichten. Wenn Sie ein erfahrener Entwickler sind, dann ist ein IAM-Nutzerkonto die bessere Wahl. Während des Einrichtungsvorgangs werden Sie aufgefordert, Ihre Zahlungs- und Rechnungsdaten anzugeben.
Sie benötigen ein Amazon Sidewalk-fähiges Bridge-Gerät, um eine Verbindung zu AWS über Amazon Sidewalk herzustellen. Für dieses Projekt werden wir den Amazon Echo der vierten Generation verwenden. Zum Zeitpunkt der Erstellung dieses Beitrags ermöglicht Amazon die Sidewalk-Funktion nur auf Bridge-Geräten in den Vereinigten Staaten. Um Ihr Gerät in AWS einzubinden, gehen Sie wie folgt vor:
Amazon Sidewalk ist ein drahtloses Netzwerk mit geringer Bandbreite und großer Reichweite, das nicht lizenzierte Frequenzen im 900-MHz-Band nutzt. Amazon betreibt das Netz für Endkunden kostenlos. Es ist als gesichertes, gemeinsam genutztes Netzwerk konzipiert, d. h. mehrere Geräte können dieselben Netzwerkressourcen gemeinsam nutzen. Möglich wird dies durch eine Technik mit der Bezeichnung Channelization, bei der die verfügbare Bandbreite in mehrere Kanäle aufgeteilt wird. Jedes Gerät kann einem bestimmten Kanal zugewiesen werden, um Störungen zwischen den Geräten zu vermeiden.
Alle über das Netz übertragenen Daten werden verschlüsselt, und die Geräte werden mit einem sicheren Handshake-Protokoll authentifiziert. Dadurch wird das Netzwerk vor unberechtigtem Zugriff und Datendiebstahl geschützt. Die Technologie ist außerdem skalierbar und für viele Bauteile geeignet und kann leicht auf neue Bereiche erweitert werden. Daher eignet sie sich gut für Applikationen, die eine geringe Leistung, eine niedrige Datenrate und eine große Reichweite erfordern. Sidewalk unterstützt Datengeschwindigkeiten von bis zu 100 KBit/s und Reichweiten von bis zu 1,6 Kilometern. Im Folgenden sind weitere technische Details zu Amazon Sidewalk aufgeführt:
Sehen wir uns zunächst die wichtigsten Dateien des Projekts in Simplicity Studio von Silicon Labs an (Abbildung 7):
initADC aktiviert die Takte und stellt die ADC-Hardware auf die entsprechenden Einstellungen ein. Wenn nicht anders angegeben, sind die typischen Bedingungen ADCCLK=10MHz, OSR=2.
void initADC(void) {
// Aktivieren des ADC Taktgebers
CMU_ClockEnable(cmuClock_ADC0, true);
// ADC-Konfiguration auf Standardeinstellungen einstellen.
ADC_Init_TypeDef init = ADC_INIT_DEFAULT;
ADC_InitSingle_TypeDef initSingle = ADC_INITSINGLE_DEFAULT;
// Ändern der Standard-ADC-Einstellungen
init.timebase = ADC_TimebaseCalc(0);
init.prescale = ADC_PrescaleCalc(ADC_FREQ, 0);
ADC_Init(ADC0, &init);
// Eingang auf Temperatursensor einstellen. Diesen Wert für Ihren spezifischen Sensor ändern
initSingle.acqTime = adcAcqTime16; // Erfassungszeit
initSingle.posSel = adcPosSelAPORT2XCH9; // Wechsel zu Ihrem ADC-Kanal
ADC_InitSingle(ADC0, &initSingle);
}
readADC liest die am ADC-Pin anliegende Spannung.
uint32_t readADC(void) {
ADC_Start(ADC0, adcStartSingle);
while (ADC0->STATUS & ADC_STATUS_SINGLEACT) {}
return ADC_DataSingleGet(ADC0);
Um eine Nachricht von einem Silicon Labs Pro Kit an AWS IoT Core mit Simplicity Studio zu senden, müssen Sie das Gerät einrichten, eine sichere MQTT-Verbindung herstellen und eine Nachricht an ein AWS IoT Core-Thema veröffentlichen. Falls Sie es noch nicht getan haben, erstellen Sie zunächst ein AWS-Konto.
Registrieren Sie Ihr Pro Kit in AWS IoT Core und erstellen Sie ein Thing. Erzeugen und laden Sie ein Zertifikat, einen privaten Schlüssel und ein Root-CA-Zertifikat für Ihr Gerät herunter.
Öffnen Sie anschließend Simplicity Studio und erstellen Sie ein neues Projekt für Ihr Pro Kit.
Stellen Sie sicher, dass die erforderlichen SDKs und Bibliotheken für Netzwerke und MQTT in Ihrem Projekt enthalten sind. Wir werden eine sichere MQTT-Verbindung verwenden, um Nachrichten an den AWS IoT Core-Endpunkt zu veröffentlichen (Port 8883 für sicheres MQTT). Der Code wird zwei Funktionen ausführen: Zunächst wird eine MQTT-Verbindung zwischen dem Gerät am Endpunkt über das Gateway und dem AWS IoT Core hergestellt. Veröffentlichen Sie dann eine benutzerdefinierte Nachricht zu einem bestimmten Thema in AWS IoT Core.
#include "mqtt_client.h"
void initNetwork();
// MQTT initialisieren und mit AWS IoT verbinden
void connectToAwsIot() {
MQTTClient client;
Network network;
unsigned char sendbuf[512], readbuf[512];
NetworkInit(&network);
MQTTClientInit(&client, &network, 3000, sendbuf, sizeof(sendbuf), readbuf, sizeof(readbuf));
MQTTPacket_connectData connectData = MQTTPacket_connectData_initializer;
connectData.MQTTVersion = 4; // MQTT v3.1.1
connectData.clientID.cstring = "your_device_id"; // Geben Sie Ihre Geräte-ID ein
connectData.username.cstring = "your_username_here";
connectData.password.cstring = "your_password_here";
// Verwenden Sie Ihren AWS IoT-Endpunkt
char* address = "your_aws_iot_endpoint";
int rc = NetworkConnect(&network, address, 8883);
// Fehlerprüfung für rc (Rückgabecode)
rc = MQTTConnect(&client, &connectData);
// Fehlerprüfung für rc
// Veröffentlichen einer Nachricht zu einem Thema
void publishMessage(MQTTClient* client, char* topic, char* payload) {
MQTTMessage message;
message.qos = QOS1;
message.retained = 0;
message.payload = payload;
message.payloadlen = strlen(payload);
int rc = MQTTPublish(client, topic, &message);
main Mit der Hauptfunktion rufen Sie all diese Unterstützungsfunktionen in einer Hauptschleife auf, die ununterbrochen läuft. Die Hauptfunktion wird etwa so aussehen:
int main(void) {
char* topic = "/sidewalk/water/data";
initNetwork();
connectToAwsIot();
CHIP_Init();
// ADC initialisieren
initADC();
while (1) {
uint32_t adcValue = readADC();
char* payload = adcValue;
publishMessage(&client, topic, payload);
// Kleine Verzögerung
for (volatile int i = 0; i < 100000; i++) {}
return 0;
Da wir nun wissen, wie die Firmware aufgebaut ist und funktioniert, werden wir die Firmware vom Entwicklungscomputer auf das Zielgerät übertragen. Das folgende Verfahren sollte in den meisten Fällen funktionieren:
Wenn Sie Probleme beim Importieren der Projektdateien haben, ziehen Sie diesen Silicon Labs Amazon Sidewalk Troubleshooting Guide für den Import von Projekten in Simplicity Studio zu Rate. Öffnen Sie einen Browser und prüfen Sie, ob Sie MQTT-Nachrichten auf der AWS IoT Core MQTT-Konsole empfangen (Abbildung 8). Der Endpunkt sendet Daten über das Gateway an die AWS-Cloud-Plattform. Führen Sie die folgenden Schritte aus, um eine AWS-Regel zur Umleitung der Daten an ein MQTT-Thema einzurichten.
Wenn Sie feststellen, dass Sie Probleme mit Ihrem Projekt haben, finden Sie hier einige Tipps zur Fehlerbehebung, die wir während der Entwicklung entdeckt haben:
Amazon Sidewalk ist eine Netzwerk-Technologie für die Haus- und Gebäudeautomation, die dem dringenden Bedarf an größerer Reichweite und zuverlässiger Konnektivität von smarten Bauteilen gerecht werden soll. Durch die innovative Nutzung von Netzwerken mit geringer Bandbreite und geringem Stromverbrauch über Geräte, die viele Verbraucher wahrscheinlich bereits besitzen (z. B. Amazon Echo und Ring), ermöglicht Sidewalk die nahtlose Verbindung von Geräten wie Kameras, intelligenten Schlössern und Wassermeldern über die Grenzen des eigenen Heimbereiches hinaus. Mit der Förderung eines gemeinschaftlichen Netzwerks, das den Funktionsumfang von Geräten und die Verbindungsfähigkeit in der Nachbarschaft verbessert, könnte Sidewalk das Konzept des Smart Home und der smarten Nachbarschaft revolutionieren.
Natürlich reicht das Vorhandensein eines Netzwerks allein nicht aus, wenn die Endgeräte diese umfangreiche Verbindungsfähigkeit nicht nutzen. Mit dem Silicon Labs Pro Kit für Amazon Sidewalk und dem dazugehörigen SDK für die Simplicity Studio IDE hat Silicon Labs Entwicklern den Einstieg in Amazon Sidewalk leicht und unkompliziert gemacht (Abbildung 9). Silicon Labs ist ein führender Anbieter von Lösungen für die Entwicklung von Geräten für Amazon Sidewalk und IoT-Geräte und verfügt über ein umfassendes Angebot an Lösungen für die drahtlose Entwicklung von Amazon Sidewalk. Damit kann Silicon Labs Ihren Entwicklungsprozess vereinfachen, die Kosten senken und die Markteinführung beschleunigen.
Silicon Labs und Amazon unterstützen Sie auch beim Übergang vom Prototyping zur Massenfertigung. Auftragsfertiger können Sidewalk-fähige Produkte in Massenfertigung herstellen und dann die Steuerungsprotokolldaten an AWS IoT Core übermitteln, damit Amazon Sidewalk diese Geräte in großen Mengen bereitstellen und sie in AWS IoT einbinden kann. Sie bieten sogar einen Online-Preiskalkulator an, um die Kosten für die AWS-Services für Ihr Sidewalk-fähiges Produkt zu ermitteln. Bei der Umstellung auf eine benutzerdefinierte Board-to-Board-Lösung mit dem KG100S empfiehlt Silicon Labs jedoch, die SPI-Peripherie nicht zu verwenden, da sie bereits im Design des Multi-Chip-Moduls für die Kommunikation zwischen dem EFR32 und dem Transceiver von Semtech genutzt wird. Die gemeinsame Nutzung des SPI BUS mit zusätzlichen Geräten kann sich negativ auf zeitkritische Signale der Funksteuerung auswirken und zu Signalausfällen in Sub-GHz-Protokollen führen.