IoT-Produktentwicklung schneller starten mit der Plattform von Electric Imp

Von Jacob Beningo

Zur Verfügung gestellt von Nordamerikanische Fachredakteure von DigiKey

Die Entwicklung eines Produkts, das mit dem Internet verbunden ist, erfordert ganz unterschiedliche Fähigkeiten. Entwickler müssen wissen, wie Embedded-Software geschrieben wird, einen Schaltkreis bauen können, verstehen, wie sie für Datensicherheit sorgen und Verbindungen zu einem Netzwerk herstellen können, um das Gerät ferngesteuert zu aktualisieren und zu verwalten.

Die Expertise und Infrastruktur für ein einzelnes IoT-Produkt aufzubauen, kann eine zeitintensive und teure Herausforderung darstellen. Viele verschiedene IoT-Plattformen helfen den Entwicklern dabei, schneller mit der Produktentwicklung zu beginnen und die Anzahl der Aufgaben in einem Designzyklus zu minimieren.

Eine der interessanteren Plattformen wird von Electric Imp bereitgestellt und kombiniert die notwendige Hardware und Software, um dem Entwickler einen schnellen und einfachen Start zu ermöglichen.

Dieser Artikel beschreibt die IoT-Plattform von Electric Imp und wie sie zu verwenden ist.

Was ist die Electric-Imp-IoT-Plattform?

Die Electric-Imp-Plattform ist eine IoT-Plattform, die Entwicklern eine komplette Lösung für die Internetanbindung und Verwaltung von IoT-Geräten bietet. Die Plattform enthält alle Bausteine, die ein Entwicklungsteam benötigt, um mit einem Produkt durchzustarten. Zu diesen Bausteinen gehören:

  • Voll integrierte Hardware
  • Embedded-Betriebssystem
  • Treiber
  • APIs
  • Cloud-Dienste
  • Code-Bibliotheken
  • Sicherheitslösungen

Zunächst verbinden Entwickler ihre Sensoren und firmeneigene Hardware mit einem Electric-Imp-Funkmodul, das nicht nur deren benutzerdefinierte Software enthält, sondern auch das Betriebssystem „ImpOS“, das für eine sichere Verbindung zur Imp-Cloud sorgt (Abbildung 1). Endbenutzer wie Entwickler können Ihre WiFi-Einstellungen über ein Mobilgerät mithilfe einer Anwendung namens „BlinkUp“ auf ihr Produkt bzw. ihre Entwicklungsplattform anwenden. Hat die Imp-Hardware die WiFi-Informationen, kann sie direkt und sicher mit der Imp-Cloud und von da aus mit dem Internet allgemein kommunizieren.

Bild der Plattform von Electric Imp

Abbildung 1: Die Plattform von Electric Imp verfügt über bewährte, vollständig integrierte Hardware, Software, Betriebssystem, APIs, Cloud-Dienste und Sicherheit für eine schnelle Verbindung des IoT-Geräts mit der Cloud. (Bildquelle: Electric Imp)

Mit einer Plattform wie der von Electric Imp können Entwickler mehrere Vorteile nutzen, darunter:

  • Signifikante Verkürzung der Markteinführungszeiten
  • Konzentration auf die Kernkompetenzen des Unternehmens statt auf die Internetanbindung
  • Größerer Produktwert und höhere Differenzierung
  • Kein Aufbau von Netzinfrastruktur und -expertise erforderlich

Electric-Imp-Hardware

Die Electric-Imp-Hardware ist ein Standard-Hardware-Set für Entwickler und umfasst:

  • 802.11 b/g/n oder a/b/g/n WiFi-Transceiver
  • 32-Bit-ARM®-Cortex®-Prozessor
  • Robustes eingebettetes Betriebssystem mit ausfallsicheren Firmware-Updates
  • Vom Benutzer wählbare I/O wie z. B. GPIO, PWM und Analogeingang
  • Kommunikation über SPI, UART und I2C

Die Module sind von Murata Electronics gefertigt. Den größten Unterschied für Entwickler werden der interne Prozessor, die WiFi-Netzwerkoptionen und das Gehäuse machen. Das imp005 (LBWA1UZ1GC-901) zum Beispiel basiert auf einem ARM-Cortex-R4-Prozessor für 320 MHz und arbeitet im 2,45-GHz- und im 5-GHz-Band. Das imp003 (LBWA1ZV1CD-716) hingegen basiert auf einem ARM-Cortex-M4F-Prozessor für 144 MHz und arbeitet ausschließlich im 2,45-GHz-Band. Beide sind für die Oberflächenmontage ausgelegt (Abbildung 2).

