Wie man IoT-Daten schnell und direkt in die Cloud sendet und drahtlos auf diese zugreift

Von Bill Giovino

Zur Verfügung gestellt von Nordamerikanische Fachredakteure von Digi-Key

Viele Entwickler arbeiten an Projekten für das Internet der Dinge (Internet of Things, IoT), die eine Verbindung mit der Cloud benötigen, um Daten zu speichern, um remote darauf zugreifen zu können und neuerdings auch, um Datenanalysedienste in Anspruch zu nehmen. Entwickler haben jedoch Schwierigkeiten, die effizientesten und sichersten Mittel zu finden, um diese Verbindung herzustellen.

In diesem Artikel wird die Verwendung des Google-Cloud-Evaluierungsboards von Microchip Technology als IoT-Sensor-Endpunkt zur Verbindung mit der Cloud-IoT-Plattform von Google beschrieben. Auf dem Board können dann Daten gespeichert werden, die von überall über eine einfache Browser-basierte Oberfläche gelesen werden können.

Einstieg in Cloud-Speicher

Für einen eingebetteten IoT-Endpunkt sind zum Einstieg in das Cloud-Hosting ein Cloud-Server mit der erforderlichen sicheren Verbindungsmöglichkeit und Software erforderlich. Die Google-Cloud-Plattform (GCP) stellt dies bereit. Die eingebetteten IoT-Endpunkte müssen darüber hinaus über Firmware verfügen, die eine Fernsteuerung des Endpunkts erlaubt. Microchip Technology vereinfacht den Entwicklungsprozess durch Bereitstellung der gesamten erforderlichen Software mit dem AVR-IoT-Cloud-Evaluierungsboard AC164160.

Bild: AVR-IoT-Cloud-Evaluierungsboard von Microchip

Abbildung 1: Bei dem AVR-IoT-Cloud-Evaluierungsboard von Microchip handelt es sich um einen kompletten IoT-Endpunkt, der zur schnellen Verbindung eines Projekts mit einem Google-Cloud-IoT-Server verwendet werden kann. (Bildquelle: Microchip Technology)

Das AVR-IoT-Board eignet sich zwar als IoT-Endpunkt, aber ein näherer Blick auf ihre Arbeitsweise veranschaulicht auch, wie IoT-Endpunkte und Cloud Computing funktionieren.

Betrieb des AVR-IoT-Boards

Das Board ist für die Verbindung mit dem Google-Cloud-Server über Wi-Fi konfiguriert. Sobald eine Serververbindung hergestellt wurde, können Daten in Echtzeit gespeichert und angezeigt werden.

Die Komponenten wurden so gewählt, dass das Board für geringen Energieverbrauch optimiert ist. Damit ist es als batteriebetriebener IoT-Endpunkt ideal. Der Mikrocontroller ist ein 8-Bit-AVR®-Prozessor ATMEGA4808-MFR von Microchip, der mit 20 MHz läuft und 8,5 mA zieht. Im Standby-Modus, in dem nur die Echtzeituhr (RTC) läuft, zieht er 690 nA.

Der Mikrocontroller steuert das Board und ist an alle Sensoren und LEDs angeschlossen. Der Core wird von 48 kB Flash, 6 kB SRAM und 256 Byte EEPROM unterstützt. Im EEPROM werden die Wi-Fi-Verbindungsdaten gespeichert. Ein Hardware-Multiplizierer mit zwei Taktzyklen spart Strom, indem er die Taktzyklen der CPU reduziert.

Der ATMEGA4808 verfügt über einen kompletten Satz von Peripheriebausteinen, darunter über vier 16-Bit-Timer, drei USARTs, eine SPI-Schnittstelle und einen analogen Komparator, sodass er sich gut für den Einsatz als IoT-Sensor-Endpunkt mit niedrigem Energieverbrauch eignet.

