Hey! Sie scheinen aus United States zu kommen, möchten Sie auf die Englisch Webseite wechseln?
Switch to Englisch site
Skip to main content

Electric Imp macht sich mit den imp005-Modulen des Unternehmens auf, ein wachsendes Problem des Internets der Dinge (IoT) zu lösen. Wann haben Sie zum letzten Mal von einem großen Hack oder einer wesentlichen Verletzung der Datensicherheit gehört? Wenn Sie überhaupt irgendwelche Technik-Medien lesen, dann ist die Antwort höchstwahrscheinlich: heute Morgen. Die negativen Konsequenzen einer Verletzung der Datensicherheit sind kostspielig, nicht nur in Hinblick auf den jeweils laufenden Finanzzeitraum, in dem ein Unternehmen Ressourcen großzügig einsetzen muss, um das Problem zu minimieren, und in dem gegebenenfalls sogar mit heftigen Strafen seitens der Behörden zu rechnen ist. Vielmehr gibt es auch einen (schwer zu beziffernden) langfristigen Schaden für den Markennamen des Unternehmens.

Unter dem Strich steht bei all diesen düsteren Geschichten für IoT-Projekte, dass viele potenzielle Kunden IoT-Geräte jetzt einfach als Sicherheitslecks im Wartestand ansehen. Und damit haben sie nicht ganz unrecht: Warum sollte irgendjemand ein Gerät installieren wollen, das im besten Fall irgendwann gekapert und als Teil eines Botnetzes verwendet werden kann oder, was schlimmer wäre, einen empfindlichen Zugangspunkt zum eigenen Netzwerk bieten könnte?

Electric Imp

An dieser Stelle rechnet sich Electric Imp Chancen aus, wirklich etwas zu bewirken. Das Unternehmen steht unter der Leitung von Hugo Fiennes, der dem Hardware-Team von Apple während der ersten vier Generationen des iPhone vorgestanden hatte, bevor er sich anderen Dingen zuwendete und den Nest Thermostat entwickelte. Electric Imp verfügt bereits über einige beeindruckende Design-Ins für das Kit des Unternehmens, unter anderem von Schwergewichten wie Eaton, GE und Pitney Bowes.

Wo Electric Imp nach eigener Überzeugung wirklich etwas bewirken kann, ist bei der der Netzwerksicherheit. Ganz offensichtlich haben sie im Unternehmen intensiv und lange über all die möglichen Angriffspunkte nachgedacht, gegen die IoT-Anwendungen anfällig sein könnten. Auf dieser Basis hat man bei Electric Imp einen grundlegenden Ansatz entwickelt, wie jeder einzelne dieser Angriffspunkte unschädlich gemacht werden kann. Dabei werden sogar externe Hardware-Schnittstellen deaktiviert, nachdem die kryptografischen Schlüssel und der Code im Werk sicher auf Siliziumspeicher geladen worden sind. Die Hoffnung besteht darin, dass Entwickler lieber die vollständig integrierte und geprüfte Edge-to-Cloud-Architektur von Electric Imp einsetzen werden, als Monate für die Entwicklung eigener Lösungen oder die Integration von Lösungen verschiedener Hersteller für die Konnektivität aufzuwenden.

 

architecture1_d7a6f96ccdb8146cb21f73e4b4ec5d5295d1cc83.jpg

Modul imp005

Die imp005-EZ-Module selbst sind folgendermaßen ausgestattet:

  • Prozessor Murata Type 1GC SoC Cortex-R4, 320 MHz, mit bis zu 1 MB RAM für Anwendungscode, was rund 15.000 Zeilen Anwendercode entspricht.
  • 8 MB On-Board-Boot-SPI, davon 4,5 MB frei für Anwendungen

E/A-Mechanismen:

  • Dualband-WLAN mit integrierter Antenne (FCC/IC-Zulassung, CE-geprüft)
  • 3x UART, 1x SPI, 1x I2C, USB-Host
  • 19x GPIO (Multiplex I2C, SPI)
  • RMII-Ethernet

Außerdem eine BlinkUp-Schaltung und eine Quarz-Echtzeituhr für die Inbetriebnahme.

Evaluierungsplatine

Das imp005-EZ-Modul kann auf die Evaluierungsplatine vormontiert erworben werden, die physische Anschlüsse für die gesamte E/A-Palette bietet:

  • Dualband (2,4 GHZ + 5 GHz) 802.11abgn WLAN, integrierte Antenne
  • WAN-Ethernet über RJ45-Steckverbinder
  • USB 2.0/1.1-Low-Speed-/Full-Speed-Host
  • Arduino Shield-kompatible Stiftleisten (3,3 V)

Darüber hinaus Zugriff auf einige Sensoren:

... sowie, natürlich, die altbewährte, anwendungsgesteuerte LED:

  • APA102 RGB-LED

Seminar

Um Ihnen einen Vorgeschmack auf die Entwicklung mit einem imp005-Modul zu geben und einen Eindruck zu vermitteln, ob das etwas für Ihre eigenen Entwicklungen Passendes wäre, führe ich Sie durch einen Workshop, den ich vor ein paar Wochen mit den Leuten von Electric Imp absolviert habe.

Es gibt einige Dinge, die Sie benötigen, bevor Sie loslegen können.

Ausrüstungsliste

  1. Laptop mit WLAN-Konnektivität – über den steuern Sie das Projekt
  2. iPhone oder Android-Telefon – zum Bereitstellen von lokalen WLAN-Anmeldedaten für das Modul
  3. Arrow imp005-EZ-Eval-Kit + Mini-USB-Kabel für die Stromversorgung des Moduls
  4. WLAN-Zugangspunkt zum Bereitstellen einer Internetverbindung. Beachten Sie, dass Sie kein offenes Netzwerk mit Anmeldeseiteneinrichtung für die Verbindungsaufnahme mit dem imp-Modul verwenden können.

Sie müssen außerdem folgende Punkte gewährleisten:

  1. Installieren Sie die App BlinkUp auf Ihrem iPhone oder Android-Telefon. Diese App finden Sie mit einer Suche nach „Electric Imp“ über iTunes bzw. Google Play.
  2. Erstellen Sie ein Electric Imp-Entwicklerkonto unter folgender Adresse: https://electricimp.com/docs/gettingstarted/developer/account/
  3. Erstellen Sie ein IBM Bluemix-Konto. Ich werde Ihnen später in diesem Beitrag zeigen, wie Sie zu diesem Zweck vorgehen.

Was wir zu tun versuchen, wird im folgenden Diagramm dargestellt:

workshop_01a_781fbc8e9d9c531f32afd621af8ba59ef5c9ab69.jpg

Wie Sie sehen können, simulieren wir ein intelligentes Kühlsystem. Das imp005-Modul wird zur Überwachung von Temperatur, Luftfeuchtigkeit und Lichtverhältnissen unseres Kühlschranks eingerichtet und generiert Warnmeldungen, falls diese Werte sich außerhalb vorgegebener Parameter bewegen sollten. Um Strom zu sparen, liest das Gerät für die Übermittlung in einem Rutsch gesammelte Daten aus, trennt anschließend die Serververbindung und wird im WLAN-Stromsparmodus betrieben, wenn gerade keine Übermittlung anliegt.

Der Endpunkt für diese Daten ist Watson von IBM Bluemix. In diesem Beispiel verwenden wir Watson nur für die Darstellung der Daten, aber es steht Ihnen auch die gesamte Palette der Bluemix-Cloud-Dienste zur Verfügung – von der Meldung an Wartungstechniker in Bereitschaft über deren Mobiltelefone bis hin zur Sammlung Ihrer Laufzeitdaten über Hunderte Kühleinheiten hinweg oder was Sie sich sonst noch vorstellen können.

 Alles zwischen imp005 und IBM Watson wird von der Electric Imp-Architektur gehandhabt. Dazu gehören folgende Punkte:

  • Sichere Erkennung der Geräteidentität und Geräteanmeldung bei ImpCloud
  • Herstellung und Management einer sicheren Verbindung
  • Anwendungscontainer für Geräte- und Cloud Agent-basierte virtuelle Maschinen
  • Geräte- und cloudbasierte Softwarebereitstellung/„Over the Air“(OTA)-Aktualisierungen
  • Geräte und Betriebsmanagement, Skalierbarkeit, Protokollierung

Jede dieser Funktionen ist eine Antwort von Electric Imp auf einen möglichen Angriffspunkt Ihrer IoT-Anwendung. Wenn Sie sich also bei der Plattform des Unternehmens einkaufen, handelt es sich immer um Sicherheitsmaßnahmen, um die Sie sich nicht mehr selbst kümmern müssen. Sehen wir uns also an, was das bei Ihnen bewirken könnte.