Bild des imp005 (links) und imp003 (rechts) von Electric Imp

Abbildung 2: Die Module imp005 (links) und imp003 (rechts) integrieren ein WiFi-Modul und einen ARM-Cortex-Mikrocontroller, um den Flächenbedarf zu minimieren. (Bildquelle: Murata Electronics)

Ohne eine Break-out-Karte wären die oberflächenmontierten Strukturen schwer zugänglich. Das imp003 verfügt über das IMP003-BREAKOUT, ein einfaches Break-out-Board, das eine USB-Schnittstelle zur Bereitstellung der Stromversorgung enthält, den Fototransistor, der zur Programmierung des Moduls mit WiFi-Einstellungen (mithilfe der einzigartigen BlinkUp-Methode von Electric Imp) erforderlich ist, und diverse unterstützende Komponenten (Abbildung 3).

Bild des Break-out-Moduls imp003 von Murata

Abbildung 3: Das Break-out-Modul imp003 ist ein Entwicklungsboard mit niedriger Pinzahl, mit der sich Entwickler leicht mit der Electric-Imp-Hardware vertraut machen können, die in ihren Endprodukten verwendet werden wird. (Bildquelle: Murata Electronics)

Das Break-out-Board imp005 ist etwas komplexer. Das imp005-Modul bietet nicht nur eine höhere Anzahl von Pins, sondern auch einen ARM-Cortex-R4-Prozessor mit mehr Leistung (Abbildung 4). Das Break-out-Board imp005 beinhaltet auch Ethernet, eine Standard-USB-Schnittstelle zur Stromversorgung und Verbindung mit dem Host sowie den Fototransistor.

Bild des Break-out-Moduls imp005 von Murata Electronics

Abbildung 4: Das Break-out-Modul imp005 gibt Entwicklern Zugriff auf das leistungsstärkere imp005, das zusätzlich zu erweiterten Konnektivitätsoptionen wie USB und Ethernet einen ARM-Cortex-R4-Mikrocontroller enthält. (Bildquelle: Murata Electronics)

Einrichten eines Electric Imp mithilfe von BlinkUp

Ein Problem, das jedes IoT-Gerät betrifft, ist die Programmierung mit den lokalen WiFi-Routerdaten. Electric Imp hat dieses Problem mit einer einzigartigen Methode gelöst: Es wird ein Fototransistor zur Programmierung des Geräts mit SSID und Passwortinformationen verwendet.

Plattform- und Endproduktbenutzer laden die BlinkUp-Anwendung von Electric Imp auf ihr Mobilgerät herunter und geben dann die Netzwerkinformationen in die Anwendung ein. Auf eine Aufforderung hin drücken die Benutzer dann das Mobilgerät auf den Fototransistor. Der Bildschirm des Mobilgeräts blinkt eine Befehlssequenz, die die Electric-Imp-Hardware programmiert (Abbildung 5). Nach Abschluss der Programmierung kann die Entwicklung beginnen.

WARNUNG! Blicken Sie während der Programmierung der Netzwerkinformationen nicht auf das Display des Mobilgeräts! Dies könnte zu sehr schlimmen Kopfschmerzen oder zu einem epileptischen Anfall führen.

Bild der BlinkUp-Anwendung von Electric Imp

Abbildung 5: Mithilfe der BlinkUp-Anwendung kann ein Entwickler oder Benutzer die WiFi-SSID und das Passwort eingeben und diese Informationen problemlos über eine Blinkfolge des Mobilgeräts und einen Fototransistor auf das Electric-Imp-Modul übertragen. So ist keine zusätzliche Konnektivität wie Bluetooth oder USB erforderlich. (Bildquelle: Electric Imp)

Hat ein Entwickler das Electric-Imp-Modul mit dem Internet verbunden, registriert das Modul in der Imp-Cloud eine eindeutige ID. Diese ID ist auch in der BlinkUp-Anwendung zu finden. Die eindeutige ID dient zur Identifizierung der Moduls und Verbindung mit der Online-Umgebung. Außerdem wird die ID verwendet, um Firmware-Updates am Produkt vorzunehmen und das Gerät zu verwalten. Ein Modul kann auch mit der Cloud verbunden werden, indem man sich in der Entwicklungsumgebung anmeldet und eine neue Softwareanwendung erstellt (auch als „Model“ bezeichnet) und dann die ID des Moduls mit dem „Model“ verknüpft (Abbildung 6).

Bild der Verbindung eines Moduls mit dem Electric-Imp-Softwaremodell über die Cloud