Der ATMEGA4808 stellt Wi-Fi-Verbindungen her, indem er über den seriellen SPI-Anschluss eine Verbindung mit einem 2,4 GHz 802.11b/g/n-IoT-WiFi-Modul ATWINC1510-MR210UB1961 von Microchip Technology herstellt (Abbildung 2). Dieses ist völlig eigenständig und unterstützt als Sicherheitsfunktionen WEP, WPA und WPA2. Es hat eine integrierte Antenne und ermöglicht damit Entwicklern ohne Expertenwissen über HF-Antennen einen schnellen Einstieg. Es kann auch eine externe Antenne verwendet werden, wenn eine größere Reichweite benötigt wird. Über TLS werden verschlüsselte Verbindungen unterstützt.

Bild: Wi-Fi-Modul WINC1510 von Microchip Technology

Abbildung 2: Das Wi-Fi-Modul WINC1510 hat einen Footprint von 21,7 mm x 14,7 mm und unterstützt drahtlose Zugangspunkte mit 2,4 GHz 802.11 b/g/n. Die Verbindung mit einem Host-Mikrocontroller wird über einen seriellen SPI-Anschluss hergestellt. (Bildquelle: Microchip Technology)

Der WINC1510 arbeitet mit einer Versorgungsspannung von 2,7 V bis 3,6 V und zieht im Betrieb 290 mA. Im „Schlummermodus“ wird das Gerät heruntergefahren, wobei sämtliche Einstellungen erhalten bleiben. In diesem Modus zieht das Modul 380 µA. Dies eignet sich für Anwendungen mit sehr geringer Leistungsaufnahme, die den Funk ein- und ausschalten, z. B. zum Überwachen von Beacons. Der WINC1510 ist in der Lage, innerhalb von 150 ms eine Verbindung mit einem Wi-Fi-Zugang herzustellen. Für eine vollständige Verbindung mit einem Host-Mikrocontroller sind acht Pins erforderlich: eine Vierdraht-SPI-Slave-Verbindung und vier GPIO-Pins für die Steuersignale. Das Modul verfügt über alle in Amerika, Europa und Asien erforderlichen Zertifizierungen. Dies vereinfacht das Erlangen der FCC-Zulassung für das Endprodukt erheblich.

Das AVR-IoT-Board hat einen Footprint von 63,5 mm x 25,4 mm und wird zur Stromversorgung und Datenkommunikation mit einem USB-Kabel an einen PC angeschlossen. Es werden Windows, Linux und MacOS unterstützt. Wenn das Board eingeschaltet ist, blinken die vier LEDs (blau, grün, gelb und rot) der Reihe nach von links nach rechts und zeigen damit die ordnungsgemäße Funktion an.

Der PC erkannt das Board als Flashspeicher. Es werden fünf Dateien angezeigt. Nach Klicken auf die Datei mit dem aussagekräftigen Namen CLICK-ME.HTM wird eine Internetverbindung hergestellt. Es wird dann im Standard-Browser eine Seite angezeigt, auf der eine Verbindung mit einem lokalen WLAN hergestellt werden kann (Abbildung 3).

Bild: AVR-IoT-Board von Microchip

Abbildung 3: Das AVR-IoT-Board von Microchip stellt eine Verbindung mit einem lokalen WLAN her, wenn unten links in der Datei CLICK-ME.HTM die Informationen zum WLAN-Zugangspunkt eingetragen werden. (Bildquelle: Microchip Technology)

Nach Eingabe des Netzwerknamens, des Netzwerktyps und des Kennworts beginnt die blaue LED zu leuchten und zeigt damit an, dass das Board mit dem lokalen WLAN verbunden ist. Kurz darauf beginnt die grüne LED zu leuchten und gibt damit an, dass die Platine mit dem Google-Cloud-Server verbunden ist. Bei jedem Senden von Daten an den Google-Cloud-Server blinkt die gelbe LED. Alle zwischen dem AVR-IoT-Board und dem Google-Cloud-Server übertragenen Informationen werden verschlüsselt.

