IoT: Finding Europe with Lights

Seite 2: Das erste eigene PCB

Inhaltsverzeichnis

Mit Hilfe eines Freundes war die aktuelle Schaltung auf meinem Breadboard schnell in Eagle übersetzt – die gängigste Software, um elektronische Schaltungen zu entwerfen und daraus Anweisungsdateien für Auftragsfertiger von Platinen zu erzeugen. Zusätzlich fügten wir einen Anschluss für das Fona-Board hinzu, der mit einigen Pins des Atmel-Chips verbunden wurde, unter anderem der seriellen Schnittstelle. Der Moment, als die Test-Boards nach zwei Wochen vom amerikanischen Hersteller Osh-Park ankamen, das erste Mal die Lämpchen angingen und die Mobilfunkverbindung aufgebaut wurde, ist schwer zu beschreiben: Ardufona war geboren und funktionierte auf Anhieb einwandfrei.

Erste Versuche mit dem zwischengeschalteten 555er-Schaltkreis auf einem Breadboard. Der Kondensator wurde später deutlich kleiner.
Mehr Infos

ATmega

Weitere Kniffe für Low-Power-Schaltungen mit dem ATmega finden Sie im Heft 3/2014 ab Seite 152.

In späteren Feldtests zeigte sich ein unangenehmes Stabilitätsproblem. Die Boards gingen teilweise nach Tagen des stabilen Betriebs immer wieder mal in einen undefinierten Zustand über und hingen sich auf. Tagelanges Debugging, Foren-Hilfe und diverse Test-Settings mit unterschiedlicher Taktung oder anderen Kniffen ließen das Problem nicht gänzlich verschwinden. Da die Boards für den autonomen Betrieb "in der Wildnis" funktionieren sollten, war eine derartige Instabilität nicht tolerierbar. Schließlich brachte mich ein Ingenieur aus den USA auf die Lösung. Der meistverkaufte integrierte Baustein der Welt musste her. Mit einem 555er IC ist es möglich, einen Kondensator gezielt so zu laden, dass er nach x Sekunden einen Reset des Arduino auslösen kann. So wurde die Platine in Eagle um eine entsprechende Schaltung erweitert. Heute laufen die Boards wochenlang stabil und booten nur ab und zu neu. Der Atmel verfügt über einen internen "Watchdog", der prinzipiell die gleiche Funktion erfüllen kann. Leider erwies sich diese Funktion als unzuverlässig.

Das selbst designte Board mit Aufnahmesockel für Adafruits Fona und Grove-Connectoren für alle wesentlichen Schnittstellen. Der kleine IC unten ist eine CMOS-Version des klassischen 555er ICs als externer Watchdog.

Eine europaweite Mobilfunklösung ohne ausufernde Kosten zu finden ist eine Herausforderung. Glücklicherweise gibt es auf Machine-to-Machine-Szenarien (M2M) spezialisierte Firmen, die SIM-Karten für diesen Zweck anbieten. Internationales Roaming in nahezu beliebige Netze ist inklusive, ebenso wie die Verwaltung der Karten in einem speziellen Portal. Wir entschieden uns für die britische Firma eseye Ltd. Die SIMs gab es mit relativ geringem Transfervolumen von einem Megabyte pro Monat, doch mit sparsamem Code bleiben wir mit zwei Sync-Calls pro Stunde im Rahmen. Die Karten können sich in nahezu jedes technisch verfügbare Netz einwählen und haben so eine hervorragende Netzverfügbarkeit, selbst in schlecht ausgebauten Regionen oder Gebäuden mit schlechtem Empfang.

Wohin mit den Daten der Sensoren? Inzwischen gibt es zahlreiche, meist Cloud-Lösungen, häufig mit kostenlosen Entwickler-Accounts. Kriterien für die Auswahl waren Stabilität, Preismodell, die Einfachheit der Schnittstelle und deren Dokumentation sowie Praxisbeispiele und Community-Support. Darüber hinaus die Möglichkeiten des Zugriffs auf die Daten zu Analysezwecken und zur Darstellung, um die Sensor-Farbwerte von den Lampen auszulesen. Nach einer ersten Internet-Recherche kamen Xively, Thingspeak und Ubidots in Betracht. Xively war schnell wieder aus dem Rennen. Man konnte sich für einen Entwickler-Account anmelden – um auf eine Warteliste zu kommen. Bis heute hat sich niemand von Xively zurückgemeldet.

Der Cloud-Service Ubidots hat das beste Interface zur Visualisierung der Daten.

Anders bei Ubidots, einer Plattform speziell für Sensordaten und das Internet of Things. Ubidots stellte eine Reihe von praktischen Code-Beispielen zur Verfügung, hatte einen schnellen und angenehmen Support und eine gut dokumentierte Schnittstelle. Außerdem gibt es ein beeindruckendes Interface zur Abfrage der Daten mit schönen Visualisierungen und sogar Karten-Applets für die Anzeige von GPS-Daten. Ubidots ist sehr empfehlenswert, dennoch haben wir uns schließlich für Thingspeak entschieden. Die Open-Source-Lösung erfordert für ernsthafte Anwendungen ein eigenes Hosting und damit umfassende Anpassungen. Das war uns erst zu viel, ständig hinzukommende Spezialanforderungen machten es aber nötig.

Immer einen Prototyp dabei: Jede längere Bahnfahrt wurde für Tests und Optimierungen der Software genutzt.

Nach einer holprigen Installationsphase wurden wir von der Funktionalität und Zuverlässigkeit angenehm überrascht. Thingspeak nutzt MySQL als Backend und ist als Rails-Anwendung konzipiert. So lassen sich leicht Zusatzmodule entwickeln – entweder als echte Module in der Thingspeak-Umgebung oder als Eigenentwicklung. In unserem Fall war zum Beispiel ein flexibles Mapping von Lampen auf die jeweiligen Sensoren nötig, das mit einer App gesteuert werden kann. Mit der eigenen Lösung war das mit ein paar Zeilen Code und einer trickreichen SQL-Abfrage möglich.