Abbildung 6: Zur Verbindung eines Moduls mit einem Softwaremodell über die Cloud wird einfach die Liste verfügbarer Imp-Module durchblättert und dann dem Gerät entweder ein vorhandenes Softwaremodell oder ein neues Softwaremodell zugewiesen. (Bildquelle: Electric Imp)

Nach der Erstellung des Modells hat der Entwickler Zugriff auf die Online-Entwicklungsumgebung. So kann Software für das Electric-Imp-Modul geschrieben werden, und Code, der in der Cloud läuft, um mit dem Modul zu kommunizieren. Der Server- und Modulanwendungscode wird in einer Skriptsprache namens Squirrel geschrieben. Squirrel hat eine ähnliche Notation wie die Programmiersprache C, sodass der Übergang für die meisten Embedded-Programmierer problemlos ist.

Die Entwicklungsumgebung ist in drei Hauptbereiche aufgeteilt. Der erste ist serverseitiger Code, auch als Agent-Code bezeichnet. Der zweite ist der Gerätecode, der auf einem Modul bereitgestellt werden kann, wenn das Skript kompiliert und von der Imp-Cloud verwaltet wird. Der dritte ist ein Protokoll, das zur Überwachung von Agent- und Geräteverhalten sowie für das Debugging verwendet werden kann.

Bild der Electric-Imp-Entwicklungsumgebung

Abbildung 7: Die Electric-Imp-Entwicklungsumgebung ist eine voll integrierte Umgebung, in der Entwickler gleichzeitig innerhalb einer Ansicht an ihrer Geräte-Firmware und an Cloud-Software arbeiten können. (Bildquelle: Electric Imp)

Mit einem Blinky-LED-Programm „Hello World“ sagen

Eine Anwendung auf einem Electric-Imp-Modul zum Laufen zu bringen, ist völlig unkompliziert. Objekte können Hardwaremerkmalen auf hoher Abstraktionsebene zugewiesen werden. Dadurch werden das Imp-Modul und der zugehörige Mikrocontroller zur Blackbox.

Der erste Schritt besteht darin, über ein Terminal „Hello World“ zu schreiben oder eine LED blinken zu lassen. Sehen wir uns den Code an, der erforderlich wäre, um eine LED blinken zu lassen.

Zunächst muss sich der Entwickler in der Entwicklungsumgebung anmelden und ein „Hello World“ oder „Blinky“-Modell erstellen und es seinem Zielmodul zuweisen. Wie bei anderen Anwendungen auch, weist der Entwickler Pins und Variablen zu und konfiguriert diese. In diesem Fall würde ein Entwickler, wenn eine LED an Pin 5 angeschlossen ist, den Code zur Konfigurierung der LED schreiben und eine Zustandsvariable erstellen (Listing 1).

// Erstellen Sie eine globale Variable namens „led“ und weisen Sie ihm das „pin“-Objekt zu

led <- hardware.pin5;

 

// Konfigurieren Sie „led“ als digitalen Ausgang mit einem digitalen Startwert von 0 (Low-Pegel, 0 V)

led.configure(DIGITAL_OUT, 0);

 

// Erstellen Sie eine globale Variable für den aktuellen Status von „led“

state <- 0;

Listing 1: Software für das Electric-Imp-Modul mithilfe vorhandener Bibliotheken und der Skriptsprache Squirrel zu schreiben ist leicht. Das Skript konfiguriert die LED und erstellt eine Zustandsvariable. (Codequelle: Electric Imp)

Anschließend könnte eine einfache Anwendungsfunktion geschrieben werden, um die LED blinken zu lassen (Listing 2).

function blink()

{   

   // Invertieren des Wertes von „state“:   

   // wenn state = 1, 1-1 = 0   

   // wenn state = 0, 1-0 = 1   

   state = 1 - state;     

 

   // Aktuellen Zustand in 'led' (das ist pin9) schreiben  

   led.write(state);   

 

   // Konfigurieren Sie den imp so, das er in 0,5 Sekunden aufwacht und rufen Sie blink() erneut auf        

   imp.wakeup(0.5, blink);

}

Listing 2: Eine LED blinken zu lassen oder Hardware zu steuern erfolgt über einen Satz von Bibliotheken, der die Entwicklung erleichtern und die Entwicklungszeit stark verkürzen kann. In diesem Beispiel wird eine einfache Funktion verwendet, um auf eine LED-Ressource zuzugreifen und die Funktionsausführung über ImpOS um 500 Millisekunden zu verzögern (Codequelle: Electric Imp)