IoT, verschlüsselte Verbindungen und Datenverschlüsselung

Der Internet-Datenverkehr zwischen zwei Endpunkten erfolgt über eine sichere Verbindung, die normalerweise mit dem TLS-Protokoll (Transport Layer Security) verschlüsselt wird. Trotzdem wäre es möglich, dass ein Hacker eine Schwachstelle in der verschlüsselten Verbindung findet und die Daten über einen „Man-in-the-middle-Angriff“ abzapft. Um zu verhindern, dass eine Verbindung Opfer eines derartigen Angriffs wird, müssen die Daten zusätzlich verschlüsselt werden, typischerweise nach einem der Verschlüsselungsstandards AES oder SHA.

Zur Verschlüsslung der zur Google Cloud übertragenen Daten verfügt das AVR-IoT-Board über einen CryptoAuthentication™-Sicherheitschip ATECC608A-MAHCZ-T von Microchip Technology, der über eine I2C-Schnittstelle mit dem AVR-Mikrocontroller verbunden ist. Der ATECC608A ist ein kryptografischer Speicherchip, der eine Reihe von Verschlüsselungsstandards wie AES-128 und SHA-256 unterstützt. Auf ihm werden die zur Kommunikation mit dem Google-Cloud-Server verwendeten öffentlichen und privaten Schlüssel gespeichert.

Auf jedem ATECC608A auf einem AVR-IoT werden von Microchip Technology eigene öffentliche und private Schlüssel vorinstalliert. Der private Schlüssel im ATECC608A befindet sich in einem sicheren Speicherbereich und kann nicht ausgelesen werden – auch dann nicht, wenn die I2C-Schnittstelle von einem Logikanalysator überwacht und protokolliert wird. Der öffentliche Schlüssel ist ein Teil der an die Google Cloud gesendeten URL und befindet sich auch in der Datei PUBKEY.TXT, die über die USB-Schnittstelle auf dem mit dem AVR-IoT verbundenen PC gelesen werden kann. Einzelheiten zur Funktionsweise des ATECC608A sind nur unter einer Verschwiegenheitserklärung von Microchip Technology erhältlich.

Die Firmware des Mikrocontrollers ATMEGA4808 auf dem AVR-IoT ist aber für eine effiziente Nutzung des ATECC608A in einem sicheren Google-Cloud-Projekt konfiguriert. Damit sind die Einzelheiten der kryptografischen Funktionen des ATECC608A größtenteils für den Entwickler transparent, was die Entwicklung erheblich vereinfacht und beschleunigt.

Bei IoT-Endpunkten mit hohen Sicherheitsanforderungen schützt der ATECC608A sowohl die Anwendung als auch sich selbst. Er ist sehr widerstandsfähig gegen physische Manipulationsversuche und kann eine Vielzahl von Attacken auf Nebenschauplätzen erkennen und sich dagegen schützen, z. B. extreme Kälte, um den Speicherinhalt zu erhalten, oder außergewöhnlich hohe oder niedrige I2C-Taktfrequenzen. Er erkennt auch Versuche, das Gehäuse zu öffnen und die interne Architektur zu untersuchen. Der Inhalt des internen Speichers des Bauelements ist ebenfalls verschlüsselt. Der ATECC608A kann auch geheime Sicherheitsmechanismen enthalten, die nur den Ingenieuren von Microchip Technology bekannt sind.

Die Arbeit mit dem Google-Cloud-IoT-Server

Nachdem der AVR-IoT eine Verbindung mit dem Google-Cloud-IoT-Server hergestellt hat, beginnt der Datenaustausch. Der AVR-IoT hat einen Helligkeits- und einen Temperatursensor. Daten dieser Sensoren werden zum Google-Cloud-Server gesendet und können in Echtzeit angezeigt werden (Abbildung 4). Nach Eingabe der folgenden URL können die Daten von einem beliebigen Browser angezeigt werden:

avr-iot.com/device/{publickey}

Dabei ist {publickey} der dem AVR-IoT-Board zugewiesene öffentliche Schlüssel.

Der verwendete Google-Cloud-Server ist ein Sandkasten-Konto zu Demonstrationszwecken. Daher werden die vom AVR-IoT zur Google Cloud gesendeten Daten nicht dauerhaft gespeichert, sondern nach Abbruch der Verbindung mit dem Server gelöscht.

Bild: Google-Cloud-IoT-Server

Abbildung 4: Auf der vom Google-Cloud-IoT-Server angezeigten Webseite können außerdem die vom AVR-IoT erfassten Daten des Temperatur- und des Helligkeitssensors angezeigt werden. (Bildquelle: Microchip Technology)

Für den Fall, dass ein Cloud-Server mit sämtlichen Funktionen benötigt wird, enthält das AVR-IoT-Kit Anweisungen zum Upgrade auf ein privates Google-Cloud-Konto. Mit einem privaten Google-Cloud-Konto könnten Daten in der Google Cloud für eine spätere Verwendung dauerhaft gespeichert werden. Auf der privaten Google Cloud kann auch eine Weboberfläche bereitgestellt werden, die mit dem AVR-IoT kommunizierten kann. Die Oberfläche könnte Online-Anwendungen bereitstellen, die Befehle an kundenspezifische Software auf der Platine senden können. Beispielsweise kann jeder der GPIO-Pins des ATmega4808 von einem beliebigen Standort auf der Welt gesteuert werden, wenn er mit einem elektronischen Gerät verbunden ist.

Fazit

Es gibt zwar viele Bücher und Websites, in denen der Zugriff auf Cloud-Speicher und seine Verwendung erläutert wird, aber oft ist das Lernen anhand von Beispielen einfacher. Das AVR-IoT-Board von Microchip macht die Verbindung mit der Cloud einfach und veranschaulicht dabei die Grundlagen des Cloud-Speichers, der Verschlüsselung und der Steuerung von IoT-Endpunkten.

Haftungsausschluss: Die Meinungen, Überzeugungen und Standpunkte der verschiedenen Autoren und/oder Forumsteilnehmer dieser Website spiegeln nicht notwendigerweise die Meinungen, Überzeugungen und Standpunkte der Digi-Key Electronics oder offiziellen Politik der Digi-Key Electronics wider.

Über den Autor

Bill Giovino

Bill Giovino ist Elektronikingenieur mit einem BSEE von der Syracuse University und einer der wenigen, die erfolgreich vom Entwicklungsingenieur über den Anwendungsingenieur zum Technologiemarketing wechselten.

Seit über 25 Jahren wirbt Bill für neue Technologien vor technischem und nicht-technischem Publikum für viele Unternehmen, darunter STMicroelectronics, Intel und Maxim Integrated. Während seiner Zeit bei STMicroelectronics trug Bill dazu bei, die frühen Erfolge des Unternehmens in der Mikrocontroller-Industrie voranzutreiben. Bei Infineon inszenierte Bill die ersten Erfolge des Unternehmens im Bereich Mikrocontroller-Design in den USA. Als Marketingberater für sein Unternehmen CPU Technologies hat Bill vielen Unternehmen geholfen, unterbewertete Produkte in Erfolgsgeschichten zu verwandeln.

Bill war zudem ein früher Anwender des Internets der Dinge, einschließlich der Implementierung des ersten vollständigen TCP/IP-Stacks auf einem Mikrocontroller. Die Botschaft von „Verkauf durch Aufklärung“ und die zunehmende Bedeutung einer klaren, gut geschriebenen Kommunikation bei der Vermarktung von Produkten im Internet sind Bills Anliegen. Er ist Moderator der beliebten „Semiconductor Sales & Marketing Group“ auf LinkedIn und spricht fließend B2E.

Über den Verlag

Nordamerikanische Fachredakteure von Digi-Key