IBM Watson-IoT-Konfiguration

  1. Erstellen Sie ein kostenloses Konto unter https://console.bluemix.net/
    p01a_bf6de82b063a22e0e6758a5116211235272a536e.jpg
  2. Im Rahmen Ihrer ersten Anmeldung bei Bluemix müssen Sie eine „Organization“ (Organisation) und einen „Space“ (Platz) erstellen.
  3. Wählen Sie im Seitenmenü „Services > Internet of Things“ (Dienste > Internet der Dinge) aus.p02a_7a4f44f2bf0555e33da07555d76ef7018d8fd722.jpg
  4. Klicken Sie im Fenster der IoT-Plattform auf die Schaltfläche „Get Started“ (Erste Schritte).
  5. Klicken Sie im nächsten Fenster auf die Schaltfläche „Create“ (Erstellen).
  6. Klicken Sie im darauf folgenden Fenster auf die Schaltfläche „Launch“ (Starten).p04a_cf4c432165cdfdc6f9c9f9535ba400688beca9e2.jpg
  7. Wenn Sie im Dashboard-Fenster angekommen sind, verwenden Sie dort das Seitenmenü, um „Apps“ (Anwendungen) auszuwählen.
    p06a_9a47ad4b9f2d5f8d3bdff58498142faf8c95b8df.jpg
  8. Notieren Sie sich aus dem Fenster „Apps“ (Anwendungen) Ihre ID (rechts oben unterhalb der Angabe des Kontos).
  9. Wählen Sie die Schaltfläche „+ Generate API Key“ (+ API-Schlüssel generieren) aus und notieren Sie den API-Schlüssel und den Token zur Authentifizierung (oder übertragen Sie die Angaben durch Kopieren und Einfügen in ein Notepad-Dokument).
    p07a_1a1228664ee9755dcbcf3b72255a5ef656cb5882.jpg.
  10. Klicken Sie auf die Schaltfläche „Generate“ (Generieren)
    p08a_3c16ba932c7e580fd6af39a50109ba1c59bf2081.jpg.
  11. Kopieren Sie Ihren Schlüssel, Token und Ihre ID in die API_Key-, Auth_Token-, und Org_ID-Einstellungen im Code RefrigerationMonitor.agent von Electric Imp (gegen Ende der Datei). Ich führe Ihnen später genau vor, wie das funktioniert, und zwar unter Electric Imp-Gerät und -Agent

Ihr Imp-Modul bereitstellen

Alternative Bezeichnung: Ihren Electric Imp mit dem Internet verbinden. Bevor Sie mit Ihrem Modul arbeiten können, müssen Sie es mit den Informationen füttern, die es braucht, um sich für Ihre WLAN-Verbindung anzumelden. Dazu verwenden Sie die App BlinkUp von Electric Imp, die Sie (hoffentlich) bereits auf Ihr Smartphone geladen haben.

  1. Starten Sie die App BlinkUp auf Ihrem Gerät.
  2. Melden Sie sich in der App bei Ihrem Electric Imp-Entwicklerkonto an.
  3. Tragen Sie Ihre WLAN-Anmeldeinformationen ein.
  4. Befolgen Sie die Anweisungen in der App, um Ihr Gerät zu „blinkUppen“.

Dieses Video zeigt Ihnen, wie das „BlinkUppen“ ausgeführt wird:

 

Sofern BlinkUp erfolgreich ist, blinkt die LED des Imp-Moduls grün und die App zeigt die eindeutige Geräte-ID, wie folgt:


blinkup_1ba6cffe41da4f7349a6d4824d30d7d5534678f0.jpg

Eine schnell blinkende rote LED signalisiert Ihnen, dass das Gerät nicht in der Lage war, die BlinkUp-Übertragung zu lesen. Sie müssen es noch einmal versuchen. Führen Sie diesmal vielleicht das Telefon näher an das Modul heran.

Electric Imp-Gerät und -Agent

Den vollständigen Quellcode für dieses Beispiel finden Sie unter:

https://github.com/electricimp/examples/tree/master/Arrow_imp005_EZ_Eval_Examples/RefrigeratorMonitor

Es gibt zwei Dateien, eine für das Modul und eine für den ImpCloud-Agent. Die beiden Dateien müssen kopiert und im dafür vorgesehenen Fenster der IDE eingefügt werden:

  • RefrigeratorMonitor.agent.nut > IDE-Agent-Fenster (links)
  • RefrigeratorMonitor.device.nut > IDE-Gerät-Fenster (rechts)

p09a_fcd70813b03f8ebafa83a92db62dfb38f0fd3efc.jpg

Der Code ist in Squirrel geschrieben. Das ist eine weitere Abwandlung von C/C++ und mit JavaScript vergleichbar. Es handelt sich um eine hochwertige, objektorientierte Anweisungssprache mit Garbage Collection. Es gibt auch Squirrel-Ressourcen von Electric Imp, auf die Sie hier zugreifen können. Der Anwendungscode wird auf einer virtuellen Maschine ausgeführt, sowohl auf dem Modul als auch in der ImpCloud. Dies ist ein weiteres Mittel zur Verringerung der Angriffsfläche für Hacker.