Das ist alles! Das ist der gesamte Squirrel-Code, der erforderlich ist, um eine LED zu konfigurieren und sie auf der Hardware blinken zu lassen. Das LED-Programm kann in weniger als einem Dutzend Codezeilen geschrieben werden, und der Entwickler muss kein einziges ARM-Kernregister kennen. Ein einfacher Zugriff auf die High-Level API, und Entwickler können durchstarten.

Integrieren externer Sensoren in ein Electric-Imp-Modell

Externe Sensoren und Komponenten in die Electric-Imp-Plattform zu integrieren, ist eine relativ einfache Angelegenheit. Die Plattform ermöglicht Entwicklern, eine bereits entwickelte Bibliothek einzubinden. Dazu wird die #require-Direktive verwendet, die der #include-Direktive in der Programmiersprache C entspricht. Verschiedene Bibliothekstypen wurden entwickelt und stehen für Entwickler zur sofortigen Verwendung bereit. Zu den Bibliotheken gehören:

  • Web-Services
  • Dienstprogramme
  • Hardware-Treiber

Produktentwickler können Geräte wie Relais, Beschleunigungsmesser und Magnetometer an das Electric-Imp-Modul anbinden und dann die bereits geschriebenen Bibliotheken für diese Komponenten benutzen, um das Design schnell auf den Weg zu bringen. Die Bibliotheken stehen auf der Entwicklungscenter-Website von Electric Imp zur Verfügung.

Bild der vielen verschiedenen Bibliotheken von Electric Imp

Abbildung 8: Electric Imp hat eine große Bandbreite an Bibliotheken, die gleich ab Beginn des Entwicklungsprozesses verwendet werden können. Diese Bibliotheken verkürzen die Entwicklungszeiten und bieten Zugriff auf beliebte Hardware-Geräte und Software-Dienste. (Bildquelle: Electric Imp)

Tipps und Tricks für die Verwendung der IoT-Plattform von Electric Imp

Bei einer Plattform wie der von Electric Imp sind verschiedene Aspekte zu berücksichtigen. Erstens integriert das Electric-Imp-Modul zwei wesentliche Komponenten, den WiFi-Sender und den Mikrocontroller, in einem Gehäuse. Diese Integration kann Kosten und Leiterplattenfläche sparen. Zweitens sollten Entwickler bei der Auswahl der Komponenten für ihre Produkte die vorhandenen Hardware- und Treiber-Bibliotheken beachten. Die Nutzung vorhandener Bibliotheken trägt zur Beschleunigung des Entwicklungszyklus bei.

Schließlich sollten Entwickler drittens daran denken, dass die Electric-Imp-Plattform nicht direkt mit dem Internet verbunden ist. Die gesamte Kommunikation erfolgt zunächst über eine sichere Verbindung zur Imp-Cloud. Diese verwendet dann einen Agent, um Meldungen in das Netz zu leiten. Es gibt auch Bibliotheken für die Dienste Dritter, wie Datenspeicherung und -analyse, die Entwickler Cloud-seitig verwenden können. Nutzen Sie den vorhandenen Code aus den Bibliotheken so viel wie möglich.

Fazit

Die Entwicklung eines IoT-Geräts kann sehr schnell gehen, wenn Entwickler die vorhandenen Technologien nutzen und eine IoT-Plattform verwenden. Nutzen sie eine der verschiedenen Plattformen, die heute auf dem Markt sind, können sich Entwickler auf ihre Hauptaufgaben konzentrieren und die Infrastruktur anderen Unternehmen überlassen. Wie wir gesehen haben, ist die IoT-Plattform von Electric Imp eine interessante und einzigartige Lösung, die eine Erwägung wert ist.

 
DigiKey logo

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

Über den Autor

Image of Jacob Beningo

Jacob Beningo

Jacob Beningo ist ein Berater für eingebettete Software, der derzeit mit Kunden in mehr als einem Dutzend Ländern zusammenarbeitet, um ihr Unternehmen durch die Verbesserung von Produktqualität, Kosten und Markteinführungszeit dramatisch zu transformieren. Er hat mehr als 200 Artikel über Entwicklungstechniken für eingebettete Software veröffentlicht, ist ein gefragter Redner und technischer Trainer und verfügt über drei Abschlüsse, darunter einen Masters of Engineering der University of Michigan. Bei Interesse können Sie ihn unter jacob@beningo.com kontaktieren oder besuchen Sie seine Website www.beningo.com und melden Sie sich für seinen monatlichen Embedded Bytes Newsletter an.

Über den Verlag

Nordamerikanische Fachredakteure von DigiKey