TU BRAUNSCHWEIG
| Carl-Friedrich-Gauß-Faculty | Computer Science
Informatikzentrum

Verteilte Energiemessung in drahtlosen Sensornetzen im Außeneinsatz

Student (anonymous, Login required)
Supervisor Dr. Ulf Kulau
Professor Prof. Dr.-Ing. Lars Wolf
Project potatonet
IBR Group CM (Prof. Wolf)
Type Master Thesis
Status finished
Start 09.06.2015

Einleitung

Durch das Absenken der Spannung bei höheren Temperaturen kann die Energieeffizienz drahtloser Sensorknoten erhöht werden. Um zu evaluieren, wie viel Energie in verschiedenen, realen Anwendungen eingespart werden kann, soll das Oszilloskop Kernspannung und Stromverbrauch des INGA über einen Zeitraum hinweg messen. Jeder Knoten besteht - wie die nachfolgende Abbildung zeigt - neben dem undervolting-fähigen INGA aus einem WRTnode, der genutzt wird, um die Programmierung und Überwachnung des INGA, sowie die Kommunikation mit dem zentralen Rechner bereitzustellen. Die dritte Komponente ist das in dieser Arbeit weiterzuentwickelnde Oszilloskop. Da der Fokus dieser Arbeit auf der Verteilung der Messung liegt, soll nicht ausschließlich punktuell an einem Knoten gemessen werden. Vielmehr soll das PotatoScope auf möglichst vielen Knoten verfügbar sein, sodass eine verteilte Energiemessung auf dem gesamten Sensornetz erfolgen kann. Hierdurch können Media Access Control (MAC), Routing oder auch die erwähnten Undervolting Protokolle im realen Einsatz evaluiert werden. Neben der Optimierung des Oszilloskops liegt demnach ein Schwerpunkt auf der Verwaltung und Ansteuerung der Oszilloskope über den WRTnode mit Hilfe des Linux-Rechners. Somit soll es für den Nutzer (Forscher) möglichst einfach sein, verschiedene Messungen zu verwalten. Um die Messungen der Knoten im Netz besser zuordnen und verwalten zu können, soll es möglich sein, die Knoten in Gruppen einzuteilen.

PotatoScope

Aufgabenstellung

Zur Messung von Strom- und Spannungswerten existiert bereits ein Prototyp des Oszilloskops, welcher in dieser Arbeit weiterentwickelt und auf geringe Kosten hin optimiert werden soll. Zunächst sind ein geeigneter Prozessor, sowie kostengünstige Bauteile - wie zum Beispiel Shunt-Widerstand und Referenzspannungsquelle - mit akzeptablen Temperaturkoeffizienten vorab zu evaluieren, um die geforderte maximale Abweichung von weniger als 5% über den gesamten Temperaturbereich zu erreichen (vgl. Kapitel 2). Da es möglich sein soll, das Oszilloskop auch außerhalb des vorgestellten Testbeds zu nutzen, ist eine USB-Schnittstelle bereitzustellen, mit der die Daten des Oszilloskops ausgelesen und die Betriebsmodi gesetzt werden können. Zum Zwischenspeichern der Daten soll eine SD-Karte dienen.

Da bei der Messung große Datenmengen anfallen, sollen diese optional komprimiert werden. Durch das gleichzeitige Messen zweier Kanäle (Stromverbrauch und Kernspannung) und die 12-bit Darstellung jeder Messgröße, werden bei einer Messung mit beispielsweise 500kHz 1.5MByte/Kanal pro Sekunde und je Knoten generiert. Bei zehn Knoten sind dies 15MB pro Sekunde. Hinzu kommen weitere Meta-Informationen wie Header-Daten oder ein Zeitstempel. Daher soll evaluiert werden, inwiefern die Daten komprimiert werden können. Wo dies geschieht ist dem Studenten überlassen. Denkbar ist eine Komprimierung auf dem Oszilloskop selbst, dem WRTnode bevor es an den zentralen Rechner übertragen wird, oder aber auf dem zentralen Rechner, der über die Daten aller Knoten verfügt. Anschließend sollen mehrere Oszilloskope gefertigt und die vorhandene Software angepasst bzw. weiterentwickelt werden, sodass zwei Kanäle gleichzeitig gemessen und die Daten sowohl auf der SD-Karte gespeichert, als auch an einen zentralen Server übermittelt werden können.

Um den Energieverbrauch Ereignissen und Codefragmenten besser zuordnen zu können, soll es eine Möglichkeit geben, vom INGA den Start/Stop einer Messung zu starten (Trigger), als auch Marker zu setzen, die einen Punkt in der Messung markieren. Die Software auf dem WRTnode ist so zu entwickeln, dass Signale zum Starten und Stoppen der Messung gesendet bzw. vom zentralen Rechner empfangen und weitergeleitet werden können. Folgende Modi sind auf dem Oszilloskop zu implementieren:

  • Trigger-Modus: Messung startet bei einem bestimmten Ereignis (Zeitpunkt oder durch das Auslösen eines Events).
  • Span-Modus: Messung eines Kanals für eine bestimmte Zeit
  • Single-Shot: Einmalige Messung eines Kanals

Da jeder Sensorknoten selbstständig misst und diese Daten zunächst nur lokal verfügbar sind, soll der zentrale Rechner eine wesentliche Rolle spielen. Zum Einen soll auf ihm eine zentrale Steuerungseinheit implementiert werden, mit der (automatisiert) verschiedene Arten von Messungen gestartet bzw. programmiert werden können. Folgende Aufgaben soll der zentrale Linux-Rechner übernehmen:

  • Manueller Start/Stop einer Messung auf ausgewählten Knoten oder einer Gruppe von Knoten
  • Automatischer Start/Stop einer Messung basierend auf vorher definierten Eigenschaften, wie zum Beispiel Außentemperatur oder eine Intervallmessung (zum Beispiel einmal pro Stunde)
  • Integration einer Messung (zum Beispiel zwischen zwei Markern)
  • Gruppierung von Knoten
  • Status darüber, ob ein Oszilloskop installiert ist
  • Erstellen von automatisierten Messungen
  • Download von Messungen oder Teilen der Messdaten
  • ggf. Generierung von Grafiken oder Erstellen einer einfachen Benutzeroberfläche

Um die Daten zentral zu sammeln ist eine Datenbank (zum Beispiel MySQL oder TinyDB) zu wählen. Neben den Daten von Messungen soll die Datenbank auch zur Verwaltung der automatischen Messungen dienen. Da jeder Knoten ein für sich abgeschlossenes System ist, ist zu prüfen, inwiefern eine zeitliche Synchronisation zwischen den Knoten bzw. den Messungen notwendig und umzusetzen ist.

Als Ansteuerung soll in erster Linie ein Konsolen-Programm dienen, dass eine Verbindung zur Kommunikation und Steuerung zum zentralen Linux-Rechner (zum Beispiel über eine SSH-Verbindung) aufbaut. So können über die Konsole auf dem eigenen Computer direkt Daten heruntergeladen oder neue Messungen programmiert werden. Dabei ist es für den Nutzer transparent ob dies auf einer Gruppe oder einem einzelnen Knoten geschieht. Abschließend soll das Oszilloskop evaluiert werden. Zu prüfen ist zum Beispiel die maximale Samplerate beim Messen und die Transferrate zum zentralen Linux-Rechner. Danach sollen verschiedene Szenarien wie zum Beispiel verschiedene Routing-Protokolle oder das Undervolting beispielhaft gemessen und bewertet werden.

Links


last changed 2016-01-27, 16:24 by Dr. Ulf Kulau
printemailtop