Um dieses Beispiel auszuführen, müssen wir allerdings nicht erst Squirrel lernen. Vorerst dürfen wir nur nicht vergessen, die Watson IoT-Authentifizierungsdaten unten in den Agent-Code einzufügen, wie im Bild oben hervorgehoben.

Nachdem Sie diese Daten hinzugefügt haben, klicken Sie auf die Schaltfläche „Build und Run“ (Erstellen und ausführen). Im Protokoll sollte etwas in der folgenden Art zu sehen sein:

[Gerät] sending readings (sendet Messwerte)

[Agent] Watson send successful (Watson-Übermittlung erfolgreich)

Sollte dagegen eine Meldung folgender Art angezeigt werden: Watson send error: Error: Invalid API Key or Authentication Method (Watson-Übermittlungsfehler: Fehler: API-Schlüssel oder Authentifizierungsmethode ungültig),

dann überprüfen Sie nochmals Ihre Werte für Schlüssel, Token und org-ID. Sollte das Problem weiterhin auftreten, warten Sie einige Minuten und versuchen Sie es noch einmal, denn manchmal braucht Watson Zeit für die interne Weiterleitung der Authentifizierung.

Watson-Datenvisualisierungen erstellen

Und jetzt machen wir uns daran, unsere hübschen Grafiken in unserer Watson-Umgebung zu erstellen (und auch Messanzeigen, falls gewünscht).

Wählen Sie im Dashboard-Fenster im Seitenmenü die Option „Boards“ (Platinen) aus. Klicken Sie anschließend auf die Schaltfläche „+ Create New Board“ (+ Neue Platine erstellen).

b012_15b093a9f749bd625d0d8fdad8166f8f9b0a5f05.png

Geben Sie der Platine einen Namen (z. B. Kühlschrankmonitor) und tragen Sie (optional) auch eine Beschreibung ein. Klicken Sie auf „Next“ (Weiter) und „Submit“ (Senden). Klicken Sie daraufhin im Dashboard-Fenster auf die Platine, die Sie soeben im Abschnitt „Your Boards“ (Ihre Platinen) erstellt haben.
b021_390b5440cdde71f6ecb8768928741c6bbd80d8e3.png

Klicken Sie auf den Kartentyp „Line Chart“ (Liniendiagramm), damit unser Liniendiagramm für die Temperatur erstellt wird. Im nächsten Schritt:

  1. Wählen Sie das Gerät „Arrow_imp005-EZ“ aus und klicken Sie auf „Next“ (Weiter).
  2. Klicken Sie auf „+ Connect new data set“ (+ Neuen Datensatz verbinden).
  3. Wählen Sie „RefrigerationMonitor“ (Kühlmonitor) als Ereignis (Event) aus.
  4. Wählen Sie „data.0.temperatur“ als Eigenschaft (Property) aus.
  5. Wählen Sie „Number“ (Zahl) als „Type“ (Typ) aus. Klicken Sie auf „Next“ (Weiter).
  6. Wählen Sie die „L“-Einstellungen aus. Klicken Sie auf „Next“ (Weiter).
  7. Fügen Sie den „Title“ (Titel) hinzu und wählen Sie „Color Scheme“ (Farbschema) aus. Klicken Sie auf „Submit“ (Senden).

Wiederholen Sie diesen Vorgang für ein Liniendiagramm für die Luftfeuchtigkeit. In ähnlicher Weise können Sie eine Wertekarte für einen „Open Door Alert“ (Warnmeldung bei offener Tür) erstellen, indem Sie „data.0.doorOpen“ als Datenquelle auswählen. Für eine Wertekarte für eine Temperaturwarnung wählen Sie „data.0.tempAlert“ als Datenquelle aus.

Wenn Sie fertig sind, sollte das Dashboard nach und nach automatisch RefrigerationMonitor-Daten anzeigen.

end1_7e7f32dc3433db0d90c1326b77477e31dfe3c2ea.jpg

Abschließende Worte

Die Arbeit mit dem imp005-Modul hat mir Spaß gemacht. Auch hat mir gefallen, wie viel Gedanken Electric Imp in die Absicherung ihrer IoT-Architektur gesteckt hat. Das ist ein großer Schritt in die richtige Richtung, wenn IoT jemals so allgegenwärtig werden soll, wie die Technikpropheten das vorhersagen. Natürlich eignet sich die Lösung von Electric Imp nicht für jede Anwendung, aber für viele Situationen. Es spricht eine Menge dafür, Sicherheit und Dinge wie OTA-Aktualisierungen an jemanden abzugeben, der auf dieses Gebiet spezialisiert ist und weiß, was er tut.

Mark completed his Electronic Engineering degree in 1991 and worked in real-time digital signal processing applications engineering for a number of years, before moving into technical marketing.