Hochschule Karlsruhe – Technik und Wirtschaft University of Applied Sciences Diplomarbeit Interdisziplinäre Referenzimplementierung eines drahtlosen Sensornetzwerkes zur Erfassung von Messdaten und deren simultanen Speicherung, Auswertung und Visualisierung in einem WebGIS Prof. Dr. rer. nat. Detlef Günther-Diringer vorgelegt von Uwe Riegger Matrikelnummer 014890 Studiengang Kartographie und Geomatik Bonn, im Juni 2006 Diplomarbeit für Herrn Uwe Riegger Thema: Interdisziplinäre Referenzimplementierung eines drahtlosen Sensornetzwerkes zur Erfassung von Messdaten und deren simultanen Speicherung, Auswertung und Visualisierung in einem WebGIS Bisher werden große Investitionen an Arbeitskraft und Finanzmitteln für die Datenerfassung bzw. -beschaffung verwendet und nicht an vorhandene Informationssysteme gekoppelt. Die zuständigen Personen müssen meistens in ihr Untersuchungsgebiet reisen, um die dort erfassten Daten auf einen externen Speicher zu sichern und anschließend in ein Informationssystem integrieren. Dabei kann es vorkommen, dass Sensoren oder Datenlogger ausfallen und die Anreise und der Zeitraum der Erfassung nutzlos waren. Eine Möglichkeit, den Kostenfaktor „Daten“ zu reduzieren und den gestiegenen Anforderungen an ein leistungsstarkes und modernes Informationsmanagement gerecht zu werden, bieten drahtlose Sensornetzwerke in Verbindung mit einem WebGIS. Die schnelle Entwicklung im Bereich der Halbleitertechnik und der Sensorik hat in den letzten Jahren zu einer zunehmenden Miniaturisierung geführt. Diese Technik wird in Form von drahtlosen Sensornetzwerken zusammengeschaltet, bei der sich hunderte bis tausende Sensoren spontan und autark miteinander vernetzen, Daten erfassen und diese Informationen zu einem zentralen Knoten transportieren. Von dort kann ein Uplink ins Internet erfolgen. Diese Möglichkeit, Datenpakete in einem Multihop genannten Verfahren energieeffizient an eine Datenbank zu übertragen, eröffnet der Datenakquisition für geographische Informationssysteme ungeahnte Möglichkeiten. Besonders internetgestützte, WebGIS genannte geographische Informationssysteme ermöglichen eine simultane Aufbereitung und Visualisierung der Daten, für einen weltweiten Informationsaustausch. Die Firma terrestris in Bonn beschäftigt sich mit WebGIS-Applikationen und Informationssystemen auf Basis von freier Software. Im Rahmen dieser Diplomarbeit soll nun ein Portal entwickelt werden, welches die Ankopplung eines drahtlosen Sensornetzwerkes an ein webbasiertes, geographisches Informationssystem ermöglicht. Der ganze Prozess der Erfassung, Speicherung, Aufbereitung und Visualisierung wird mit der Software C, PHP, HTML, CSS, UMN Mapserver, Mapbender, PostgreSQL/PostGIS, Scatterviewer, Ubuntu, Apache HTTP Server und GRASS realisiert. Bearbeitungszeit: 4 Monate Ausgabedatum: 15.02.06 Abgabetermin: 15.06.06 Prof. Dr. D. Günther-Diringer Erklärung II Erklärung Hiermit erkläre ich, die vorliegende Diplomarbeit selbstständig verfasst und nur die angegebenen Quellen und Hilfsmittel verwendet zu haben. Karlsruhe, den 06.06.2006 _________________________ (Uwe Riegger) Danksagung III Danksagung An dieser Stelle möchte ich all jenen danken, die durch ihre fachliche und persönliche Unterstützung zum Gelingen dieser Diplomarbeit beigetragen haben. Besonderer Dank gebührt meinen Eltern, die mir dieses Studium durch ihre Unterstützung ermöglicht haben. Bedanken möchte ich mich auch bei Herrn Prof. Dr. rer. nat. Detlef Günther-Diringer, für die Betreuung und Korrektur dieser Diplomarbeit. Trotz der Entfernung zwischen Karlsruhe und Bonn, wurde ich immer durch seine freundliche Hilfsbereitschaft unterstützt. Ebenso gilt mein Dank den Mitarbeitern der Firma terrestris, vor allem Hinrich Paulsen, Till Adams, Lars-Hendrick Schneider, Dennis Hellmich, Marc Jansen und Martin Geilhausen. Inhaltsverzeichnis IV Inhaltsverzeichnis Erklärung........................................................................................................................ II Danksagung................................................................................................................... III Inhaltsverzeichnis ........................................................................................................ IV Abkürzungsverzeichnis.................................................................................................VI Abbildungsverzeichnis..................................................................................................IX 1 Einleitung....................................................................................................................1 1.1 Zielsetzung............................................................................................................ 3 1.2 Struktur der Arbeit................................................................................................ 4 Teil I: Drahtlose Sensornetzwerke................................................................................... 5 2 Theoretische Grundlagen .......................................................................................10 2.1 Hardwarekomponenten ...................................................................................... 10 2.2 Netzwerktopologie.............................................................................................. 13 2.2.1 Multihop.......................................................................................................14 2.2.2 Gateways – Schnittstellen zu anderen Netzen ............................................ 15 2.3 Kommunikation und Protokolle..........................................................................16 2.3.1 Physikalische Schicht.................................................................................. 18 2.3.2 MAC Protokoll.............................................................................................18 2.3.2.1 Energieeffiziente und zuverlässige Steuerung der MAC Schicht........ 19 2.3.2.1.1 S-MAC .......................................................................................... 21 2.3.2.1.2 T-MAC ..........................................................................................24 2.3.3 Zeitsynchronisation......................................................................................27 3 ScatterWeb Plattform............................................................................................. 30 3.1 ScatterWeb Hardware......................................................................................... 31 3.1.1 MSP 430.......................................................................................................31 3.1.2 ESB ............................................................................................................. 32 3.1.3 eGate/WEB.................................................................................................. 33 3.2 Inbetriebnahme des ESB und eGate/WEB......................................................... 34 3.3 Software Architektur und Programmierung....................................................... 35 3.3.1 Firmware...................................................................................................... 36 3.3.1.1 ScatterWeb.Data................................................................................... 38 3.3.1.2 ScatterWeb.Message.............................................................................39 Inhaltsverzeichnis V 3.3.2 Anwendungssoftware...................................................................................40 3.3.2.1 ScatterWeb.Event................................................................................. 42 3.4 Die ScatterWeb Plattform im praktischen Einsatz............................................. 43 Teil II: Verarbeitung und Visualisierung von Messdaten aus einem drahtlosen Sensornetzwerk.......................................................................................................... 46 4 Bisherige Lösungsansätze........................................................................................47 4.1 COMMON-Sense Net.........................................................................................47 4.2 MoteLab.............................................................................................................. 48 5 SensorGIS................................................................................................................. 51 5.1 Systementwurf und Implementierung.................................................................51 5.1.1 Übersicht des Gesamtsystems......................................................................52 5.1.2 Originäre Datenerfassung............................................................................ 55 5.1.2.1 Aggregation .........................................................................................58 5.1.3 WebGIS........................................................................................................60 5.1.3.1 UMN Mapserver und Apache Webserver............................................ 60 5.1.3.1.1 Die MAP-Datei.............................................................................. 61 5.1.3.1.2 WMS.............................................................................................. 64 5.1.3.2 PostgreSQL mit PostGIS: Geographische Datenbank..........................66 5.1.3.2.1 Geodatenmodell in PostGIS...........................................................67 5.1.3.2.2 Sensordatenmodellierung...............................................................68 5.1.3.3 Client - Schnittstelle zum Benutzer...................................................... 70 5.1.3.3.1 Mapbender..................................................................................... 75 5.1.4 Kopplung von GRASS GIS und WebGIS .................................................. 77 6 Ausblick.................................................................................................................... 80 7 Fazit........................................................................................................................... 82 Literaturverzeichnis...................................................................................................... 83 Abkürzungsverzeichnis Abkürzungsverzeichnis ACK ACKnowledgement ASCII American Standard Code for Information Interchange CAP Contention Access Period CGI Common Gateway Interface CPU Central Processor Unit CSS Cascading Style Sheets CTS Clear To Send DBMS Datenbankmanagementsystem DS Data Send ECR Embedded Chip Radio ESB Embedded Sensor Board EPSG European Petroluem Survey Group FRTS Future-Ready-To-Send GIS Geographisches Informationssystem GIF Graphics Interchange Format GPRS General Paket Radio Service GRASS Geographic Resources Analysis Support System GSM Global System for Mobile Communications GUI Graphic User Interface HTML Hypertext Markup Language HTTP HyperText Transfer Protocol IDSW Inverse distance weighted average IP Internet Protocol VI Abkürzungsverzeichnis ISM Industrial, Scientific and Medical ISO International Organization for Standardization JPG Joint Photographic Group JTAG Joint Test Action Group MAC Medium Access Control MD5 Message Digest Algorithm 5 MMS Multimedia Messaging Service MSP Mixed Signal Processor NAC Network Allocation Vector OGC Open Geospatial Consortium ORDBMS Objektrelationales Datenbankmanagementsystem OSI Open Systems Interconnection PDA Personal Digital Assistant PHP rekursives Akronym für PHP: Hypertext Preprocessor PNG Portable Network Graphics RAM Random Access Memory RF Radio-Frequenz ROM Read-Only Memory RSM Read Sensor Mask RTS Request To Send RTT Round Trip Time S-MAC Sensor Medium Access Control SSM Set Sensor Mask SQL Structured Query Language SVG Scalable Vector Graphics VII Abkürzungsverzeichnis TDMA Time Division Multiple Access T-MAC Timeout Medium Access Control TCP Transmission Control Protocol TDMA Time Division Multiple Access UMN University of Minnesota URL Uniform Resource Locator WebGIS Webbasiertes, geographisches Informationssystem WKB Well-Known-Binary WKT Well-Kown Text WLAN Wireless Local Area Network WMS Web Map Service WPAN Wireless Personal Area Networks XML Extensible Markup Language VIII Abbildungsverzeichnis IX Abbildungsverzeichnis Abb. 1: Die Grafik zeigt beispielhaft ein drahtloses Sensornetzwerk welches mit unterschiedlichen Sensoren ausgestattet ist und durch Kommunikation im Netzwerk Datenpakete an eine Basisstation mit Anschluss an das Internet sendet........................3 Abb. 2: Diverse Sensorknoten .......................................................................................5 Links: Smart Dust von der Universität Berkeley, USA. Quelle: [23]. Mitte: BTnode von der Universität Zürich. Quelle: [24]. Rechts: ESB (Embedded Sensor Board) der Firma ScatterWeb, Berlin. Quelle: [25]. Abb. 3: Drahtloses Sensornetzwerk zur Überwachung des marinen Ökosystems der Ostsee (basierend auf [5])............................................................................................... 8 Abb. 4: Überblick über die fünf Hauptkomponenten eines Sensorknoten. .................. 9 Abb. 5: Schematische Darstellung einer Baum- und Sterntopologie...........................12 Abb. 6: Weg eines Datenpaket in einem Multihop Netzwerk.................................... 13 Abb. 7: Multihop.......................................................................................................... 14 Links: Die grüne Linie ist der neuer Weg eines Datenpakets, nachdem ein Sensorknoten ausgefallen ist und somit der alte Weg (blaue Linie) hinfällig ist. Rechts: Umgehung eines Hindernisses mit Multihop. Abb. 8: Ein drahtloses Sensornetzwerk mit einem Gateway, welcher den Austausch mit externen Systemen erlaubt......................................................................................14 Abb. 9: OSI-Modell (basierend auf [50])....................................................................15 Abb. 10: Grundprinzip des S-MAC............................................................................. 19 Abb. 11: Synchronisierte Schlaf- und Wachphasen von drei Sensorknoten............... 20 Abb. 12: Zwei virtuelle Cluster mit jeweils einem Synchronizer und einem Randknoten................................................................................................................... 20 Abb. 13: RTS/CTS-Schema und NAV........................................................................ 21 Abb. 14: Unterschiedliche Wachmodi bei T-MAC und S-MAC, wenn ..................... 22 keine RTS/CTS Nachricht empfangen oder gesendet wird. ........................................22 Abb. 15: Knoten C kann Knoten D nicht in derselben Wachperiode erreichen..........23 Abb. 16: Knoten C sendet ein FRTS zu Knoten D und speichert wann er wieder aufwachen muss. Hierbei kollidiert die FRTS mit der DS-Nachricht, welche nur ein Dummy ist..................................................................................................................... 24 Abbildungsverzeichnis X Abb. 17: Ermittlung der Himmelrichtung eines akustischen Signals anhand der Ankunftszeiten des Signals und der geographischen Position der Sensorknoten (basierend auf [50]).......................................................................................................28 Abb. 18: Berechnung der Phasenverschiebung (basierend auf [52])..........................28 Abb. 19: Verarbeitungsablauf des MSP 430 (basierend auf [28])...............................32 Abb. 20: ESB (Embedded Sensor Board) der Firma ScatterWeb. Quelle: [25].......... 33 Abb. 21: Datenstrom zwischen einem drahtlosen Sensornetzwerk und dem Internet..... 34 Abb. 22: Trennung des Programmcode in die Bereiche Anwendung und Firmware (System). Als Schnittstelle fungieren Callback-Funktionen........................................ 35 Abb. 23: Eingabe-Konsole von ScatterViewer............................................................ 38 Abb. 24: Schematischer Aufbau der ScatterWeb Software v2.3................................. 40 Abb. 25: Schematischer Aufbau eines drahtlosen Sensornetzwerkes mit Verbindung zu einem PC über das Internet und Detektierung einer Bewegung mit anschließendem Versand via Multihop zum Basisknoten (eGate/WEB)................................................43 Abb. 26: Verarbeitung und Visualisierung von Messdaten aus einem drahtlosen Sensornetzwerk............................................................................................................. 43 Abb. 27: Verbindungsgraph der Sensorknoten. Quelle: [10]...................................... 45 Abb. 28: In diesem Ausschnitt ist die Einstellung der Sendeleistung der Sensorknoten möglich [10]. ................................................................................................................46 Abb. 29: Grundriss des EECS und Darstellung der installierten Sensorknoten und ihrer Verbindungsqualität zu anderen Sensorknoten. Quelle: [36]. ............................ 47 Abb. 30: Belegungsplan des MoteLab. Quelle: [47]................................................... 48 Abb. 31: Schematische Darstellung des Gesamtsystem.............................................. 50 Abb. 32: Verwendete Software zur Umsetzung des Gesamtsystem. .......................... 52 Abb. 33: Zustände von drei Nachrichten aus einem drahtlosen Sensornetzwerk zum PHP-Programm. ........................................................................................................... 54 Abb. 34: Algorithmus zur Erfassung von Temperaturdaten in kontinuierlichen Zeitabständen, wobei Temperaturmessung in unkontinuierlichen Zeitabständen aus dem drahtlosen Sensornetzwerk gesendet werden können...........................................56 Abb. 35: einfache WebGIS Client Server Architektur..............................................57 Abb. 36: Ebenenhierarchie der MAP-Datei................................................................. 58 Abb. 37: Rasterbild mit Grundriss und Sensorknoten nach einem getMap-Aufruf.... 62 Abb. 38: Sensordatenmodell. ...................................................................................... 64 Abbildungsverzeichnis XI Abb. 39: ER-Modell von SensorGIS............................................................................65 Abb. 40 a/b/c/d/e: Arbeitswerkzeuge zur Exploration des Informationsraumes........ 66 Abb. 41: Übersichtskarte mit roten Rechteck, dass den Darstellungsbereich in der Hauptkarte markiert...................................................................................................... 66 Abb. 42a: Button für die Funktionalität Details-on-Demand...................................... 67 Abb. 42b: Popup-Fenster mit Metadaten zum Sensorknoten mit der ID 1..................67 Abb. 43: Filterfunktion der Ebenen............................................................................. 68 Abb. 44: Rasterbild der Temperaturverteilung in einem Raum durch Interpolation aus vier Messungen. .......................................................................................................... 69 Abb. 45: Thematische Karte der Temperaturverteilung in einem Raum mit Angabe der minimalen und maximalen Temperatur durch eine Legende................................. 69 Abb. 46: Temperaturdiagramm eines Sensorknotens.................................................. 70 Abb. 47: Darstellung der aktuellen Temperaturmessungen.........................................70 Abb. 48: Graphische Oberfläche des Mapbenders zur Verwaltung der einzusetzenden Werkzeuge in SensorGIS. .......................................................................................... 71 Abb. 49: Frontend von SensorGIS. Erstellt mit Mapbender........................................70 Abb. 50: Schematische Darstellung des internen Ablauf zur Erstellung einer thematischen Karte....................................................................................................... 73 Abb. 51: Durch eine Verschneidung der Temperaturkarte mit dem Grundriss würde der schwarz gekennzeichnete Bereich entfallen. Der schwarze Pfeil stellt einen Gradienten von kalt nach warm dar.............................................................................. 75 Einleitung 1 1 Einleitung Einleitung Bei dem Aufbau eines Geographischen Informationssystems (GIS) werden die größten Ressourcen an Arbeitskraft und Finanzmitteln in die Datenerfassung bzw. -beschaffung investiert und lassen die Daten zum teuersten Gut eines Informationssystems werden [1,2,3]. Bisher sind die meisten Datenerfassungsverfahren nicht an vorhandene Informationssysteme gekoppelt. Die zuständigen Personen müssen oftmals in ihr Untersuchungsgebiet reisen, um die dort erfassten Daten auf einen externen Speicher zu sichern. Es kann dabei vorkommen, dass Sensoren oder Datenlogger ausfallen und somit die Anreise und der Zeitraum der Erfassung nutzlos waren. Dabei sind herkömmliche Datenerfassungsnetzwerke, die im Gelände installiert und vor Ort gewartet werden müssen, aufgrund mangelnder Flexibilität und hoher Kosten insgesamt recht schwerfällig. Des Weiteren handelt es sich hierbei oft um Expertensysteme, die nur von Spezialisten installiert und in Betrieb genommen werden können. Aufgrund der oben geschilderten Unflexibilität ist es auch schwer, spontane Messungen vorzunehmen, wie dies z.B. für eine Temperaturmessung bei einem Waldbrand oder der Vibrationsermittlung bei einem Bauvorhaben erforderlich wäre. [5] Die Datengrundlage von geographischen Informationssystemen ist in den meisten Fällen relativ statisch. D.h., die Datengrundlagen sind isoliert und werden durch manuelle Eingaben erweitert. Für geographische Phänomene wie z.B. administrative Grenzen, die sich nicht häufig ändern, ist diese Herangehensweise vollkommen ausreichend. Jedoch für Geodaten, die einer stärkeren Dynamik unterliegen, wie z.B. Temperatur, Wasserstände, Erschütterungen und Sonneneinstrahlung ist eine andere Herangehensweise sinnvoller. [4] Eine Möglichkeit, den Kostenfaktor „Daten“ zu reduzieren und den gestiegenen Anforderungen an ein leistungsstarkes, dynamisches und modernes Informationsmanagement gerecht zu werden, bieten drahtlose Sensornetzwerke. Drahtlose Sensornetzwerke sind ein neuer Typus von geographischen Informationssystemen zur tiefgreifenden, kontinuierlichen Erfassung und Überwachung der Umwelt. Die unterschiedlich erfassten Informationen eines drahtlosen Sensornetzwerkes können, nachdem sie zu einem Endknoten geleitet wurden, mittels passenden Schnittstellen in ein Einleitung 2 Datenbankmanagementsystem (DBMS) via Internet, Global System for Mobile Communications (GSM), General Paket Radio Service (GPRS), Funk oder einem anderen Kommunikationsträger überführt werden. Da ein drahtloses Sensornetzwerk aus miniaturisierten Computern besteht, lassen Sie alle Möglichkeiten der Kommunikation zu und bieten somit dem Anwender die Möglichkeit, interaktiv den Prozess des „Data-Workflows“ zu beeinflussen. Es können Ergebnisse der Datenexploration wieder direkt in das System in Form einer Justierung des Grenzwertes eines Sensors, der z.B. zur Erfassung der Feuchtigkeit in einem Untersuchungsgebiet dient, zurückgeführt werden. Momentan sind drahtlose Sensornetzwerke noch theoretisches Forschungsgebiet an vielen Universitäten weltweit. Es gibt zwar einige kommerzielle Produkte, jedoch werden sie meist nur zu Demonstrations- und Forschungszwecken eingesetzt. Bis zum Zeitpunkt der Erstellung dieser Diplomarbeit im Juni 2006 gibt es kein kommerzielles Sensornetz welches großflächig installiert wurde und praktisch eingesetzt werden kann. Des Weiteren sind kaum Applikationen vorhanden, welche die erfassten Daten aus drahtlosen Sensornetzwerken effektiv verarbeiten und visualisieren können. Da die Forschungsarbeiten primär an Fakultäten der Informatik getätigt werden und Applikationen zur Visualisierung der erfassten Daten nicht im Vordergrund stehen, soll im Rahmen dieser Diplomarbeit ein interdisziplinärer Ansatz aus der Informatik und den Geowissenschaften aufgezeigt werden. Dabei werden die theoretischen Grundlagen von drahtlosen Sensornetzwerken beschrieben und in direkten Zusammenhang mit webbasierten, geographischen Informationssystemen gebracht. Einleitung 3 Abb. 1: Die Grafik zeigt beispielhaft ein drahtloses Sensornetzwerk, welches mit unterschiedlichen Sensoren ausgestattet ist und durch Kommunikation im Netzwerk Datenpakete an eine Basisstation mit Anschluss an das Internet sendet. 1.1 Zielsetzung Zielsetzung Die vorliegende Arbeit soll die theoretischen Grundlagen von drahtlosen Sensornetzwerken erläutern. Dazu gehören die Aspekte der zugrundeliegenden Hardwarekomponenten, sowie die softwaretechnischen Implementierungen, die für einen funktionalen Betrieb nötig sind. Dabei soll anhand von Kommunikationsprotokollen eine gewisse Art an künstlicher Intelligenz von drahtlosen Sensornetzwerken dargestellt werden. Des Weiteren wurde ein drahtloses Sensornetzwerk als sogenanntes Starter-Kit der Firma ScatterWeb aus Berlin erworben, um auf den theoretischen Grundlagen praktische Erfahrungen im Umgang mit der Installation und der Funktionsweise sammeln zu können. Zielsetzung 4 Darüber hinaus soll eine Plattform entwickelt werden, die es ermöglicht, simultan Daten aus einem drahtlosen Sensornetzwerk zu erfassen und diese über das Internet visualisieren zu können. Die Serverkomponenten des Systems sollen nur mit Hilfe von Open-Source Produkten entwickelt werden und die Datenspeicherung, der Datenaustausch und die visuelle Repräsentation soll den Spezifikationen des OGC (Open Geospatial Consortium) entsprechen. Dazu soll ein Client konzipiert und implementiert werden, der alle Möglichkeiten der visuellen Datenexploration zur Verfügung stellt, um aus den Daten des drahtlosen Sensornetzwerkes Informationen ableiten zu können. 1.2 Struktur der Arbeit Die Arbeit ist in zwei Teile gegliedert : Erster Teil Im zweiten Kapitel werden zunächst die Grundlagen von drahtlosen Sensornetzwerken dargestellt. Dazu gehört die Beschreibung der zugrundeliegenden Hardware, der Netzwerkarchitektur und die interne Kommunikation im Netzwerk. Kapitel 3 widmet sich der funktionalen Erläuterung eines drahtlosen Sensornetzwerkes der Firma ScatterWeb. Neben einer Beschreibung des Aufbaus der Hardware und der ScatterWeb Systemsoftware werden praktische Erfahrungen mit dem Umgang der Hard- und Software aufgezeigt. Zweiter Teil Kapitel 4 zeigt bisher entwickelte webbasierte Applikationen, die zur Visualisierung von Messdaten aus drahtlosen Sensornetzwerken verwendet werden. Das Kapitel SensorGIS konzentriert sich auf die praktische Umsetzung eines webbasierten, geographischen Informationssystems und deren Anbindung an das drahtlose Sensornetzwerk der Firma ScatterWeb. Zum Abschluss beschreibt Kapitel 6 einen Ausblick und Kapitel 7 ein Fazit des Erreichten. Drahtlose Sensornetzwerke Drahtlose Sensornetzwerke 5 Teil I: Drahtlose Sensornetzwerke „Drahtlose Sensornetzwerke werden Anwendungen zur Umweltüberwachung, Haustechnik und Logistik revolutionieren“ [29]. Die Entwicklung im Bereich der Halbleitertechnik und der Sensorik hat in den letzten Jahren zu einer zunehmenden Miniaturisierung der notwendigen Hardware von drahtlosen Sensornetzwerken geführt. Kleinstcomputer, sogenannte Embedded Systems, sind ausgestattet mit einem Controller, einem Speicher und einer Sende- und Empfangseinheit. Als Energieversorgung kommen Batterien oder andere Quellen in Frage, die Energie aus der Umwelt des Sensors gewinnen können (Solarzellen, Thermoelemente, Piezokristalle, Dynamos). [5] Die Basishardware kann mit unterschiedlichsten Sensoren ausgestattet werden, z.B. Sensoren zur Messung von Temperatur, Vibration, Bewegung, Infrarot, Feuchtigkeit, u.s.w.. Grundsätzlich lassen sich mit der Basishardware alle Sensoren koppeln, die über ein elektronisches Ausgangssignal verfügen. Durch die Kopplung der Basishardware und der Sensorik enstehen Sensorknoten. Die heutige Generation drahtloser Sensorknoten gibt es von der Größe eines Schuhkartons bis hin zu kleinsten Sensorknoten, sogenannten Smart Dust Sensoren, mit Abmessungen im Millimeterbereich. Die Zahl der Sensorknoten kann in drahtlosen Sensornetzwerken zwischen einem halben Dutzend und mehreren tausend Knoten variieren. Vor diesem Hintergrund mehrerer tausend Sensorknoten in einem Netzwerk besteht die Forderung nach kleinen und billigen Sensorknoten. In Abbildung 2 sind einige Sensorknoten abgebildet. Drahtlose Sensornetzwerke 6 Drahtlose Sensornetzwerke Abb. 2: Links: Smart Dust von der Universität Berkeley, USA [23]. Mitte: BTnode von der ETH Zürich [24]. Rechts: ESB (Embedded Sensor Board) von der Firma Scatterweb, Berlin [25]. Vorteile von drahtlosen Sensornetzwerken Mit Hilfe von Routing- und Aggregationsalgorithmen gestattet das Sensornetz eine automatische, dynamische, dezentrale und flächendeckende Beobachtung von verteilten, schwer zugänglichen oder bewegten Phänomenen. Drahtlose Netzwerke bieten eine Vielzahl an Vorteilen gegenüber traditionellen, zentralisierten Vernetzungsansätzen. Eine verbesserte Energieeffizienz bei der Kommunikation mit anderen Sensorknoten ist durch den Einsatz der Multihop-Topologie möglich. Im Gegensatz zu Point-to-Point- Netzwerken, in welchen jeder Knoten direkten Kontakt zum Host benötigt und die Sendeleistung sehr hoch ist, können in Multihop-Netzwerken die Daten über andere Knoten zum Host geleitet werden. Sie kommen somit mit einer wesentlich geringeren Energiezufuhr aus. Ferner können während der MultihopÜbertragung zusätzliche Informationen von anderen Knoten verarbeitet und mit in die Übertragungen integriert werden.„Dabei wird aus einer relativ großen Menge von Rohdaten auf niedrigem Informationsniveau (beispielsweise eine Menge von Sichtungen eines Objektes durch verschiedene Sensorknoten) eine eher kleine Datenmenge auf relativ hohem Informationsniveau (beispielsweise die Durchschnittsgeschwindigkeit und Bewegungsrichtung des beobachteten Objektes) generiert“ [30]. Über die Tatsache hinaus, dass Daten simultan erfasst, gespeichert und ausgegeben werden, Drahtlose Sensornetzwerke 7 sind nach Bollmann & Koch [54] die unterschiedlichen Kriterien einer hohen Datenqualität erfüllt: Die Daten liegen immer aktuell vor und können somit in Echtzeit über das Internet präsentiert werden. Durch die Topologie und Algorithmen des Netzwerkes wird eine hohe Fehlerfreiheit des Netzwerkes und die Vollständigkeit der Daten gewährleistet. Aufgrund der Möglichkeit, in Interaktion mit den Sensoren zu treten, kann der Benutzer die räumliche und zeitliche Auflösung der Datenerfassung editieren und somit Einfluss auf das Datenmodell nehmen. Zudem gewährleisten drahtlose Sensornetzwerke eine Verbesserung der Skalierbarkeit, sowie der Ausfallsicherheit. Ein dezentrales System ist aufgrund der Redundanz des Netzwerkes weniger anfällig für den Ausfall von Sensorknoten. Dezentrale Algorithmen sind im praktischen Einsatz leicht zu skalieren und wahrscheinlich der einzige Weg, um in großen Arealen flächendeckend messen zu können. [52] Drahtlose Sensornetzwerke im praktischen Einsatz Aktuell vollzieht sich ein Paradigmenwechsel in der Art der Datenerfassung von physischen Parametern. Erfolgte früher noch die originäre Datenerfassung durch schätzen, zählen oder messen direkt in der Realität, so wird dies heutzutage in vielen Bereichen des alltäglichen Lebens durch den Einsatz entsprechender Sensoren automatisch durchgeführt. Hierzu zählen Sensoren an Autobahnen, die die Verkehrsdichte oder die Sichtweite messen und diese Werte an eine Zentrale weitergeben. Auch Straßenlaternen werden, in Abhängigkeit vom Tageslicht, automatisiert an- und ausgeschaltet. Diese Liste ließe sich beliebig fortsetzen. Drahtlose Sensornetzwerke sind ebenfalls darauf ausgelegt, die oben beschriebenen Messungen durchzuführen, gehen aber in ihren Anwendungsfeldern noch weit darüber hinaus. Die folgende Aufzählung stellt einen Ausschnitt der denkbaren Einsatzfelder für drahtlose Sensornetzwerke dar: Drahtlose Sensornetzwerke - Umweltmonitoring (z.B. Verkehr, Klimatologie, Geomorphologie, etc.) - Katastrophenschutz (z.B. Feuer, Hochwasser, Vulkanismus, etc.) Drahtlose Sensornetzwerke 8 - Umweltmonitoring (z.B. Verkehr, Klimatologie, Geomorphologie, etc.) - Gebäudeüberwachung (z.B. Sicherheitssysteme, Gebäudeklima, etc.) - Landwirtschaft (z.B. Bodenfeuchtigkeit, Frostgefahr, etc.) - Militär (z.B. Objektüberwachung, Gefechtsfelderkundung, etc.) - Trackingsysteme (z.B. Tiere, Container, Fahrzeuge, Personen, etc.) Speziell in den USA wird seit einigen Jahren mit drahtlosen Sensornetzwerken experimentiert. Die Anwendungen reichen von einer klimatologischen Überwachung und Steuerung von Beleuchtungs- und Bewässerungssystemen eines botanischen Gartens [26] bis hin zur Beobachtung von Vögeln und deren Verhalten auf einer Insel [27]. Aber auch in Europa wird seit einigen Jahren intensiv mit drahtlosen Sensornetzwerken experimentiert. Beispielgebend ist ein drahtloses Sensornetzwerk zur Überwachung der Ostsee. An einer Flussmündung zur Ostsee wurde im Frühjahr 2005 ein drahtloses Sensornetzwerk zur Messung der Temperatur installiert. Für Meeresforscher sind das wichtige Informationen, um das marine Ökosystem besser zu verstehen und mögliche Aussagen über zukünftige Veränderungen treffen zu können. Traditionelle Messungen, entweder direkt aus dem Boot oder mittels Datenlogger, sollten nicht angewandt werden, da die Daten direkt nach der Messung zur Verfügung stehen sollten und eine Möglichkeit für eine dauerhafte Installation gefunden werden sollte. Die Lösung war die Konzeption eines drahtlosen Sensornetzwerkes, welches aus einer Zahl an Sensorknoten besteht, die in konstanten Abständen an einem Kabel befestigt sind. Durch eine Boje an der Wasseroberfläche und einem Endgewicht werden die Sensorknoten senkrecht in der Schwebe gehalten. Mit mehreren solcher Sensorketten ist es nun möglich ein dreidimensionales Bild der Temperaturverteilung der See zu interpolieren. Die Sensorknoten senden ihre erfassten Temperaturmessungen zur Boje, welche per Multihop Verbindung zu anderen Bojen hat. Hierbei ist eine Boje mit einem GPRS-Modul ausgestattet um die erfassen Daten des gesamten Netztes zum Festland zu übertragen. [5] Drahtlose Sensornetzwerke 9 Abb. 3: Drahtloses Sensornetzwerk zur Überwachung des marinen Ökosystems der Ostsee (basierend auf [5]). Theoretische Grundlagen Theoretische Grundlagen 10 Theoretische Grundlagen 2 Theoretische Grundlagen Dieses Kapitel beschäftigt sich mit den theoretischen Grundlagen von drahtlosen Sensornetzwerken. Dabei werden die primären Elemente der Hard- und Software erläutert, die zu einem funktionalen Betrieb eines drahtlosen Sensornetzwerkes benötigt werden. 2.1 Hardwarekomponenten (Das folgende Kapitel 2.1 und die darin enthaltene Grafik basieren auf [29]) Hardwarekomponenten Die Auswahl passender Hardwarekomponenten für drahtlose Sensornetzwerke ist abhängig von den Anforderungen und Bedingungen des gewählten Einsatzgebietes. Dabei muss ein Kompromiss aus den Faktoren Größe, Kosten und Energieverbrauch gefunden werden. Bei einem Einsatz in einem schwer zugänglichen Gebiet ist die Größe meist nur sekundär, jedoch sollte der Energieverbrauch gering sein oder wenn möglich, sollten die Sensorknoten mit erneuerbaren Energieträgern (Solarzellen) ausgestattet werden, damit eine Wartung der Batterien nicht mehr nötig ist. Die Grundelemente eines Sensorknoten umfassen fünf Komponenten (Abb. 4): Controller Der Controller ist der Kern eines drahtlosen Sensornetzwerkes. Er erfasst die Daten der Sensoren oder anderer Sensorknoten, verarbeitet diese und entscheidet ob und wann diese gesendet werden sollen. Dabei werden unterschiedliche Prozesse gestartet, welche z.B. Kommunikationsprotokolle verarbeiten oder erfasste Daten zum Datenspeicher oder zur Sendeeinheit transferieren. Solch unterschiedliche Datenverarbeitungsprozessen können von einer Vielzahl an Controllern durchgeführt werden, die sich in der Systemarchitektur, der Flexibilität, der Energieeffizienz und den Kosten unterscheiden. Eine Möglichkeit wäre, einen allgemein verwendbaren Prozessor, wie er in den meisten Desktop Computern vorhanden ist, zu nutzen. Diese Prozessoren haben jedoch einen exzessiven Energieverbrauch. Eine bessere Möglichkeit bieten embedded systems. Wie der Name bereits andeutet, haben embedded systems die Eigenschaften mehrere Komponenten auf einem einzigen Chip zu vereinigen. Diese Hardwarekomponenten 11 integrierten Schaltkreise setzen sich dann aus einer CPU (Central Processor Unit), einem Programmspeicher (auf ROM- oder Flash-Basis) und dem Arbeitsspeicher zusammen. Sie werden herkömmlich als Mikrocontroller bezeichnet [49]. Weitere Merkmale, weshalb Mikrocontroller bei drahtlosen Sensornetzwerken eingesetzt werden, sind ihre hohe Flexibilität zur Anbindung an andere Bauteile (Sensoren) und ihre Programmierbarkeit bis auf die niedrigsten Schichten des OSI-Modell (Open Systems Interconnection Reference Model). Zur Reduzierung des Energieverbrauchs haben sie die Möglichkeit sich in einen Energiesparmodus zu versetzen und benötigen in diesem Zustand nur einen Bruchteil ihres normalen Energiebedarfs. Speicher Der Speicher setzt sich aus zwei Bereichen zusammen. Der Random Access Memory (RAM) dient zur Speicherung von temporären Messdaten der Sensoren und fungiert als Zwischenspeicher von Datenpaketen anderer Sensorknoten. Der RAM ist ein sehr schneller Speicher mit kurzen Zugriffszeiten, jedoch verliert er seine Daten wenn die Stromversorgung ausfällt. Zur Speicherung von Applikationen wird deshalb der Read-Only Memory (ROM) oder ein Flash Speicher verwendet. Selbst bei Stromverlust bleiben die Daten, wie bei einer Festplatte, erhalten. Transceiver Der Transceiver dient zum Datenaustausch zwischen den Sensorknoten und ist eine Kombination aus einem transmitter (Sender) und einem receiver (Empfänger). Einer seiner primären Aufgaben besteht darin, die Daten des Mikrocontroller in Radiowellen zu konvertieren und zu versenden. Im Empfangsmodus wiederum werden die erhaltenen Informationen demoduliert und zum Mikrocontroller geleitet. Sensor Durch den Anschluss eines Sensors oder mehrerer Sensoren wird dem Sensorknoten seine eigentliche Aufgabe zugewiesen. Denn die Intention eines drahtlosen Sensornetzwerk ist nicht Berechnungen anzustellen oder zu kommunizieren, sondern vielmehr die Umgebung wahrzunehmen. Sensoren können dabei in drei Gruppen kategorisiert werden: Hardwarekomponenten 12 Passive, ungerichtete Sensoren Diese Sensoren messen eine physikalische Größe in der unmittelbaren Umgebung des Sensorknotens ohne aktiv die Umwelt zu beeinflussen. Beispiele solcher Sensoren messen Temperatur, Vibration, Bewegung, Geräusche, Feuchtigkeit und Luftdruck. Passive, gerichtete Sensoren Diese Sensoren sind ebenfalls passiv. Sie haben jedoch während der Messung eine definierte Richtung. Ein typisches Beispiel hierfür ist eine Kamera. Aktive Sensoren Diese letzte Gruppe von Sensoren untersuchen ihre Umgebung durch aktiven Einsatz von Radiowellen, Radar, seismischen Stößen, etc.. Energieversorgung Netzwerk Topologie Die Energieversorgung ist bei den meisten drahtlosen Sensornetzwerken eine kritische Systemkomponente. Denn die Energie wird üblicherweise durch Batterien bereitgestellt, und ist somit einer mittelbaren Lebensdauer unterworfen, sofern die Batterien nicht extern aufgeladen werden. Für eine grobe Orientierung, eine normale AA Batterie speichert zwischen 2,2 – 2,5 Ah bei 1,5 V. Die daraus sich ergebende Lebensdauer eines Sensorknotens kann hier nicht angeführt werden, da die Sensorknoten einer fast nicht zu berechnenden Dynamik der Umwelt unterworfen sind und eine Abhängigkeit vom verwendeten Kommunikationsprotokolls vorhanden ist. Abb. 4: Überblick über die fünf Hauptkomponenten eines Sensorknoten (basierend auf [29]). Netzwerk Topologie 13 2.2 Netzwerktopologie Netzwerk Topologie Die Netzwerktopologie gibt die Struktur der Verbindungen zwischen den einzelnen Sensorknoten wieder und bildet damit ein Netzwerk. Der Fortschritt von Netzwerktopologien in drahtgebundenen Netzwerken diente auch der Entwicklung passender Topologien für drahtlose Sensornetzwerke. Hierbei stellt sich jedoch die Frage, inwieweit traditionelle Topologien für dieses neue Kommunikationsmedium geeignet sind. Denn zusätzliche Anforderungen wie hohe Interoperabilität, niedriger Energiebedarf, hohe Flexibilität und einfache Skalierbarkeit, erhöhen die Komplexität der nötigen Topologie massiv. Am Anfang der Entwicklung nutzte man einfache Topologien wie Stern- oder Baumtopologien [31]. Der Vorteil hierbei ist die zentrale Netzwerkadministration und eine zentrale Vergabe von Adressen [48]. Der Nachteil besteht darin, dass die Sensorknoten immer direkten Kontakt zur einer Basisstation haben müssen, was einen hohen Energieverbrauch zur Folge hat. Auch eine Skalierung des Netzes setzt immer eine Verbindung des Sensorknoten zur Basisstation voraus. Durch den Ausfall der Basisstation erliegt der Netzverkehr eines Clusters oder der des gesamten Netzes, wenn die Basisstation mit Verbindung an das äußere Netz betroffen ist. Die Lösung hierfür wäre eine Architektur, die sich die Fähigkeiten der bidirektionalen Kommunikation von Sensorknoten zu Nutze macht, und diese bei der Datenübertagung eingesetzt werden kann. Abb. 5: Schematische Darstellung einer Baum- und Sterntopologie. Netzwerk Topologie 14 2.2.1 Multihop Netzwerk Topologie Eine Architektur bei der jeder Sensorknoten als Router eingesetzt werden kann gleicht einem vermaschten Netz und basiert somit auf der WebTopologie. Jeder Sensorknoten kann mit anderen Sensorknoten verbunden sein und der Ausfall eines einzelnen Knotens hat eine geringe Konsequenz für den Datenverkehr im Netzwerk. Das Sprichwort „viele Wege führen nach Rom“ ist hierfür sehr passend. Bei einem Ausfall eines Sensorknotens, welcher Datenpakete anderer Sensorknoten übermittelt, werden daraufhin die Datenpakete über andere Sensorknoten zum Host geleitet. Diese Technologie, Abb. 6: Weg eines Datenpaket in einem Multihop Netzwerk. Datenpakete über mehrere Sensorknoten senden zu können, wird als Multihop bezeichnet (Abb. 6). Durch Anwendung dieser Technologie ergibt sich nicht nur der Vorteil einer hohen Ausfallsicherheit (Abb. 7), vielmehr kommen die Sensorknoten, in einem eng vermaschten Netz, mit einer weitaus geringeren Sendeleistung aus, da sie keine direkte Verbindung zur Basisstation haben müssen. Auch etwaige Hindernisse können durch Multihop umgangen werden, wie Abbildung 7 zeigt. Somit ist auch eine einfache Skalierbarkeit des Netzes gewährleistet. Neue Sensorknoten müssen nur eine Verbindung zu einem weiteren Sensorknoten aufweisen. Daher ist das Netzwerk theoretisch beliebig erweiterbar, ohne zusätzlich weitere Basisstationen installieren zu müssen, da im Grunde jeder Sensorknoten schon eine Basisstation darstellt, welche Datenpakte entgegennehmen und weiterleiten kann. Netzwerk Topologie 15 Abb. 7: Links: Die grüne Linie ist der neue Weg eines Datenpakets, nachdem ein Sensorknoten ausgefallen ist und somit der alte Weg (blaue Linie) hinfällig ist. Rechts: Umgehung eines Hindernisses mit Multihop. 2.2.2 Gateways – Schnittstellen zu anderen Netzen Drahtlose Sensornetzwerke sollten in der Lage sein, Informationen mit anderen Systemen auszutauschen. Beispielsweise konfiguriert ein Nutzer mit einem PDA ein drahtloses Netzwerk vor Ort oder ein entfernter Nutzer mit Zugang zum Internet informiert sich über die aktuellsten Temperaturwerte der Sensorknoten [29]. Zur Transformation der Daten zwischen diesen Netzwerken müssen Protokollumsetzer, sogenannte Gateways verwendet werden [20]. Sie sind zur Kopplung von Sensornetzwerken mit anderen Kommunikationsnetzen (Internet, Intranet, GSM, GPRS) einsetzbar und fungieren als letztes Glied in einem drahtlosen Sensornetzwerk. Ihre Aufgabe ist es, bidirektional Daten des äußeren Netzes in äquivalente Daten des Sensornetzwerkes umzuwandeln. Eine Möglichkeit wäre, einen Router zwischen dem äußeren Netz und dem Sensornetzwerk zu integrieren. Dies würde jedoch bedingen, dass das Sensornetzwerk das gleiche Protokoll wie das äußere Netz benutzen müsste. Wie zum Beispiel bei einem Anschluss an das Internet. Dazu müsste das drahtlose Sensornetzwerk auch mit dem TCP/IP Protokoll kommunizieren. Während diese Option auf jeden Fall nicht außer Acht gelassen werden sollte [11,13,17,45], hat man sich dafür entschieden, dass drahtlose Netzwerk Topologie 16 Sensornetzwerke optimierte Protokolle benötigen, welche den speziellen Anforderungen an Flexibilität und Energieeffizienz gerecht werden [29]. Dementsprechend ist der Einsatz von Routern unzulänglich. Es werden speziell programmierte Gateways benötigt, die eine Umwandlung der verschiedenen Protokolle bewerkstelligen können. Abb. 8: Ein drahtloses Sensornetzwerk mit einem Gateway, welcher den Austausch mit externen Systemen erlaubt. 2.3 Kommunikation und Protokolle Kommunikationsprotokolle In einem drahtlosen Sensornetzwerk müssen die erfassten Messdaten eines Sensors erst eine Vielzahl an Protokollen und Schichten durchlaufen, bevor die Daten dem Anwender zugänglich sind. Die dazu erforderliche Kommunikation ist nicht trivial, denn es müssen Anforderungen bezüglich Zuverlässigkeit, Sicherheit, Effizienz, etc. erfüllt werden. Außerdem müssen Probleme wie die Übertragung der elektronischen Signale oder der geregelten Reihenfolge der Kommunikation gelöst werden. Aufgrund dieser Aufgaben und Probleme wurde von der ISO (International Organization for Standardization) ein sogenanntes OSI Modell (OSI: Open Systems Interconnection) entwickelt (Abb. 9), welches sich in sieben Schichten aufteilt und vereinheitlichte Verfahren und Regeln für den Austausch von Daten vorschreibt. Dieses Schichtenmodell ist keine spezielle Entwicklung von drahtlosen Sensornetzwerken, sondern ein allgemeingültiges Modell für die Kommunikation informationsverarbeitender Systeme [51]. Kommunikationsprotokolle 17 OSI-Schicht Einordnung Einheiten 1 Anwendung 2 Darstellung Anwendung Daten 3 Sitzung 4 Transport Segment 5 Vermittlung Transport Pakete 6 Sicherung Frames 7 Bitübertragung Bits Abb. 9: OSI-Modell (basierend auf [50]). Kommunikationsprotokolle in Sensorknoten sind die fundamentalen Eckpfeiler eines drahtlosen Sensornetzwerkes [6]. Die Möglichkeit hardwarenah Einfluss auf die Sensorknoten ausüben zu können, bietet einige der interessantesten Möglichkeiten in der Programmierung von drahtlosen Kommunikationsprotokollen [43]. Für die praktische Evaluation neuer Protokolle eignen sich gängige Netzwerkgeräte wie PCs, Laptops oder PDAs größtenteils nicht, da sie nur Kommunikationsprotokolle wie das IEEE 802.11 (WLAN) unterstützen und sich unterhalb der Vermittlungsschicht nicht programmieren lassen [28]. Nach Weilian Su et al. vom Georgia Institute of Technology in Atlanta, USA [43] fordern Kommunikationsprotokolle von drahtlosen Sensornetzen gegenüber traditionellen Protokollen in Ad-hoc-Netzwerken (WLAN, Bluetooth) einen höheren Anspruch an die Programmierung : - Die Topologie verändert sich häufig. - Sensorknoten nutzen hauptsächlich das Broadcast Paradigma, um sich im Netz zu integrieren, während in den meisten Ad-hoc-Netzwerken eine Punkt zu Punkt Kommunikation stattfindet. - Sensorknoten haben nur limitierte Ressourcen bezüglich Energie, Rechenleistung und Speicher. - Drahtlose Sensornetzwerke werden meist mit speziellen Applikationen ausgestattet; Adhoc-Netzwerke werden häufig für allgemeine Kommunikationszwecke konstruiert. In den folgenden Abschnitten werden nun die wichtigsten Schichten und die dazugehörenden Protokolle beschrieben, die sich hauptsächlich mit der Kommunikation in einem drahtlosen Sensornetzwerk befassen. Kommunikationsprotokolle 18 2.3.1 Physikalische Schicht Die physikalische Schicht oder Bitübertragungsschicht ist die unterste Schicht des OSI-Modells und primär mit der Übertragung (Modulation) und dem Empfang (Demodulation) von drahtlosen Wellenformen und deren Verarbeitung zu digitalen Daten beschäftigt. Diese Aufgabe wird durch den Transceiver ausgeführt. Die Herausforderung in drahtlosen Sensornetzen besteht darin, passende Modulationsschemata und Transceiver zu finden, welche einfach, preiswert, jedoch robust genug sind, um die geforderten Aufgaben zu erfüllen [29]. Beim Einsatz drahtloser Übertragungstechniken muss die Trägerfrequenz sorgfältig ausgewählt werden. In der Radio-Frequenz (RF) Kommunikation ist die Bandbreite zwischen 3 kHz und 300 Ghz angesiedelt [7]. Dabei haben manche Länder spezielle Lizenzen für reservierte Frequenzbänder. In Europa kann das GSM 900 exklusiv den Frequenzbereich von 880-915 Mhz für sich beanspruchen. Es gibt jedoch auch lizenzfreie Bänder, wie das ISM (Industrial, Scientific and Medical), das jedoch nur bis zu einer bestimmten Sendeleistung lizenzfrei verwendet werden darf. Es gibt außerdem die Möglichkeit einer optischen oder infraroten Übertragung. Zum Beispiel nutzen die von der Universität Berkeley entwickelten Smart Dust Sensorknoten zur Kommunikation künstliche Lichtquellen [33]. 2.3.2 MAC Protokoll MAC Protokoll Das Medium Access Controll (MAC) Protokoll ist das erste Protokoll über der Bitübertragungsschicht und ist Teil der Sicherungsschicht, die sich noch aus den Bereichen des error control und flow control zusammensetzt. Da das MAC Protokoll das größte Forschungsgebiet von Kommunikationsprotokollen darstellt [29], bezieht sich dieses Kapitel ausschließlich auf MAC Protokolle. MAC Protokolle lösen scheinbar einfache Aufgaben: Sie koordinieren den Zugriff auf ein gemeinsam genutztes Medium, die Frequenz. Aber warum sind dann in den letzten 30 Jahren eine unüberschaubare Anzahl an Protokollen erforscht, entwickelt und getestet worden? Die Schwierigkeit liegt gerade in der Koordination des gemeinsam genutzten Mediums. Daher muss darauf geachtet werden, dass alle Signale verschiedenster Sender ankommen und es dabei MAC Protokoll 19 nicht zu Kollisionen kommt. Wenn Beispielsweise ein Empfänger zwei Signale gleichzeitig erhält, spricht man von einer Kollision, wobei alle Informationen zerstört werden. Die meisten MAC Protokolle versuchen dieses Problem zu minimieren, indem sie die benötigte Kanalkapazität reduzieren, Kontrollmechanismen integrieren oder versuchen, Kollisionen vollständig zu verhindern. Es gibt bisher keine Lösung, welche Strategie die bessere ist, denn jeder Versuch Kollisionen zu verhindern, benötigt auch Kapazitäten und/oder neue Kanäle zur Übertragung. MAC Protokolle für drahtlose Sensornetzwerke fordern gegenüber „traditionellen“ MAC Protokollen mehr Bedingungen, die erfüllt werden sollten oder sogar müssen. Vorerst ist die Anforderung an energieschonende Protokolle gerichtet. Die ungemeine Wichtigkeit von energieeffizienten MAC Protokollen ist relativ neu, denn viele der traditionellen Protokolle beinhalten keine solche Maßnahmen, da sie für Systeme mit genügend Energie programmiert wurden. Andere Anforderungen wie Fairness, Datendurchsatz oder Latenzzeiten spielen nur eine untergeordnete Rolle in drahtlosen Sensornetzen. Fairness ist nicht wichtig, da die Sensorknoten keine individuellen Komponenten darstellen und somit nicht um Bandbreite konkurrieren, vielmehr müssen sie zusammenarbeiten, um ein gemeinsames Ziel zu erreichen. Latenzzeiten stehen im Gegensatz zu Energiekonservierung und der Datendurchsatz stellt kein größeres Problem dar, da die Datenmengen meist nur gering sind. Weitere wichtige Anforderungen an MAC Protokolle sind die Skalierbarkeit und Robustheit gegenüber einer häufig sich verändernden Topologie des Netzes, zum Beispiel verursacht durch einen Batteriewechsel, der Beweglichkeit der Sensorknoten, die Installation neuer Knoten oder der Exitus vorhandener Knoten. Der Bedarf einer hohen Skalierbarkeit ist naheliegend, wenn man bedenkt, dass ein Sensornetz aus Dutzenden oder Hunderten von Knoten bestehen kann. [8,18,29] 2.3.2.1 Energieeffiziente und zuverlässige Steuerung der MAC Schicht Der Transceiver eines Sensorknotens verbraucht einen erheblichen Anteil der vorhandenen Energie. Der Verbrauch hängt davon ab, in welcher Phase der Transceiver sich gerade befindet: Im Sende-, Empfangs-, Leerlauf- oder Schlafmodus. Das Senden und Empfangen verbraucht die höchsten Energiemengen. Im Leerlauf wird zwar weniger benötigt, da aber die Knoten die meiste Zeit im Leerlauf sind, ist der Verbrauch über einen längeren Zeitraum zu hoch. Im MAC Protokoll 20 Schlafmodus hingegen benötigt der Transceiver fast keine Energie, allerdings ist der Knoten in diesem Zustand fast „taub“. Diese vier Zustände, die der Transceiver einnehmen kann, werden durch das MAC Protokoll gesteuert. Folgend werden nun Probleme bei der Steuerung dieser vier Zustände genannt und ansatzweise passende Lösungen aufgezeigt [29]: - Leerlauf: Ein Sensorknoten ist bereit Signale zu empfangen, jedoch im Moment kommen keine Signale am Empfänger an. Diese ständige Bereitschaft ist energieaufwendig und im Fall einer niedrigen Netzlast unnötig. Den Transceiver auszuschalten wäre eine Möglichkeit, jedoch können in diesem Zustand keine Signale empfangen oder gesendet werden. Eine Lösung wäre TDMA (Time Division Multiple Access) basierte Protokolle bei denen der Transceiver phasenweise in den Schlafmodus versetzt wird. Dabei wird das Medium (Frequenz) in sogenannte Zeitfenster unterteilt und ein Datenaustausch ist nur während dieser Zeit möglich. - Overhearing: Unicast Nachrichten haben eine Quelle und eine Zieladresse. In vielen drahtlosen Medien, wie ein Radio oder Fernsehen, kann die Information jedoch nur als Broadcast gesendet werden und erreicht dabei alle Empfänger, welche in Sendereichweite liegen. Damit nun nicht jeder unbestimmte Sensorknoten in Sendereichweite Daten im energieintensiveren Empfangsmodus empfängt, um anschließend doch wieder zu verwerfen, kann Overhearing implementiert werden. Dabei können die Knoten anhand einer ID erkennen, ob das Datenpaket für sie bestimmt ist oder nicht. Falls Nein, überhören (overhear) die Knoten die Nachricht. Heidemann, J., et al. [19] zeigt, dass sich in dichten Sensornetzen durchaus signifikante Energiemengen einsparen lassen. - Kollision: Kollisionen entstehen, wenn an einem Empfänger zum gleichen Zeitpunkt mehrere Signale ankommen. Dies zerstört nicht nur alle Informationen, sondern verschwendet auch Energie. Die Lösung hierfür wären wieder TDMA basierte Protokolle, bei denen jedem Sensorknoten ein bestimmtes Zeitfenster reserviert wird. In Netzwerken mit einer niedrigen Netzlast sind Kollisionen meistens kein Problem. Die häufigsten MAC Protokolle für drahtlose Sensornetzwerke haben Lösungen für solche Probleme und sind dabei energieschonend. Die Konstruktion solcher Protokolle darf eine MAC Protokoll 21 gewisse Komplexität nicht überschreiten. Sensorknoten sind von Ihrer Bauweise einfach und billig und können somit nicht massenhaft Ressourcen zur Verarbeitung und Speicherung von komplizierten Algorithmen verschwenden. In den folgenden Abschnitten werden nun MAC Protokolle aufgezeigt, die auf unterschiedliche Weise versuchen, die Probleme der Energieeffizenz und der Zuverlässigkeit der Datenübertragung zu lösen und dabei nicht zu komplex sein dürfen. 2.3.2.1.1 S-MAC Das Sensor Medium Access Control (S-MAC) Protokoll wurde von Wei Ye und John Heidemann, beide vom Information Science Institute der Universität von South Carolina, sowie Deborah Estrin vom Computer Science Department der Universität von Kalifornien, Los Angeles entwickelt [19]. S-MAC regelt die Initialisierung, sowie den Ablaufplan und stellt ein Kommunikationsschema zur Verfügung. Das primäre Ziel des S-MAC Protokolls ist die Reduzierung der energieraubenden Probleme von Kollisionen zwischen Datenpaketen und des permanenten Leerlaufs der Sensorknoten. Die Anforderung des Overhearing wurde ebenfalls implementiert. Um das Problem des Leerlaufs zu umgehen werden die Sensorknoten in periodische Schlafund Wachzustände versetzt. S-MAC versucht alle Sensorknoten zu synchronisieren, damit sich alle Knoten zur gleichen Zeit im richtigen Zustand befinden. D.h. es wäre sinnlos, wenn jeder Knoten nach seinem eigenen Zeitplan die Zustände wechseln würde, da in Schlafphasen keine Nachrichten empfangen werden können. Der Wachzustand (Leerlauf) sollte so kurz wie möglich sein, um Energie zu sparen, jedoch lange genug, um die maximal anfallenden Datenpakete zu empfangen, da sonst alle Daten verworfen werden müssten. Die Schlafperiode sollte so lange wie möglich sein. Die Wach- und Schlafperiode ergeben zusammen die Rahmenzeit und spiegeln die maximale Latenzzeit wieder. Bei einer Schlafphase (Ausschalten des Transceiver) von einer halben Sekunde und einer Wachphase von einer halben Sekunde, spart man theoretisch schon 50% an Energie, wenn die Energiekosten zur Initialisierung des Transceiver nicht berücksichtigt werden. MAC Protokoll 22 Abb. 10: Grundprinzip des S-MAC. Zur Initialisierung des Netzes dient ein Synchronisationsimpuls, der das Netz in virtuelle Cluster teilt und den Zeitplan der Sensorknoten festlegt. Zu Beginn warten alle Sensorknoten eine zufällige Zeit ab, bis eine SYNC-Nachricht ankommt. Die SYNC-Nachricht enthält die Information, in welchen periodischen Abständen die Knoten schlafen und wachen sollen. Ist bei einem Sensorknoten die zufällige Zeitspanne abgelaufen und er hat noch keine SYNCNachricht bekommen, ernennt er sich zu einem Synchronizer und sendet als Broadcast eine SYNC-Nachricht. Warum die zufällige Wartezeit? Es würde sonst zu Kollisionen kommen, da alle Knoten zur selben Zeit senden würden. Der Synchronizer hat diese Aufgabe nicht nur zu Beginn, sondern sendet diese Nachricht in kontinuierlichen Zeitabständen wieder, um einem time-drift (Zeitverzug) der Knoten entgegenzuwirken und neu hinzukommenden Knoten die Möglichkeit zu geben, sich einem Cluster zuzuordnen. Wenn nun ein Sensorknoten im Senderadius zweier Synchronizer liegt, gibt es erstens die Möglichkeit, dass der Knoten bei beiden Zeitplänen teilnimmt und somit als Gateway zwischen den Clustern fungieren kann, insbesondere um Broadcast Nachrichten weiterleiten zu können. Der Nachteil ist, dass diese Randknoten, im Vergleich zu gewöhnlichen Knoten, doppelte Wachzeiten haben. Die zweite Möglichkeit ist, dass der Sensorknoten sich an die Wach- und Schlafphasen des ersten Synchronizer hält, den zweiten Zeitplan speichert und im Bedarfsfall „früh aufstehen“ kann, um eine Nachricht in das sekundäre Cluster senden zu können. Der Nachteil: Broadcast Nachrichten und Anfragen des sekundären Clusters können so nicht sicher empfangen werden. MAC Protokoll 23 Abb. 11: Synchronisierte Schlaf- und Wachphasen von drei Sensorknoten. Abb. 12: Zwei virtuelle Cluster mit jeweils einem Synchronizer und einem Randknoten. Damit es während Kommunikationsschema der die Übertragung nicht zu Rendezvous-Technik, Kollisionen in Form kommt, eines wurde als RTS/CTS-Schema, implementiert (Abb. 13): - Knoten A möchte seine Daten an Knoten B senden und sendet eine RTS-Nachricht (RTS: request to send), welche Informationen über die Datengröße beinhaltet. MAC Protokoll 24 - Wenn Knoten B die Nachricht erhalten hat, antwortet er mit einer CTS-Nachricht (CTS: clear to send). - Knoten A kann mit der Datenübertragung beginnen. - Knoten B hat alle Daten korrekt erhalten und sendet ein ACK-Nachricht (ACK: acknowledgement) zurück. Die Anforderung des overhearing wird auch durch die Verwendung des RTS/CTS-Schema gelöst. Wenn Knoten A seine Nachricht an Knoten B sendet und Knoten C bekommt diese Nachricht ebenfalls, dann speichert Knoten C die Länge des Datenpaketes. Anhand dieser Nachricht kann Knoten C einen sogenannten NAC (Network Allocation Vector) Zähler festlegen und mit Hilfe dieser Information kann der Knoten für die Dauer der Übertragung in den Schlafmodus wechseln. Abb. 13: RTS/CTS-Schema und NAV. 2.3.2.1.2 T-MAC Das Timeout MAC Protokoll baut auf dem Prinzip des S-MAC Protokoll auf und gilt allgemein als Verbesserung [18,29,51]. Das grundsätzliche Problem des S-MAC Protokolls sind die relativ langen Wachphasen. Das Protokoll ist jedoch so implementiert, dass die Länge eine festgesetzte Größe ist. Somit könnte bei einem großen Datenaufkommen eine vollständige Übertragung gewährleistet werden. Die Lösung wäre einen Timeout zu definieren, welches eine MAC Protokoll 25 maximale Wartezeit zum Empfangen einer RTS/CTS- Nachricht gewährt. Ist diese Zeitspanne überschritten, so kann sich der Knoten vorab in den Schlafmodus versetzen. Abb. 14: Unterschiedliche Wachmodi bei T-MAC und S-MAC, wenn keine RTS/CTS Nachricht empfangen oder gesendet wird. Dieser vorgeschlagene Ansatz von T. van Dam und K. Langendeon von der Universität in Delft, Niederlande, funktioniert sehr gut bei 1-Hop-Nachbarschaften [44]. Jeder Knoten hört für eine gewisse Zeit den Kommunikationskanal ab und stellt fest, dass keine Nachricht vorhanden ist und schaltet sich bis zur nächsten Periode ab. Jedoch entstehen mit dieser Lösung eines intelligenten Protokolls neue Probleme bezüglich des RTS/CTS-Schemas. Abb. 15 zeigt ein mögliches Problem auf: Knoten A möchte Daten zu Knoten B senden und verschickt ein RTS. Knoten B antwortet mit einem CTS, welches auch Knoten C mitbekommt. Knoten C weiß, dass gleich eine Kommunikation zwischen Knoten A und B starten wird, auch wenn er selbst keine Verbindung zu Knoten A hat. Anhand der CTS-Nachricht weiß Knoten C wie lange die Übertragung dauern wird, und kann sich für diese Zeitspanne schlafen legen. Knoten D bekommt währenddessen nichts von der Kommunikation zwischen den anderen Knoten mit. C wäre der einzige Knoten in Reichweite zu D, jedoch hat aufgrund der Kanalbelegung durch Knoten B C nicht die Möglichkeit D darüber zu informieren. Somit geht Knoten D davon aus, dass keine Kommunikation mehr stattfinden wird und kann sich bis zur nächsten Periode ausschalten. Wenn Knoten C Daten an Knoten D senden möchte, müsste er bis zur nächsten Wachperiode warten. MAC Protokoll 26 Abb. 15: Knoten C kann Knoten D nicht in derselben Wachperiode erreichen. Diese Ausgangssituation wäre, wie angesprochen, kein Problem in 1-Hop- Nachbarschaftsbeziehungen, jedoch würden sich in einem größeren Netzwerk mit vielen virtuellen Clustern diese Verspätungen beträchtlich akkumulieren und wenn die maximale Puffergrenze der einzelnen Knoten erreicht ist, sogar das ganze Netz zum Erliegen bringen. Deswegen haben T. Van Dam und K. Langendeon weitere Kontrollmechanismen implementiert, die Knoten C ermöglichen, seine Daten während derselben Wachperiode zu Knoten D zu senden. Hinzu kommen eine FRTS-Nachricht (FRTS: Future-Ready-To-Send) und eine DS-Nachricht (DS: Data Send). Beide Nachrichten befinden sich in der Reihenfolge hinter der CTS-Nachricht, bzw. vor den Daten. Bei jeder Nachricht, die verschickt wird, kommt standardmäßig immer eine DS-Nachricht hinzu, welche keine wichtigen Daten enthält und als Dummy fungiert. Somit weiß Knoten C, dass nach der CTS-Nachricht Knoten A ein Dummy verschickt, und er damit die Möglichkeit hat, eine FRTS-Nachricht an D zu senden ohne dabei die Kommunikation zwischen Knoten A und B zu stören. Die FRTS-Nachricht teilt Knoten D mit, dass eine andere Kommunikation stattfindet und er jetzt in in den Schlafzustand wechseln kann, jedoch in x Zeiteinheiten wieder aufwachen muss. Die Länge dieser Schlafphase ergibt sich aus der CTS-Nachricht von Knoten B. Nachdem Knoten A und B den Datenaustausch vollzogen haben und Knoten D wieder aktiv ist, hat Knoten C die Möglichkeit eine RTS- MAC Protokoll 27 Nachricht an Knoten D zu senden. Dennoch gibt es keine Garantie, dass Knoten C diesmal senden kann. Es besteht lediglich die Option Knoten D zu erreichen. Dieser Ansatz hat natürlich den Nachteil, dass zusätzliche Kommunikation stattfinden muss und das Protokoll durch FRTS/DS erweitert werden muss. Abb. 16: Knoten C sendet ein FRTS zu Knoten D und speichert, wann er wieder aufwachen muss. Hierbei kollidiert die FRTS mit der DS-Nachricht, welche nur ein Dummy ist. 2.3.3 Zeitsynchronisation Zeitsynchronisation Zeit ist ein wichtiger Aspekt für viele Applikationen und Protokolle in drahtlosen Sensornetzwerken. Isolierte Messwerte sind meistens unbrauchbar, da sich keine Korrelationen mit anderen Parametern ergeben und wenig Spielraum für notwendige Interpretationen zulassen. Wann ist ein Ereignis gemessen worden, wie lange dauerte es, oder wie schnell war das Objekt? Deswegen sollten Messdaten außer den physikalischen Parametern auch Angaben über die absolute Uhrzeit machen können. Der Bedarf an synchronisierten Netzen wird dadurch noch erhöht, da Sensorknoten oft auf Kommunikationsprotokollen aufbauen, bei denen die Knoten simultan zwischen Schlaf- und Wachphasen wechseln müssen, wie das S-MAC oder TMAC aus den vorigen Abschnitten. Zeitsynchronisation 28 In diesem Abschnitt wird erklärt, weshalb Zeitsynchronisation wichtig ist, wie sie funktioniert und welche Probleme dabei aufkommen. Während in der verkabelten Welt Zeitsynchronisationsprotokolle erfolgreich eingesetzt werden, lassen sich diese Lösungen nicht einfach in drahtlose Sensornetzwerke überführen. Es müssen zusätzliche Lösungen gefunden werden, die auch eine genaue Zeitsynchronisation in groß angelegten Multihop Netzwerken zulassen und dabei energieschonende Algorithmen verwenden. Ein einfaches Beispiel (Abb. 17) soll den Bedarf an einer genauen Zeitsteuerung demonstrieren (basierend auf [29]). Die Wellenfront eines akustischen Signals trifft auf in Reihe installierte Sensorknoten. Jeder Knoten kennt genau seine geographische Position und speichert die Zeit, wann das Signal erfasst wurde. Anhand dieser Informationen ist es nun möglich, die Richtung bzw. den Winkel des Signals zu bestimmen. In Abbildung 17 kann der Winkel α nun aus den Längen d und r mit Hilfe der trigonomischen Funktionen r=d*sin(α), bzw. α= arcsin(r/d), ermittelt werden. Die Entfernung d kann anhand der Positionen der Knoten errechnet werden und die Strecke r aus den gemessenen Zeiten der Sensoren und dem Wissen, dass der Schall c~333m/s zurücklegt. Angenommen die Strecke d wäre 10 Meter und die Zeitdifferenz (Δt) bei der Erfassung beträgt 0,02 s. Dann ergibt sich r=3,33m aus r=c*Δt und ein Winkel von ~42 Grad, was ungefähr der Himmelsrichtung NO entspricht. Abb. 17: Ermittlung der Himmelsrichtung eines akustischen Signals anhand der Ankunftszeiten des Signals und der geographischen Position der Sensorknoten (basierend auf [29]). Wenn bei der Messung der einzelnen Zeiten eine Abweichung von 0,004 s vorhanden ist, verändert sich der Winkel um über 25%. Damit kann ein scheinbar kleiner Fehler in der Zeitsynchronisation zu einem verzerrten Bild des Ergebnisses führen. Dieses Beispiel verdeutlicht die Anforderung nach Zeitsynchronisationsverfahren mit einem hohen Maß an Genauigkeit. Ein Problem dabei ist, dass das Senden und Empfangen nie gleichzeitig Zeitsynchronisation 29 stattfinden kann, da Faktoren wie die Aufbereitung der Nachricht beim Sender, die Zugriffszeit auf das Kommunikationsmedium, die Signallaufzeit und die Empfangszeit berücksichtigt werden müssen. Eine Möglichkeit ist die Berechnung der Round Trip Time (RTT). Sie gibt an, wie lange ein Signal vom Sender bis zum Empfänger und wieder zurück benötigt. Anhand dieser Information weiß der Knoten nun, wieviel Zeit er dazu addieren muss, wenn er ein Synchronisationspaket erhält. Die Uhren der Knoten basieren, wie Computeruhren, auf Oszillatoren, welche eine konstante Schwingung in einem bestimmten Frequenzbereich erzeugen. Es kann zu Problemen führen, wenn die Oszillatoren nicht in konstanten Frequenzen schwingen und so auf Dauer auseinanderdriften, auch skew genannt [52]. Möglich ist auch, dass die Oszillatoren in der gleichen Frequenz schwingen, jedoch die Kurven sich nicht synchron überschneiden (Abb. 18). Es ensteht eine Phasenverschiebung. Abbildung 18 stellt einen Kommunikationsablauf dar, welcher anhand von drei Nachrichten die Phasenverschiebung zweier Knoten ermittelt, aber nur unter der Voraussetzung, dass es kein skew und eine konstante Verzögerung D während der Übertragung gibt. Knoten A liest seine lokale Zeit t1 und sendet dieses Paket zu Knoten B. Als lokale Zeit t2 speichert Knoten B die Ankunftszeit der Nachricht von Knoten A. Knoten B, zum Zeitpunkt t3, sendet eine Nachricht zurück zu Knoten A, mit den Angaben t1, t2 und t3. Knoten A empfängt die Nachricht zum Zeitpunkt t4 und hat nun genug Informationen um die Phasenverschiebung d zu berechnen: d= (t2-t1-t4+t3)/2. Zum Abschluss sendet Knoten A die berechnete Phasenverschiebung zu Knoten B. Abb. 18: Berechnung der Phasenverschiebung (basierend auf [52]). Die Herausforderung besteht nun darin, die unterschiedlichen Probleme des Auseinanderdriftens, der Phasenverschiebung und der Variabilität von Verspätungen während der Übertragung mit vorhandenen Lösungsansätzen effektiv in Protokolle zu implementieren. Da eine ausführliche Beschreibung solcher Implementierungen den Rahmen dieser Arbeit sprengen würde, ist bei Interesse weiterführende Literatur zu empfehlen [30, 40]. ScatterWeb Plattform 30 ScatterWeb Plattform 3 ScatterWeb Plattform Die ScatterWeb Plattform beinhaltet alle nötigen Hardwaremodule, wie auch die passende Software, die zum Aufbau eines drahtlosen Sensornetzwerkes benötigt werden. Die bisherige und weitere Entwicklung findet an der Freien Universität Berlin im Fachbereich Computer Systeme und Telematik statt [41]. Da die ScatterWeb Plattform eine Komplettlösung zur Installation eines drahtlosen Sensornetzwerkes bereitstellt, wurde ein Spin-Off Unternehmen Anfang 2005 zum kommerziellen Vertrieb gegründet. Zahlreiche Aspekte der theoretischen Möglichkeiten von drahtlosen Sensornetzwerken wurden bereits unter Verwendung der ScatterWeb Plattform implementiert und erfolgreich getestet: - Vergleich von zeitgesteuerten (TDMA) und inhaltbasierten Protokollen [9]. - statisches Routing für eine Multihop-Kommunikation [28]. - eine energieeffiziente MAC-Schicht auf Basis eines TCP/IP Stack [11,12]. - energieeffizientes Routing [39]. - T-MAC und S-MAC in ScatterWeb 3.0 [41]. - Einsatz eines Routingprotokolls, das den Datenverkehr möglichst nur über Sensorknoten mit Solarzellen routet [46]. - experimentelle Untersuchung der Lebensdauer von drahtlosen Sensornetzwerken unter Einsatz von Solarzellen und eines GoldCap Kondensators [45]. Die folgenden Abschnitte vertiefen die theoretischen Grundlagen des vorigen Kapitels und werden mit Hilfe von spezifischen Komponenten der ScatterWeb Hardware und Fragmenten des Softwarecodes dargestellt. Abschnitt 3.4 spiegelt persönliche Erfahrungen im praktischen Umgang mit einem drahtlosen Sensornetzwerk auf Basis der ScatterWeb Plattform wieder. ScatterWeb Hardware 31 ScatterWeb Hardware 3.1 ScatterWeb Hardware ScatterWeb Hardware Die ScatterWeb Hardware beinhaltet ein Embedded Sensor Board (ESB), das als Sensorknoten fungiert, und ein Gateway (eGate/WEB), der den Zugang in das Internet ermöglicht. Zusätzlich gibt es noch die Module ECR (kleiner Sensorknoten), EYE (Kamera) und EWS (Gateway mit vielen Schnittstellen), welche Ergänzungen bereitstellen, jedoch nicht essentiell beim Aufbau eines drahtlosen Sensornetzwerkes sind. 3.1.1 MSP 430 Der MSP 430 (MSP: Mixed Signal Processor) von Texas Instruments ist der Mikrocontroller und das Herzstück des ESB und des eGate/WEB. Dieser Chip wurde primär unter Berücksichtigung einer hohen Energieeffizienz konstruiert. Der durchschnittliche Verbrauch liegt bei 1mA, bei einer Spannung von 3V ([18]. Zum Vergleich: Ein Athlon 1400 MHz benötigt bei gleicher Spannung etwa 42A, das ist 42000 mal soviel wie der MSP 430. Im Schlafmodus, welcher durch ein externes Ereignis unterbrochen werden kann, ist der Energieverbrauch des MSP 430 nochmals 1000 mal geringer. Der Speicher von 64kB setzt sich aus dem Flash-Speicher, dem RAM, dem Bootloader und dem Speicher für die Peripherie zusammen. Auf den gesamten Speicher kann mit einem sogenannten Pointer ein direkter Zugriff erfolgen. 60 der 64kB an Speicher sind für den Flash-Speicher reserviert, um die Applikationen und permanenten Daten zu speichern. Ein besonderes Merkmal des MSP 430 ist die Implementierung eines Watch Dog in der Hardware. Der Watch Dog ist ein Zähler der nach Erreichen eines bestimmten Wertes einen Reset der Systemsoftware durchführt und somit einen Schutzmechanismus gegenüber Endlosschleifen und fehlerhaften Codes bildet. Im funktionierenden Betrieb wird der Zähler des Watch Dog immer wieder reinitialisiert, so dass es nie zu einem Reset im laufenden Betrieb kommen kann (Abb. 19). ScatterWeb Hardware 32 Abb. 19: Verarbeitungsablauf des MSP 430 (basierend auf [28]). 3.1.2 ESB Das Embedded Sensor Board (ESB) vereinigt die notwendigen Komponenten eines Sensorknotens auf einer Platine mit einer Batteriehalterung der Größe 5x6x2 cm (B/H/T). Darauf sind unterschiedliche Sensoren angeschlossen: Licht-, Temperatur- und ein Bewegungssensor sind unter einer weißen Halbkugel versteckt. Der Bewegungssensor kann Objekte bis auf eine Entfernung von 8 Meter detektieren und zum Beispiel in Verbindung mit dem Mikrofon, das auch auf dem ESB zu finden ist, als Alarmsystem eingesetzt werden. Ein weiterer Sensor dient der Registrierung von Vibrationen und basiert auf einem 2-achsigen Beschleunigungsmesser. Zu einer informativen Weiterverarbeitung der Messdaten ist der Temperatursensor am besten geeignet, da er der einzige Sensor ist, der einen numerischen Wert seiner Messung angibt. Die anderen Sensoren senden Impulse nach einer Detektion und geben somit nur zwei Zustände zur Verarbeitung weiter – aktiv oder inaktiv. An drahtlosen Kommunikationsschnittstellen stellt das ESB eine Infrarot- und eine Funkschnittstelle (Transceiver) bereit. Der Transceiver sendet und empfängt im lizenzfreien Frequenzbereich von 868 MHz und ist für den Datenaustausch zwischen den Sensorknoten und dem eGate/WEB zuständig. Die serielle Schnittstelle ist zum Anschluss von externen Sensoren vorgesehen, wie auch zur Datenübertragung an einen PC. Das JTAG-Interface dient zum Hochladen der Applikationen, die auf dem Sensorknoten betrieben werden sollen. ScatterWeb Hardware 33 Abb. 20: ESB (Embedded Sensor Board) der Firma ScatterWeb. Quelle: [41]. 3.1.3 eGate/WEB Der eGate/WEB ist der Gateway und verbindet das Sensornetz mit einem anderen Netzwerk, das den 10/100 BASE-T Ethernet Standard unterstützt. Zu nennen ist hier die Anbindung an das Internet, oder das lokale Intranet durch Verwendung von einem Router oder einem Switch. Der eGate/WEB setzt sich aus zwei Bereichen zusammen: Den ersten Bereich bildet ein Sensorknoten, mit einem Mikrocontroller und einem Transceiver wie der ESB, jedoch ohne Sensoren. Die eingehenden Daten werden nicht über den Transceiver weitergesendet, sondern kommen über die serielle Schnittstelle in den zweiten Bereich zum Digi Connect ME Modul. Dort erfolgt die Transformation der Daten aus dem Sensornetz, dass die eingehenden Daten so aufbereitet, das sie über das TCP/IP Protokoll in das Internet oder Intranet eingespeist werden können (Abb. 21). ScatterWeb Hardware 34 Abb. 21: Datenstrom zwischen dem drahtlosen Sensornetzwerk und dem Internet. 3.2 Inbetriebnahme des ESB und eGate/WEB Inbetriebnahme des ESB und eGate/WEB Um das ESB und den eGate/WEB betreiben zu können, müssen die Mikrocontroller mit einer passenden Applikation ausgestattet werden. Zur Programmierung des MSP 430 Mikrocontroller wird die Programmiersprache C benutzt. Sie ist prädestiniert für Mikrocontroller, da sie hochperformant ist und eine hardwarenahe Programmierung zulässt und damit einen direkten Speicherzugriff ermöglicht. Um den geschriebenen Quellcode in eine äquivalente, verständliche Maschinensprache umzuwandeln, wird ein Compiler benötigt. Hierbei wurde der kostenlose C-Compiler mspgcc [38] für die MSP 430 Mikrocontroller von Texas Instruments benutzt. Damit ein automatisiertes Kompilieren und Zusammenfügen der Dateien (linken) möglich ist, muss der Compiler wissen, welche Objektdateien benötigt werden. Diese Information ist in der Makefile enthalten. Nach der Kompilierung entsteht eine Binärdatei, die auf den Sensorknoten übertragen werden muss. Dieser Vorgang heißt flashen und wird mit Hilfe des Programms Embedded Workbench Kickstart [16] von IAR vollzogen. Dabei muss ein Kabel vom Parallellport des PC's an das JTAG-Interface des Sensorknoten angeschlossen werden. Für die Fehlersuche eignen sich der im mspgcc enthaltene Kommandozeilendebugger msp430-gdb. Ein Debuggen mit graphischer Oberfläche ist mit dem Programm Insight möglich, dass auch im Embedded Workbench Kickstart enthalten ist. Bei beiden Debug-Programmen ist es notwendig, dass vorher ein JTAGProxy als Hintergrundprozess gestartet werden muss. Software Architektur und Programmierung 35 Software Architektur und Programmierung 3.3 Software Architektur und Programmierung Software Architektur und Programmierung Die Software oder das „Mini-Betriebssystem“ für die ScatterWeb Plattform ist modular in zwei Bereiche aufgeteilt. Die Firmware oder Systemsoftware und die Anwendungssoftware. Dies hat den Vorteil, dass insbesondere der Programmcode aus der Sicherungs- und Bitübertragungsschicht vom Code der darauf aufbauenden Anwendung separiert ist, und damit eine bessere Abstraktion der einzelnen Schichten vorhanden ist. Das Konzept beruht im Ansatz auf der Architektur der gängigsten Betriebssysteme für PC's. Windows oder Linux bilden den Grundstock für die darauf aufbauenden Applikationen. Nach der Kompilierung der ScatterWeb Software wird der gesamte Code jedoch auf einer einzigen Ebene ausgeführt, da keine Virtualisierungs- oder Zugriffsschutzkonzepte vorhanden sind. Die Firmware initialisiert zu Beginn sämtliche Hardwaremodule. Dazu gehört der Transceiver und dessen Konfigurationen, wie die Baudrate und Porteinstellungen. Die Anwendungssoftware nutzt dann die von der Firmware bereitgestellten Parameter mit Hilfe von Callback Funktionen, die als Schnittstellen zwischen der Anwendungssoftware und der Firmware agieren (Abb. 22). Abb. 22: Trennung des Programmcode in die Bereiche Anwendung und Firmware (System). Als Schnittstelle fungieren Callback-Funktionen. Die aktuelle Software ScatterWeb v3.0 ist am 12. April 2006 erschienen und beinhaltet eine Software Architektur und Programmierung 36 Vielzahl an Applikationen (ScatterWeb 2006). MD5, S-MAC und T-MAC sollen als Beispiel genannt werden. Da die erworbenen Kenntnisse vor dieser Version angeeignet worden sind, basiert die nähere Erklärung auf den Versionen 2.2. und 2.3 [41]. In den folgenden Abschnitten werden die einzelnen Aufgaben der Objektdateien, der Firmware und der Anwendungssoftware mit Hilfe von exemplarischen Codefragmenten erläutert. 3.3.1 Firmware Firmware Die Firmware regelt zur Beginn u.a. das Starten der Hauptschleife, das Verhalten auf Interruptereignisse und Routinen für den Zugriff auf die Hardware (Sensoren, Speicher, Schnittstellen). Die Hauptschleife ist in der Objektdatei ScatterWeb.System programmiert und ist wie folgt aufgebaut: Firmware 37 //ScatterWeb.System.c //Hauptschleife for(;;) { //Startet den Watch Dog. Führt bei Bedarf einen Reset des MSP 430 durch. System_startWatchdog(); if(runModule & MF_SCOS) Threading_eventHandler(); //Die Funktionen Senden und Empfangen des Funkmoduls. if(runModule & MF_RADIO_RX) Net_rxHandler(); if(runModule & MF_RADIO_TX) Net_txHandler(); //Überprüfe abgelaufene Timer. if(runModule & MF_TIMER) Timers_eventHandler(); //Callback-Funktionen für die serielle Schnittstelle. if(runModule & MF_SERIAL_RX) { extern volatile UINT8* serial_line; if(serial_line != 0) { if(callbacks[C_SERIAL]) callbacks[C_SERIAL]((void*) serial_line); } } //Die Funktion für Sensorereignisse. Abhängig von der Plattform (ESB oder ECR). #if defined(ESB) || defined(ECR) if(runModule & MF_SENSORS) if(sensorFlags != 0x00) Data_sensorHandler(); #endif ... } Wie diesem Codefragment zu entnehmen ist, überprüft die Hauptschleife fortlaufend, ob Sensorereignisse bemerkt wurden, ob Datenpakete am seriellen Port angekommen sind und ob ausgehende Daten im Buffer gehandhabt werden müssen. Die folgenden Abschnitte beinhalten Erläuterungen zu relevanten Objektdateien der Firmware. Firmware 38 3.3.1.1 ScatterWeb.Data Die Objektdatei ScatterWeb.Data beinhaltet primär Funktionen zur Bearbeitung von Sensorereignissen. Um Sensorereignisse registrieren zu können, muss eine Callback Funktion gesetzt werden. Durch System_callbacks[C_SENSOR] wird der Sensor aktiviert und mit System_callbacks[C_SENSOR] = NULL deaktiviert. Aktivierte Sensoren benötigen Argumente, die für jeden Sensor spezifisch übergeben werden müssen. Zur Verarbeitung einer Messung des Temperatursensores werden vier Argumente benötigt: interval Wie oft soll eine Temperaturmessung erfolgen. Data_temperatureON(x,0,0,0) – Alle x ms eine Messung und Signalübergabe. range Wieviel muss der Temperaturunterschied betragen, damit die Messung weitergegeben wird. Data_temperatureON(x,y,0,0) – Eine Messung alle x ms und eine Weitergabe der Messung bei einer Differenz von y °C zur vorigen Messung. diff In Kombination mit dem zweiten Argument (range), kann ein min./max Bereich festgelegt werden, wann ein Signal ausgegeben werden soll. Data_temperatureON(x,y,z,0) – Eine Messung alle x ms und eine Weitergabe des Signals, wenn die Differenz der Messung im Bereich von y bis z °C liegt. stepsperdiff Wenn ein zweites oder drittes Argument übergeben wird, gibt das erste Argument das Intervall einer Messung an, jedoch nicht die Weitergabe. Eine kontinuierliche Ausgabe des Signals kann dann über Interval_Dif erfolgen. Data_temperatureON(x,y,y,z) – Eine Messung alle x ms und eine Weitergabe der Messung bei einer Differenz von y °C zur vorigen Messung oder alle x*z (6s*10) Zeiteinheiten. Dieser Ansatz, die Temperaturmessung anhand von vier Parametern zu beeinflussen, erlaubt einfache Evaluierungsmethoden, um vorab schon Maßnahmen ergreifen zu können, welche Ausprägung ein Messwert haben muss. Dies spart Bandbreite und Energie, da viele Messwerte nicht übertragen werden müssen. Firmware 39 3.3.1.2 ScatterWeb.Messaging Die Objektdatei ScatterWeb.Messaging stellt Funktionen zur Verfügung, die eine Interaktion mit den Sensorknoten möglich macht. Eine Interaktion mit den Sensorknoten kann in Form einer Konfiguration, wie das Abfragen oder das Setzen der Sendeleistung, stattfinden. Dreistellige ASCII Kommandos müssen via Funk oder serieller Schnittstelle an den jeweiligen Sensorknoten gesendet werden. Dazu muss zuerst eine Verbindung mit dem eGate/WEB (Basisknoten) hergestellt werden. Dafür kann der HyperTerminal von Windows oder das Programm ScatterViewer von ScatterWeb eingesetzt werden. Diese Programme bieten eine kommadozeilenbasierte Oberfläche, welche als Kommunikationsschnittstelle zwischen dem User und dem eGate/WEB arbeitet. Der syntaktische Aufbau eines Befehls ist: @(id) (xxx) [xx] – Im Feld id wird der Empfänger der Nachricht adressiert, gefolgt von einem Leerzeichen und dem anschließenden dreistelligen ASCII Kommando. Zum Beispiel der Befehl @4 rsm (read sensor mask) listet alle aktivierten Sensoren des Knoten mit der ID vier auf. Möchte der User eine Konfiguration an den Sensoren vornehmen, kann er mit @4 ssm 03 (ssm: set sensor mask) explizit eine Anweisung geben, welche Sensoren aktiv und welche inaktiv geschaltet werden sollen. Der letzte Parameter wird als Hexadezimalwert übergeben und gibt an, welche Sensoren aktiv erfassen sollen. Im genannten Beispiel setzt sich der Wert 03 aus dem Mikrofon 01 und dem Temperatursensor 02 zusammen. Firmware 40 Abb. 23: Eingabe-Konsole von ScatterViewer. 3.3.2 Anwendungssoftware Anwendungssoftware Die Anwendungssoftware setzt auf die Firmware auf und interagiert, wie in Abschnitt 3.3 schon beschrieben, mit den Callback-Funktionen. Es gibt vier verschiedene CallbackFunktionen: Periodischer Callback Diese Callback-Funktion wird in jeder Iteration in der Schleife der Objektdatei ScatterWeb.Event aufgerufen. ScatterWeb.Event ist Teil der Anwendungssoftware. Serieller Callback Wenn ein kompletter Satz an Daten an der seriellen Schnittstelle angekommen ist wird der serielle Callback angesteuert. Funk Callback Wenn ein Datenpaket über Funk empfangen wird, wird der Funk Callback aufgerufen und übergibt der Anwendungssoftware einen Pointer, der den Adressbereich des Datenpaketes referenziert. Anwendungssoftware Sensor Callback 41 In periodischen Abständen werden die Messdaten der Sensoren gelesen. Falls die Sensoren Daten erfassen, wird der Sensor Callback aufgerufen. Die Objektdateien der Anwendungssoftware sind speziell für eine Plattform (ESB, ECR oder Gate/WEB) programmiert worden. D.h., für jede Plattform ist eine modifizierte Objektdatei der Anwendungssoftware nötig. Hingegen ist die Firmware interoperabel mit allen Plattformen. Um eine funktionierende Applikation für den Sensorknoten kompilieren zu können, wird die komplette Firmware benötigt und die passenden Objektdateien Event und Process der Anwendungssoftware. Diese Zusammensetzung bildet ein funktionierendes Skelett. Den einzelnen Sensorknoten können nun bestimmte Aufgaben wie Multihop (ScatterRouting), Verschlüsselung der Datenübertragung (RSA) und energieeffiziente Protokolle (SMAC, TMAC ab Version 3.0) implementiert werden. Abbildung 24 gibt einen Überblick über die nötigen Dateien der Firmware und die nötigen und möglichen Dateien der Anwendungssoftware. Abb. 24: Schematischer Aufbau der ScatterWeb Software v2.3. Anwendungssoftware 42 3.3.2.1 ScatterWeb.Event Die Objektdatei ScatterWeb.Event ist Teil der Anwendungssoftware und stellt Methoden zur Bearbeitung und Weiterleitung von Sensordaten bereit. Sie bietet auch die Möglichkeit einer simplen Implementierung einer Anwendung. Zum Beispiel, in periodischen Abständen die LED's der Sensorknoten an- und auszuschalten. Eine Implementierung könnte wie folgt aussehen: //ScatterWeb.Event.c void periodic_function(){ //Der Zähler wird über den seriellen Ausgang ausgegeben. Comm_print(„%i“, zaehler); //Wenn der Zähler bis 250 hochgezählt hat, soll er das grüne Licht anschalten und den Zähler wieder auf null setzen. if (zaehler>250){ Data_greenToggle(); //Funktion aus der Firmware zaehler=0; } else { zaehler++ } Zugegeben, ein sehr einfaches Beispiel. Dieser Ansatz soll jedoch das Zusammenspiel zwischen Firmware und Anwendungssoftware praktisch erläutern. Dieser Programmcode kann als eigenständiges Programm auf die Firmware aufgesetzt werden und sich dabei die Funktionen der Firmware zu Nutze machen, um indirekt auf die Hardware zugreifen zu können. Im Beispiel schaltet die Funktion Data_greenToggle(), welche in der Firmware implementiert ist, eine grüne LED auf der Platine des ESB an und aus. Die ScatterWeb Plattform im praktischen Einsatz Die ScatterWeb Plattform im praktischen Einsatz 43 3.4 Die ScatterWeb Plattform im praktischen Einsatz Die ScatterWeb Plattform im praktischen Einsatz In diesem Abschnitt wird ein praktischer Versuchsaufbau erläutert, mit dem getestet wurde, ob die Applikation ScatterRouting die Daten der Sensorknoten via Multihop zum Basisknoten sendet. Zu Beginn wurde auf jedem Sensorknoten (ESB) und dem Basisknoten (eGate/WEB) die Applikation ScatterRouting gespeichert, die die Daten über mehrere Sensorknoten zum Basisknoten transportiert (Multihop). Zur Validierung, welcher Sensorknoten Multihop betreibt oder ob es generell umgesetzt wird, wurden den Sensorknoten zusätzliche Programmfragmente implementiert. Dabei sollen die LED's der Sensorknoten angesteuert werden, wenn Multihop umgesetzt wird, oder ein Sensorereignis eintritt. Die rote LED soll nach der Messung eines Sensorereignisses, hier eine Bewegung, getriggert werden. Die grüne LED soll angesteuert werden, wenn eine Datenpaket von einem anderen Knoten empfangen wurde und zur Weiterleitung zum Basisknoten vorgesehen ist. Nachdem jeder Sensorknoten eine modifizierte ScatterRouting Applikation im Flash-Speicher des Mikrocontroller gespeichert hat, wurden vier Sensorknoten in einem Gebäude an unterschiedlichen Plätzen aufgestellt. Die Entfernung von einem Sensorknoten zu einem Anderen beträgt dabei nie mehr als 20m. Laut Herstellerangaben beträgt die maximale Reichweite in Gebäuden 100m. Der Basisknoten enthält ebenfalls eine ScatterRouting Applikation, mit dem Unterschied, dass die Dateien process und event den Belangen eines Basisknoten angepasst sind und die Programmfragemente zur Steuerung der LED's nicht enthalten sind. Der Basisknoten wird mit einem Ethernet-Kabel an eine externe Stromversorgung angeschlossen. Mit einem weiteren Ethernet-Kabel wird das Netzteil mit einem Router verbunden, der über einen Anschluss an das Internet verfügt. Nach dieser Installation ist es möglich mit einem handelsüblichen PC eine verbindungsorientierte Kommunikation mit dem Basisknoten aufzubauen. Dazu wird das Programm ScatterViewer benutzt, das anhand der IP des Basisknoten eine Verbindung zum Basisknoten aufbaut und den Datenaustausch mit dem TCP/IP Protokoll vollzieht. Von diesem javabasierten Programm kann nun die Konfiguration des Sensornetzes, mittels dreistelligen ASCII Kommandos, übernommen werden. Dazu gehört zum Beispiel die Aktivierung des Die ScatterWeb Plattform im praktischen Einsatz 44 benötigten Bewegungssensors. Erfasste Sensorereignisse, werden mit Angabe des Zeitpunktes der Erfassung zeilenbasiert im ScatterViewer dargestellt. Nachdem sich die Knoten initialisiert haben und eine Verbindung mit dem Basisknoten oder anderen Knoten hergestellt wurde, werden die Kommunikationspfade des Netzwerkes festgelegt, über welche Knoten die Datenpakete weitergeleitet werden. Beim Versuchsaufbau wurden die Sensorknoten räumlich so platziert, dass sie eine Linie bilden und sich der Basisknoten an einem Ende befindet. Zur Durchführung des Versuches wird eine Bewegung am äußersten Sensorknoten verursacht, welche durch aufleuchten der roten LED am Sensorknoten bestätigt wird. Wie erwartet, setzt sich nun eine Kettenreaktion in Gang, bei der die grünen LED's nacheinander getriggert werden. (Abb. 25). Dies bestätigt, dass die Daten nicht direkt zum Basisknoten gesendet wurden, sondern mittels Multihop zum Basisknoten geleitet wurden. Die ScatterWeb Plattform im praktischen Einsatz 45 Abb. 25: Schematischer Aufbau eines drahtlosen Sensornetzwerkes mit Verbindung zu einem PC und Detektierung einer Bewegung mit anschließendem Versand via Multihop zum Basisknoten (eGate/WEB). Verarbeitung und Visualisierung von Messdaten aus einem drahtlosen Sensornetzwerk 46 Verarbeitung und Visualisierung von Messdaten aus einem drahtlosen Sensornetzwerk Teil II: Verarbeitung und Visualisierung von Messdaten aus einem drahtlosen Sensornetzwerk Teil II baut auf den Grundlagen und dem praktischen Verständnis von Teil I auf, und zeigt eine Möglichkeit zur Verarbeitung und Visualisierung von Daten aus einem drahtlosen Sensornetzwerk der Firma ScatterWeb. Der Ansatz besteht aus einer Kombination aus Datenbankmanagementsystem, geographischem Informationssystem (GIS) und dynamischen Web Technologien (Abb. 26). Diese Methode, drahtlose Sensornetzwerke an webbasierte, geographische Informationssysteme (WebGIS) zu koppeln, ist nach eigenen Recherchen, bisher nicht umgesetzt worden oder zumindest ist keine Internetpräsenz im deutsch- und englischsprachigen Raum verfügbar (Stand Juni: 2006). Es gibt Projekte, die eine Online-Plattform zur Visualisierung von Messdaten aus drahtlosen Sensornetzwerken bereitstellen, zum Beispiel in Form einer Tabellenausgabe mit Angabe der Nummer des Sensorknoten und dessen erfasster Wert [10,37]. Jedoch ist die Verknüpfung von webbasierten, geographischen Informationssystem und Daten aus drahtlosen Sensornetzwerken bei keiner dieser Plattformen vorhanden. Bisherige Lösungsansätze Auf vorangegangene Arbeiten zur Umsetzung einer solchen Aufgabenstellung konnte somit nicht zurückgegriffen werden. Was jedoch nicht negativ betrachtet werden sollte, da die Themen drahtlose Sensornetzwerke und WebGIS als eigenständige Themen behandelt werden können und nur die Schnittmenge eine neues Gebiet darstellt. Abb. 26: Verarbeitung und Visualisierung von Messdaten aus einem drahtlosen Sensornetzwerk. Bisherige Lösungsansätze 47 4 Bisherige Lösungsansätze Bisherige Lösungsansätze In diesem Kapitel werden zwei Lösungsansätze zur Visualisierung von drahtlosen Sensornetzwerken und ihren erfassten Daten aufgezeigt. Beide Ansätze nutzen das Internet als Visualisierungs- und Kommunikationsplattform. 4.1 COMMON-Sense Net Das COMMON-Sense Net ist im Centre for Electronics Design and Technology in Bangalore (CEDT), Indien, installiert [10]. Das Sensornetz besteht aus 10 Sensorknoten (Mica2 motes) und erfasst vier messbare Werte im Garten des CEDT. Dazu gehören die Temperatur, Bodenund Luftfeuchtigkeit, sowie der Luftdruck. Die gespeicherten Daten werden separat in Diagrammen dargestellt. Auch eine Ausgabe individueller Diagramme, mit spezifischer Zeitangabe und Auswahl mehrerer Sensoren, soll in den kommenden Monaten möglich sein. Des Weiteren werden über eine Schemazeichnung, dynamisch, im Abstand von fünf Minuten, Vektoren dargestellt, die die aktuellen Übertragungsrouten der erfassten Daten der Sensorknoten zum Basisknoten repräsentieren (Abb. 27). Dies ist zwar keine hilfreiche Visualisierungsmethode für naturwissenschaftliche Nutzer die nur an den erfassten Daten interessiert sind, jedoch bekommt der Informatiker Aufschluss, wie die Datenpakete im Netz geroutet werden und kann somit auf einen Blick erkennen, ob jeder Knoten eine Verbindung zu einem Anderen aufweist, oder ob zu viel Datenverkehr über einen Knoten transportiert wird. Das interessanteste Feature ist jedoch, dass ein autorisierter Nutzer die Möglichkeit hat, eine Konfiguration des Netzes über einen Internet-Browser vorzunehmen (Abb. 28). Somit kann diese Person, ohne Installation einer Software, von jedem System mit Zugang zum Internet, auf das Sensornetz Einfluss nehmen. Bisherige Lösungsansätze 48 Abb. 27: Verbindungsgraph der Sensorknoten. Quelle: [10]. Abb. 28: In diesem Ausschnitt ist die Einstellung der Sendeleistung der Sensorknoten möglich. Quelle: [10]. 4.2 MoteLab MoteLab ist an der Harvard Universität, in Cambridge, USA, installiert [37]. Es wurde primär als Testumgebung für Forscher und Studenten entwickelt, die sich mit drahtlosen Sensornetzwerken beschäftigen. Dazu wurden 190 Sensorknoten (Mica2 motes) über drei Etagen in den Räumen des Electrical Engineering and Computer Science (EECS) Gebäude verteilt. Zur Visualisierung des Sensornetzes wurde der Gebäudeplan genutzt und die Position der Sensorknoten gekennzeichnet. Vektoren werden hier ebenfalls zur Darstellung von Verbindungen zwischen Sensorknoten genutzt. Zusätzlich wird die Verbindungsqualität durch eine Farbcodierung der Vektoren von grün für sehr gut, bis rot für sehr schwach, dargestellt Bisherige Lösungsansätze 49 (Abb. 29). Der eigentliche Kern dieser Testumgebung ist die Möglichkeit, selbst programmierte oder modifizierte Applikationen auf die Sensorknoten über ein Web-Interface hochzuladen, um verifizieren zu können, dass die Applikation auch in großangelegten Sensornetzwerken so operiert, wie man es zuvor, lokal mit dem eigenen Sensornetz, mit wenigen Sensorknoten, getestet hat. Ein großer Vorteil ist, dass der Nutzer nicht direkten Zugang zu den Sensorknoten haben muss, sondern an einem entfernten Ort seine Applikation programmiert und trotzdem in dieser großen Umgebung testen kann. Dies ist möglich, sobald ein Nutzer eine entsprechende Berechtigung hat. Dazu bekommt er Zugang zu einer separierten Datenbank und kann dort auf seine erfassten Daten direkt zugreifen. Damit nicht mehrere Nutzer gleichzeitig ihrer Applikationen hochladen können, oder Nutzer Zugriff auf die Applikationen anderer Nutzer haben, wurde eine Online System implementiert, dass wie ein Belegungsplan aufgebaut ist. Jeder Nutzer kann sich zu freien Zeiten, bestimmte Zeitfenster zur Nutzung der Testumgebung reservieren (Abb. 30). Aus der Perspektive eines Entwicklers ist dies momentan wohl die innovativste Idee, ein drahtloses Sensornetzwerk, mit anderen Nutzern weltweit, zu teilen [47]. Abb. 29: Grundriss des EECS und Darstellung der installierten Sensorknoten und ihrer Verbindungsqualität zu anderen Sensorknoten. Quelle: [36]. Bisherige Lösungsansätze 50 Abb. 30: Belegungsplan des MoteLab. Quelle: [47]. SensorGIS SensorGIS 51 5 SensorGIS Der Begriff SensorGIS ist im Rahmen dieser Arbeit entstanden. SensorGIS ist die Integration von drahtlosen Sensornetzwerken in ein webbasiertes, geographisches Informationssystem (WebGIS). Der Schwerpunkt liegt bei einer adäquaten Aufbereitung und dynamischen Visualisierung der erfassten Daten und den geographischen Positionen der Sensorknoten. Im Gegensatz zu den webbasierten Plattformen aus dem vorigen Kapitel, in welchem die Sensorknoten statisch eingezeichnet sind, bietet SensorGIS einen maximalen Grad an Individualisierung und Dynamik zur Darstellung der Inhalte, sowie eine echte, automatische Georeferenzierung. 5.1 Systementwurf und Implementierung Systementwurf und Implementierung Über die inhaltlichen Anforderungen hinaus soll das System bestimmte Kriterien erfüllen. Der Zugriff soll dabei über das Internet erfolgen, wobei Webtechnologien zu einer dynamischen Darstellung der Inhalte genutzt werden. Die Aufbereitung der erfassten Rohdaten soll in visuellen Formaten wiedergegeben werden, die von jedem Nutzer einfach verstanden werden können. Für Sachdaten (Messdaten der Sensorknoten) mit einer geographischen Position (Sensorknoten) sind Karten prädestiniert. Sie geben dem Nutzer einen schnellen Überblick über die Situation und detaillierte Informationen können, durch Exploration der Karte, erkannt werden. Zur Umsetzung der Informationen in eine Karte wurde ein sogenannter Mapserver verwendet. Der Mapserver bedient sich aus einem Satz an Raster- oder Vektordaten, in diesem Fall den geographischen Positionen der Sensorknoten und generiert daraus eine Karte, welche in gängigen Grafikformaten, wie JPG, GIF oder PNG, im Browser ausgegeben wird. Die erfassten Daten des drahtlosen Sensornetzwerkes werden in einer Datenbank gespeichert, da sie ein Management von vielen Daten erlaubt und hinsichtlich der Speicherung und Ausgabe performanter als ein Dateisystem ist [62,67]. Die Positionen der Sensorknoten und die topographische Basiskarte, die den Bezug zum Georaum herstellt, werden ebenfalls in der Datenbank gespeichert. Da die im Rahmen dieser Diplomarbeit genutzten Sensorknoten nur in geschlossenen Räumen eingesetzt werden können, besteht die Basiskarte aus dem Grundriss der Räume, in denen das Sensornetz installiert ist. Systementwurf und Implementierung 52 Um dem Anspruch gerecht zu werden, dass SensorGIS ein dynamisches Informationssystem bereit stellt, soll es möglich sein, dass der Nutzer die Sensorknoten, anhand der geographischen Orientierung durch die Basiskarte, direkt in das System eintragen und nach Bedarf auch wieder löschen kann. Die Implementierung zur Erstellung von thematischen Karten wurde ebenfalls in SensorGIS realisiert. Der Nutzer hat dabei die Möglichkeit, anhand der gemessenen Temperaturwerte eine Karte zu generieren, die die Temperaturverteilung in der Umgebung des drahtlosen Sensornetzwerkes visualisiert. 5.1.1 Übersicht des Gesamtsystems Übersicht des Gesamtsystems Die SensorGIS Plattform besteht aus drei Komponenten (Abb. 31). Jede Komponente setzt sich aus einer Reihe an Applikationen und Prozessen zusammen. Die erste Komponente steuert und erfasst den eingehenden Datenstrom des drahtlosen Sensornetzwerkes, verarbeitet diesen in ein standardisiertes Format und trägt die Daten in der zweiten Komponente in eine Datenbank ein. Die dritte Komponente ist die Anwendung, die die Aufbereitung und Visualisierung der Geodaten übernimmt. Übersicht des Gesamtsystems 53 Abb. 31: Schematische Darstellung des Gesamtsystem. Zur Umsetzung des Entwurfs und der zu erfüllenden Kriterien, ist eine Vielzahl an Programmen und Bibliotheken notwendig. SensorGIS wurde ausschließlich mit Open Source Produkten umgesetzt. Als Open Source Software wird solche bezeichnet, die ohne Einschränkungen genutzt, verändert und kopiert werden darf und der Quellcode dabei frei verfügbar ist [57]. Abbildung 32 basiert auf Abbildung 31 und zeigt, welche Software zur Umsetzung eingesetzt wurde und veranschaulicht zugleich den Zusammenhang mit dem Gesamtsystem. Übersicht des Gesamtsystems Abb. 32: Verwendete Software zur Umsetzung des Gesamtsystem. Originäre Datenerfassung 54 Originäre Datenerfassung 55 5.1.2 Originäre Datenerfassung Originäre Datenerfassung Die Datenerfassung mit der von ScatterWeb entwickelten Plattform Scatterviewer wurde im Kapitel 3.4 beschrieben. Scatterviewer wurde mit Java programmiert und kann nur lokal auf einem Rechner ausgeführt werden. Daten, welche Scatterviewer erfasst, werden nicht in einer Datenbank gespeichert, sondern sind nur in der Konsole verfügbar, solange Scatterviewer als Applikation gestartet ist. Ferner können die Rohdaten nur mittels Diagrammen graphisch aufbereitet werden und und es besteht außerdem keine Möglichkeit die erfassten Daten über das Internet zu publizieren. Um diese Nachteile zu umgehen wurde ein PHP Programm geschrieben, das serverseitig von einem Webserver interpretiert und ausgeführt wird. PHP (rekursives Akronym für PHP: Hypertext Preprocessor) ist eine Skriptsprache und wurde vornehmlich benutzt, da PHP im weiteren Verlauf auch zur Erstellung der dynamischen Webinhalte und Programmierung diverser Applikationen verwendet wurde. Außerdem zeichnet sich PHP durch eine breite Datenbankunterstützung und zahlreich verfügbaren Funktionsbibliotheken aus. Mit PHP ist es möglich, die erfassten Daten direkt in eine Datenbank zu speichern. Technische Umsetzung Zur Erfassung der Daten aus dem drahtlosen Sensornetzwerk muss in PHP ein sogenannter Socket programmiert werden. Dieser Socket besteht aus einer IP-Adresse zu einer eindeutigen Lokalisierung des Rechners und einer Port-Nummer zur Adressierung der Schnittstelle. Die wichtigsten Codefragmente zur Programmierung eines Sockets werden im Folgenden beschrieben: Originäre Datenerfassung 56 $address = '212.79.172.183'; //IP-Adresse $port = 7890; //Port-Nummer //Nun müssen Funktionen verwendet werden, die anhand dieser Angaben einen Socket zur Verfügung stellen. //Ein Socket wird erstellt. $sock = socket_create (AF_INET, SOCK_STREAM, 0); //Der Socket wird an die IP-Adresse und den Port gebunden. $ret = socket_bind ($sock, $address, $port); //Der Socket wartet auf hereinkommende Verbindungen. $ret = socket_listen ($sock, 5); //Der Socket akzeptiert einen Verbindungswunsch. do { $msgsock = socket_accept($sock) //Der Socket liest den hereinkommenden Datenstrom und gibt ihn aus. Eine Endlosschleife wartet permament auf hereinkommende Daten. do { $buf = socket_read ($msgsock, 2048); echo "$buf\n"; } while (true); socket_close ($msgsock); } while (true); socket_close ($sock); Damit Daten aus dem drahtlosen Sensornetzwerk gesendet werden können, muss der Gateway (eGate/WEB) konfiguriert werden. Unter anderem muss eingestellt werden, an welche IPAdresse und Port-Nummer gesendet werden soll. Die Angabe, dass das TCP/IP-Protokoll zur Übertragung eingesetzt werden soll, ist auch eine wichtige Voraussetzung, damit die Kommunikation über ein einheitliches Protokoll abläuft. Zusätzliche Einstellungen wie Übertragungsrate, Parität, Anzahl der Datenbits etc. sind eventuell auch vorzunehmen. Wenn eine Übertragung möglich ist und die Daten permanent in einer Schleife serverseitig empfangen werden, sind die meisten Datenpakete in fragmentierter Form vorhanden und müssen zu einem Datensatz neu zusammengesetzt werden. Eine korrekte Nachricht würde aus Originäre Datenerfassung 57 der ID, dem Zeitstempel und dessen Wert bestehen. Jedoch müssen zur Datenübertragung die Nachrichten in kleinere Datenpakete aufgeteilt werden. In einem Datenpaket ist zum Beispiel der Wert der vorherigen Messung und die ID der aktuellen Messung vorhanden. Im nächsten Datenpaket folgt die Hälfte des Zeitstempels und im dritten Paket der Rest mit vielleicht neuen Informationen einer Messung. Damit diese zerlegten Datenpakete zusammengesetzt werden können, musste ein Algorithmus implementiert werden, der durch logische Operationen den ursprünglichen Zustand der Nachricht wiederherstellen kann. Für diesen Zweck muss eine Modifikation der Applikation auf Seiten des Gateways vorgenommen werden. Wenn ein Sensorereignis versendet werden soll, wird am Anfang und am Ende jeder Nachricht eine eindeutige Kennzeichnung angefügt. Nachdem die Nachricht wieder in ihren ursprünglichen Zustand zusammengesetzt wurde, sind die Anfangs- und Endkennzeichnungen nicht mehr notwendig und können entfernt werden (Abb. 33). Abb. 33: Zustände von drei Nachrichten die vom Gateway bis zum Server transferiert werden. Originäre Datenerfassung 58 Der Algorithmus ist so implementiert, dass er zu Beginn alle möglichen Daten des drahtlosen Sensornetzwerkes ignoriert und darauf wartet, bis ein Anfangskennzeichen empfangen wird. Wird ein Anfangskennzeichen erfasst, empfängt eine Schleife alle hereinkommenden Datenpakete und speichert sie temporär ab. Nachdem das Endkennzeichen empfangen wurde, werden alle Datenpakete vom Anfangs- bis zum Endkennzeichen zusammengesetzt und beide Kennzeichen entfernt. Anschließend wird die Nachricht durch reguläre Ausdrücke in ihre Einzelbestandteile ID, Zeitstempel (Datum, Uhrzeit) und Sensorereignis zerlegt und in einer Datenbank gespeichert. Wie das Datenbankmodell aufgebaut ist, wird in Kapitel 5.1.3.2.2 detailliert erläutert. 5.1.2.1 Aggregation Aggregation In diesem Abschnitt soll anhand einer PHP-Implementierung aufgezeigt werden, dass eine direkte Verbindung zu den theoretischen Grundlagen aus dem ersten Teil hergestellt werden kann. Im ersten Teil wurde immer auf die Notwendigkeit von energieeffizienten Implementierungen hingewiesen und Kapitel 3.3.1.1 erklärte mit Hilfe der Objektdatei ScatterWeb.Data mit der Funktion Data_temperatureON() eine praktische Umsetzung. Mit dieser Funktion war es möglich, die Temperatur im Abstand von x Zeiteinheiten zu messen, wobei die Werte nur gesendet werden, wenn die Temperaturdifferenz mehr als y °C beträgt. Dadurch kann es vorkommen, dass ein Sensorknoten einen Temperaturwert über einen längeren Zeitraum nicht sendet. Wenn aber eine höhere zeitliche Auflösung und eine Konsistenz in der Datenbank notwendig ist, um z. B. Werte für genauere Analysen verwenden zu können, ist diese Möglichkeit der Aggregation im Sensornetz unzulänglich. Die Funktion Data_temperatureON() müsste so konfiguriert werden, dass sie alle x Zeiteinheiten eine Messung vornimmt und diesen Wert, auch wenn er nicht vom vorigen abweicht, sendet. Dies wirkt sich nachteilig auf die Energiereserven und die Bandbreite aus. Durch die Verwendung von PHP kann ein Algorithmus implementiert werden, der es erlaubt, die Aggregation im drahtlosen Sensornetzwerk beizubehalten und trotzdem die geforderte zeitliche Auflösung in der Datenbank verfügbar zu machen. Die Temperaturdifferenz in der Aggregation 59 Funktion Data_temperatureON() wird dabei auf die max. Auflösung des Temperatursensors eingestellt. Die ESB-Sensorknoten haben eine Auflösung von 0,5°C. In Abständen des Intervalls ti zur Messung des Temperaturwertes seitens des Sensorknotens wird nun in der Datenbank geprüft, ob Temperaturmessungen, im Zeitraum des Intervalls ti, von Sensorknoten empfangen worden sind. Falls dem nicht so ist, kann davon ausgegangen werden, dass keine Temperaturdifferenz zur vorigen Messung vorhanden ist. Somit wird der letzte Wert der Messung aus der Datenbank kopiert und in eine neue Zeile mit dem alten Zeitstempel, plus die Zeit des Intervalls ti, gespeichert (Abb. 34). WebGIS Abb. 34: Algorithmus zur Erfassung von Temperaturdaten in kontinuierlichen Zeitabständen, wobei Temperaturmessungen in unkontinuierlichen Zeitabständen aus dem drahtlosen Sensornetzwerk gesendet werden können. WebGIS Dieses Programm wurde als eigenständige Applikation entwickelt, kann jedoch auch in das PHP-Programm zur Erfassung von Sensorereignissen implementiert werden. WebGIS 60 5.1.3 WebGIS WebGIS Unter einem webbasiertem, geographischen Informationssystem (WebGIS) versteht man die dynamische und interaktive Visualisierung von geographischen Informationen über das Interoder Intranet, bei der einfache GIS-Funktionalitäten, wie (Zoom, Pan etc.) verfügbar sind [61]. Zur Umsetzung eines WebGIS bedarf es im einfachsten Fall einer Client Server-Architektur, die eine Anfrage eines Nutzers an einen Webserver sendet und dieser die Anfrage zum Mapserver weiterleitet. Der Mapserver hat Zugriff auf einen Satz an Geodaten und generiert ein Rasterbild, die dann über den Webserver zum Client gesendet wird (Abb.35). Diese Architektur hat die Bezeichnung eines thin Clients, da jegliche Interaktion zu einer serverseitigen Neuberechnung der Karte führt und einen wiederholten Transport durch das Netz fordert. Thin Clients haben die geringsten Anforderungen an die Hardware und der Nutzer benötigt lediglich einen Internet-Browser und kann somit plattformunabhängig agieren. Im Rahmen der Diplomarbeit wurde die thin Client Architektur verwendet. Das Gegenteil zum thin Client ist der thick Client, der direkten Zugriff auf die Datenbasis hat und die damit zum Teil Abb. 35: einfache WebGIS Client Server Architektur. rechenaufwändigen Prozesse durch eigenständige Applikationen, oder in den Browser eingebettete Applets oder Plugins, verarbeiten muss. Ein medium Client stellt eine Lösung aus der thin- und thick Architektur dar, und wird zum Beispiel beim Einsatz eines WebGIS in Verbindung mit SVG (Scalable Vector Graphics) eingesetzt [71]. 5.1.3.1 UMN Mapserver und Apache Webserver UMN Mapserver und Apache Webserver Als Webserver wurde der Apache HTTP Server der Apache Software Foundation genutzt. Er ist der meistverwendete Webserver im Internet und überzeugt durch eine hohe Geschwindigkeit und Stabilität, sowie einer breiten Interoperabilität mit anderen Betriebssystemen [70]. UMN Mapserver und Apache Webserver 61 Bei der Wahl des Mapserver fiel die Entscheidung für den UMN (University of Minnesota) Mapserver. Der UMN Mapserver kann nur in Verbindung mit einem WebServer installiert werden, da er als CGI-Applikation (CGI: Common Gateway Interface) in der ScriptSchnittstelle des Webservers betrieben wird. In diesem Verzeichnis hat der Mapserver die Berechtigung vom Nutzer ausgeführt zu werden und hat Zugriff auf die Geodaten. Der UMN Mapserver ist als eigenständiges Modul in die Umgebung des Apache Webserver eingekapselt. Startet der Nutzer eine Anfrage an den Webserver findet die Kommunikation über das HTTP-Protokoll statt und die Generierung von Inhalten, ohne Kartenanfragen, wird nur über den Webserver geregelt. Besteht eine Kartenanfrage, wird dies über die CGI-Schnittstelle an den UMN Mapserver weitergeleitet, der daraufhin mit einer Reihe von zusätzlichen Parametern eine Karte in From eines Rasterbildes generiert. Mit dem HTTP-Protokoll wird diese Karte via dem Webserver zum Nutzer an seinen Internet-Browser zurückgesendet. [53] Wie eine solche Kartenfrage aufgebaut ist und mit welchen Angaben der UMN Mapserver eine Karte generiert, wird in den folgenden Abschnitten erläutert. 5.1.3.1.1 Die MAP-Datei Die Map-Datei ist eine zu programmierende Datei auf die der UMN Mapserver zurückgreift und anhand dieser Informationen das Erscheinungsbild der Karte steuert. Basierend auf den gleichen Geodaten, ist das Design der Karte, hinsichtlich der Darstellung von Farben und Größen, abhängig von der MAP-Datei. Die MAP-Datei ist hierarchisch aufgebaut. Jede MAP-Datei definiert eine endliche Zahl an bestimmten Objekten. Diese Objekte definieren u.a. die Legende, die Maßstabsleiste, die Farben der Kartenelemente, die hierarchische Struktur der Kartenebenen, die Größe der Karte etc.. Jedes Objekt besteht aus Schlüsselwörtern, deren Ausprägungen in Form von alphanumerischen Zeichen definiert werden. Die zugrundeliegende MAP-Datei zur Visualisierung und Strukturierung der Geodaten aus dem drahtlosen Sensornetzwerk, die in einer Datenbank gespeichert sind, besteht aus drei Objektebenen. Jede Ebene stellt nach Hake et al. [59] eine der drei graphischen Grundelemente UMN Mapserver und Apache Webserver 62 Punkt, Linie und Fläche dar. Die oberste Ebene beinhaltet die Darstellung der Sensorknoten als Punktsignaturen. Darunterliegend der Grundriss als Liniensignatur zur Visualisierung der Räumlichkeiten, indem das drahtlose Sensornetzwerk installiert ist. Die 3. und unterste Ebene, wird als Flächensignatur zur Darstellung der Temperaturverteilung im Raum benutzt. Als zusammengesetztes Kartenbild geben die einzelnen Ebenen eine komplexe graphische Struktur wieder (Abb. 36). Abb. 36: Ebenenhierarchie der MAP-Datei. UMN Mapserver und Apache Webserver 63 Zur Verdeutlichung dieses Abschnittes sollen anschließend Programmfragmente aus der MAPDatei aufgezeigt werden. //Grundlegende Definitionen zu Beginn. MAP NAME 'sensorgis' //Name der Karte, die der UMN Mapserver generiert. STATUS ON PROJECTION //Art der Projektion, die auf die Karte angewandt werden soll. 'init=epsg:31467' END SIZE 350 400 //Größe des Ausgabeformats der Karte in Pixel EXTENT 3260750 5221045 3950844 6131575 //Die Bounding Box zur Eingrenzung der zu verwendenden Daten. Die Angabe erfolgt duch geographische Koordinaten. UNITS meters //Pfadangaben zu den Shapefiles, Symbolen und Schriften. SHAPEPATH 'data/' SYMBOLSET'/var/data/webapps/sensorgis/symbols/symbset.sym' FONTSET '/var/data/webapps/sensorgis/symbols/fonts.fnt' IMAGECOLOR 255 255 255 ... //Deklaration des Layers Sensorknoten als Punktsignatur. LAYER NAME "Sensorknoten" TYPE POINT STATUS ON //Die Verbindung zur Datenbank und der benötigten Koordinaten der Sensorknoten. CONNECTIONTYPE postgis CONNECTION "user=postgres dbname=sensorgis host=212.79.172.184" DATA "the_geom from tbl_koordinaten using SRID=31467" CLASS UMN Mapserver und Apache Webserver 64 //Festlegung des Designs des Sensorknoten. NAME 'Sensorknoten' STYLE SYMBOL "circle" //Sensorknoten wird als Kreis dargestellt. COLOR 255 0 0 //Rot. SIZE 12 END #STYLE END #CLASS END #LAYER ... 5.1.3.1.2 WMS Ein Web Map Service (WMS) regelt den Austausch bzw. die Kartenanfrage zwischen dem Nutzer mit einem Internet-Browser und dem Mapserver, der Zugriff auf die Geodaten hat. Der WMS ist ein Standard der von dem Open Geospatial Consortium (OGC) [64] festgelegt wurde. Das OGC ist ein internationaler Zusammenschluss von Vertretern aus dem gewerblichen, öffentlichen und universitären Bereich, deren Ziel es ist offene, plattform-, netzund programmunabhängige Spezifikationen zu etablieren, welche einen weltweiten Austausch von raumbezogenen Informationen und Dienstleistungen ermöglichen [64]. Die Intention des WMS ist eine Schnittstelle zu schaffen, die sowohl für den Client als auch für den Mapserver zur Verfügung stehen soll. Zur Kommunikation zwischen Mapserver und Client wird das HTTP-Protokoll verwendet und auf Basis des XML-Formats die Daten übertragen (XML: Extensible Markup Language). Die aktuellste Version ist 1.1.1, welche größtenteils vom UMN Mapserver seit der Version 3.5 unterstützt wird. Dabei müssen zwei Varianten von Anfragen beantwortet werden können: UMN Mapserver und Apache Webserver getCapabilities 65 Diese Anfrage liefert ein XML-Dokument zurück, das allgemeine Informationen, sogenannte Metadaten, über den Aufbau und die darzustellenden Objekte der MAP-Datei beschreibt. Dazu gehören, wie schon in Kapitel 5.1.3.1.1 angesprochen, der Koordinatenausschnitt (Boundig Box), das Projektionssystem, die verwendeten Ebenen etc.. getMap Erfolgt auf die getCapabilities Anfrage eine gültige Antwort, kann mit dem GetMap Aufruf eine Karte als Rasterbild angefordert werden. Der Aufbau einer solchen Anfrage richtet sich nach den Richtlinien eines HTTP-Request und kann als URL in der Browserleiste eingegeben werden. In der URL haben neben den üblichen HTTP-Restriktionen (keine Leerzeichen, Sonderzeichen etc.) folgende Zeichen eine spezielle Aufgabe: ? Kennzeichnung des beginnenden WMS. & Separator der einzelnen Parameter des WMS. = Wertzuweisung eines Parameter. Um nun einen OGC-konformen getMap Aufruf an den UMN Mapserver senden zu können, muss die MAP-Datei den Spezifikationen eines WMS angepasst werden. Dazu gehören u.a. notwendige Metadaten in bestimmten Sektionen einzelner Objekte. Am Beispiel von SensorGIS ein WMS-kompatibler URL-Aufruf an den UMN Mapserver: http://212.79.172.14/cgi-bin/mapserv48 ? map=/var/data/webapps/sensorgis/sensorgis.map & VERSION=1.1.1 //Welche Version des WMS & REQUEST=GetMap & SERVICE=WMS & LAYERS=grundrisshsr,sensorkn & SRS=EPSG:31467 //Welches Projektionsystem & BBOX=3260709.772727273,6130960,3261400.227272727,6131580 & WIDTH=490&HEIGHT=440 & FORMAT=image/png UMN Mapserver und Apache Webserver 66 In einer Zeile und ohne Leerzeichen geschrieben, bewirkt dieser Aufruf, dass der UMN Mapserver ein georeferenziertes Rasterbild der Sensorknoten und des Grundrisses als PNG (Portable Network Graphics im Browserfenster zurückgibt (Abb. 37). Abb. 37: Rasterbild mit Grundriss und Sensorknoten nach einem getMap-Aufruf. Zu näheren technischen Informationen zu WMS, WMS kompatible MAP-Datei und OGC und deren weiteren Spezifikationen wird weiterführende Literatur empfohlen [53,55,60,65]. 5.1.3.2 PostgreSQL mit PostGIS: Geographische Datenbank PostgreSQL mit PostGIS: Geographische Datenbank PostgreSQL ist ein objektrelationales Datenbankmanagementsystem (ORDBMS), dass ursprünglich an der Universität Berkeley entwickelt wurde. Es wird als das „fortschrittlichste Open-Source-Datenbanksystem der Welt“ bezeichnet [55,65,66]. PostgreSQL erlaubt die Speicherung von atomaren Daten und berechtigt den Nutzer eigene Datentypen, Operatoren und Funktionen zu definieren. Aus dieser Möglichkeit heraus wurde PostGIS entwickelt, das eine räumliche Erweiterung zur Speicherung und Verwaltung von Geodaten bietet. PostgreSQL mit PostGIS: Geographische Datenbank 67 Durch die zusätzlichen Datentypen, Operatoren und Funktionen kann PostgreSQL mit PostGIS als ein zentrales Datenbank-Backend für GIS-Applikationen eingesetzt werden, da Geo- und Sachdaten gemeinsam verwaltet werden. Die Unterstützung von Analysefunktionen (Buffer(), Contains(), Intersect() etc.) und der Möglichkeit Metadaten über Geo-Objekte zu verwalten, gehört ebenfalls zu den Leistungsmerkmalen. Nach OGC (Open Geospatial Consortium) ist somit ein konformes Geodatenmodell vorhanden, dass den Spezifikationen des Simple Features Specification for SQL entspricht [64]. 5.1.3.2.1 Geodatenmodell in PostGIS PostGIS ist die räumliche Erweiterung von PostgreSQL und genügt dabei dem Standard eines OGC-konformen Geodatenmodell (Simple Features Specification for SQL) [64]. Dieser Standard umfasst drei grundlegende Bedingungen: Geo-Objekttypen Die Geo-Objekttypen enthalten Informationen zu den Koordinaten, zum Geometrietyp und zur Projektion, in welchem Projektionssystem die Koordinaten gültig sind. Die Geometrie des Objektes kann durch sieben Varianten festgelegt werden: POINT, LINESTRING, POLYGON, MULTILINESTRING, MULTIPOINT, MULTIPOLYGON, GEOMETRYCOLLECTION. Die Geo-Objekttypen können in zwei Formaten dargestellt werden: Dem WKB (Well-Known-Binary), das als Binärcode vorliegt oder dem WKT (Well-Kown Text), das durch alphanumerische Zeichen dargestellt wird. Die Speicherung erfolgt bei beiden Formaten im Binärcode. PostgreSQL mit PostGIS: Geographische Datenbank 68 Funktionen zur Analyse Die momentan installierte Version 1.1.1 auf dem SensorGISund Manipulation Server stellt insgesamt 302 Funktionen und 17 Operatoren zur von Geo-Objekten Verfügung. Exemplarisch soll anhand der Funktion EXTENT() die Bounding Box der Koordinaten der Sensorknoten wiedergegeben werden: SELECT EXTENT (the_geom) FROM tbl_Koordinaten. Tbl_Koordinaten ist die Tabelle und the_geom ist die Spalte, in der die geographischen Koordinaten der Sensorknoten abgespeichert sind. Die Ausgabe der Koordinaten sieht wie folgt aus: BOX3D(3260750 5221045 3950844 6131575). Metadaten-Tabellen Die Metadaten-Tabellen geometry_columns und spatial_ref_sys machen Meta-Angaben über die vorhanden Projektionssysteme und deren EPSG- Code. 5.1.3.2.2 Sensordatenmodellierung In diesem Abschnitt soll das zugrundeliegende Datenmodell beschrieben werden, dass bei der Speicherung der Daten aus dem drahtlosen Sensornetzwerk angewandt wurde. Um Redundanz in der Datenbank zu vermeiden, ist es nicht sinnvoll alle Informationen der Sensorknoten in einer Tabelle abzuspeichern, sondern in unterschiedliche Tabellen aufzuteilen. Die Grundlage hierfür ist die Trennung zwischen den Informationen zu den Sensorknoten und den Meßdaten. Da die Sensorknoten immer stationär installiert werden, sind die Informationen zu den Sensorknoten statische Werte. Da durchaus die Aussicht besteht, die Einsatzorte der Sensorknoten zu variieren, erfolgte nochmals die Trennung in zwei Tabellen. Eine Tabelle speichert dabei die geographischen Positionen der Sensorknoten und die zweite Tabelle MetaInformationen über die Sensorknoten (Abb. 38). Darin können Angaben über die verfügbaren Sensoren, den Zeitpunkt der Inbetriebnahme oder sonstige relevante Informationen gespeichert werden. PostgreSQL mit PostGIS: Geographische Datenbank 69 Abb. 38: Sensordatenmodell. Client - Schnittstelle zum Benutzer Dagegen enthält die Tabelle der Meßwerte dynamische Daten, die jeweils nur für einen bestimmten Zeitpunkt gelten. Für jeden Sensortyp ist eine Tabelle vorhanden. Jede Tabelle setzt sich aus der ID, dem Zeitpunkt der Messung und dem Zeitpunkt der Speicherung in der Datenbank zusammen. Der eigentliche Wert des Sensor wird bei den Temperaturwerten als Skalar gespeichert, bei den restlichen Sensoren als Boolean, da diese Sensoren, wie schon in den vorigen Kapiteln angesprochen, nur zwischen zwei Zuständen unterscheiden können. Abbildung 39 stellt das zugrundeliegende ER-Modell von SensorGIS dar. Abb. 39: ER-Modell von SensorGIS. Client - Schnittstelle zum Benutzer 70 5.1.3.3 Client - Schnittstelle zum Benutzer Client - Schnittstelle zum Benutzer Aus der Sicht des Endanwenders bietet der Client (Internet-Browser) die einzige Schnittstelle zu den erfassten Daten. Daraus ergibt sich die Notwendigkeit einen Client zu entwickeln, der einen einfachen, intuitiven und interaktiven Zugang zum geographischen Informationssystem SensorGIS bietet. Die graphische Schnittstelle oder GUI (Graphic User Interface) wurde nach den Designkriterien von Ben Shneiderman entwickelt [68]. Diese Kriterien wurden nicht speziell für geographische Informationssysteme aufgestellt, sondern sind vielmehr allgemeingültige Anforderungen an eine GUI zur visuellen Exploration des Informationsraumes bzw. im Fall dieser Arbeit, des geographischen Informationsraumes. Aus seinen Forschungsarbeiten ergeben sich im wesentlichen fünf Direktive die eine graphische Oberfläche erfüllen muss: Direktive I: Die Selektion von detaillierten Informationen soll durch den Einsatz von Zoom-Funktionen erfolgen. In der digitalen Kartographie gehört die Nutzbarkeit solcher Funktionen zu den Basiswerkzeugen, um einen Interessenbereich der Karte zu vergrößern oder zu verkleinern. In SensorGIS wurden vier unterschiedliche Zoomwerkzeuge implementiert. Durch stufengeregeltes Ein- und Auszoomen um den Mittelpunkt der Karte (Abb. 40a/b), durch direkte Auswahl mittels eines Auswahlrechtecks (Abb. 40c) und einem Button, der den Ausgangsmaßstab wiederherstellt (Abb. 40d). Ebenso wird ein Werkzeug zur Verfügung gestellt, dass ein verschieben (pan) des Darstellungsbereiches im gleichen Maßstab erlaubt (Abb. 40e). Abb. 40a: Abb. 40b: Abb. 40c: Abb. 40d: Einzoomen. Auszoomen. Auswahlrechteck. Ausgangsmaßstab. Abb. 40e: Pan. Client - Schnittstelle zum Benutzer 71 Direktive II: Nach Shneiderman ist eine weitere Prämisse, dass während der Interaktion mit der graphischen Oberfläche der Nutzer einen Überblick über das gesamte System behalten sollte. Bei SensorGIS wird diese Anforderung durch die Darstellung im Kartenfenster verwirklicht. Zur Umsetzung wurde eine separate Übersichtskarte implementiert, die dem Nutzer einen Überblick seiner momentanen Position skizziert, egal in welcher Zoomstufe er sich befindet. Das separate Kartenfenster befindet sich immer im Ausgangsmaßstab, in dem alle Informationen dargestellt werden. Beim detaillierten Zoomen in die Karte wird der Kartenausschnitt mit einem Rechteck dargestellt (Abb.41). Damit behält der Nutzer in jeder Zoomstufe den Überblick und kann Korrelationen der detaillierten Informationen der Hauptkarte mit der geographischen Position in der Übersichtskarte wahrnehmen. Abb. 41: Übersichtskarte mit rotem Rechteck, das den Darstellungsbereich in der Hauptkarte markiert. Direktive III: Wenn ein Nutzer Detailinformationen über ein Objekt bekommen möchte, sollte er über die Funktionalität Details-on-Demand diese auch bekommen. SensorGIS bietet diese zusätzlichen Informationen durch Verwendung des Info-Buttons (Abb. 42a) und darauffolgender Auswahl eines Sensorknotens im Kartenfenster an. Der UMN Mapserver rechnet daraufhin die Pixelkoordinaten im Kartenfenster in geographische Koordinaten um. Innerhalb eines Toleranzbereichs wird nun der passende Sensorknoten in der Datenbank selektiert und detaillierte Informationen, wie Messdaten und Meta-Information (Abb. 42b), in einem PopupFenster angezeigt. Diese Möglichkeit, Informationen durch Auswahl eines Objektes in der Karte, wird nach OGC als Feature Info Request bezeichnet und gehört auch zu den Anforderungen eines WMS. Client - Schnittstelle zum Benutzer Abb. 42a: Button für die 72 Abb. 42b: Popup-Fenster mit Metadaten zum Sensorknoten mit der ID 1. Funktionalität Details-onDemand. Direktive IV: Eine Filter-Funktion ist nach Shneiderman notwendig, um bestimmte Inhalte des Informationsraums durch Herausfiltern zu kontrollieren, damit der Nutzer schneller auf seine Interessen fokussieren kann. Wie in Kapitel 5.1.3.1.1 beschrieben wurde, werden die notwendigen Informationen zur Erzeugung der einzelnen Ebenen sequentiell aus der Datenbank entnommen, um daraus ein einheitliches Rasterbild zu generieren. Es ist es auch möglich dem UMN Mapserver mitzuteilen, dass er zur Erstellung des Rasterbildes nur bestimmte Ebenen benutzen soll. Dazu beschriftet der Client die Ebenen und der Nutzer kann durch Auswahl von Häkchen bestimmen, welche Ebenen er angezeigt haben möchte (Abb. 43). Abb. 43: Filterfunktion der Ebenen. Client - Schnittstelle zum Benutzer 73 Direktive V: Die von Shneiderman formulierte Relate-Funktion soll zur Visualisierung von Korrelationen zwischen Objekten dienen. In SensorGIS wird versucht, einen gesetzmäßigen Zusammenhang auf der Grundlage der einzelnen Temperaturmessungen zu finden. Die Umsetzung erfolgt in Form einer Interpolation der Temperaturwerte und deren geographischer Position im Raum. Als Ergebnis bekommt der Nutzer ein Rasterbild der Temperaturverteilung im Raum (Abb. 44). Damit werden die einzelnen Messwerte in einem Gesamtkontext visuell aufbereitet. Es ist auch möglich, viele Messungen, über einen durch den Nutzer bestimmten Zeitraum zu aggregieren, um anhand der neuen Daten ein Bild zu interpolieren, das einen Überblick langzeitlicher Variabilitäten geben kann. Abb. 44: Rasterbild der Temperaturverteilung in einem Raum durch Interpolation aus vier Messungen. Nachdem eine Interpolation erfolgte, kann das Rasterbild georeferenziert unter die Ebenen der Sensorknoten und des Grundrisses eingefügt werden (Abb. 45). Nach Bollmann et al. [54] ergibt sich durch die topographischen Kartengrundlage der Sensorknoten und des Grundrisses in Verbindung mit Sachverhalten aus der natürlichen Umwelt eine thematische Karte. Dabei unterstützt die topographische Kartengrundlage den Bezug zum Georaum und die Verortung der thematischen Darstellungsschicht der Temperaturenkarte. Client - Schnittstelle zum Benutzer 74 Abb. 45: Thematische Karte der Temperaturverteilung in einem Raum mit Angabe der minimalen und maximale Temperatur durch eine Legende. Die technische Umsetzung der Interpolation wird in Kapitel 5.1.4 beschrieben. Zur temporalen Exploration der Daten wurde mittels der Programmbibliothek JpGraph für PHP ein Werkzeug entwickelt, das durch Angabe eines Zeitraums dem Nutzer die Daten in Form eines Diagramms visualisiert (Abb. 47). Des Weiteren ist in SensorGIS eine JavaApplikation implementiert, die eine Animation aus den Temperaturenkarten erstellt. Dabei wird in einem Zyklus von einer Stunde automatisch eine Temperaturenkarte generiert. Die JavaApplikation nutzt die letzten 24 Rasterbilder. Daraus ergibt sich eine Animation der Temperaturveränderung der letzten 24 Stunden. In einem Intervall von 60 Sekunden werden die sieben aktuellsten Temperaturmessungen der vorhandenen Sensorknoten angezeigt (Abb. 46). Client - Schnittstelle zum Benutzer 75 Abb. 46: Darstellung der aktuellen Temperaturmessungen. Abb. 47: Temperaturdiagramm eines Sensorknotens. 5.1.3.3.1 Mapbender „Die Mapbender Software ist eine modulare, webbasierte, plattformunabhängige, serverseitig in PHP implementierte WebGIS Client Suite“ [53]. Der Mapbender wurde benutzt, da er eine komfortable Entwicklungsumgebung bereitstellt, um daraus, auf Basis der OGC Kompatibilitätsvorschriften, Kartendienste zur erstellen, verwalten und konfigurieren zu können. Dazu werden die gängigsten Werkzeuge, wie Zoom, Pan, Ebenenauswahl etc. zur Verfügung gestellt und können dann vom Entwickler modifiziert, Client - Schnittstelle zum Benutzer 76 eingebunden oder gelöscht werden (Abb. 48). Der Mapbender wurde außerdem als zentrale Schnittstelle genutzt, um die einzelnen Elemente in einem Client zusammenzuführen. Dazu gehören u.a. die fünf Direktive des vorigen Abschnittes und die Implementierung eines WMS. Das fertige Frontend von SensorGIS ist in Abbildung 49 dargestellt. Abb. 58: Graphische Oberfläche des Mapbenders zur Verwaltung der einzusetzenden Werkzeuge in SensorGIS. Client - Schnittstelle zum Benutzer 77 Abb. 49: Frontend von SensorGIS. Erstellt mit Mapbender. 5.1.4 Kopplung von GRASS GIS und WebGIS Kopplung von GRASS GIS und WebGIS Damit es möglich ist, die Daten in der Datenbank in ein Rasterbild im Dateiformat zu interpolieren, bedarf es der Hinzunahme eines ausgereiften GIS-Programms. Solch eine anspruchsvolle Aufgabe verlangt einen intelligenten Algorithmus, der durch den UMN Mapserver oder die Funktionalitäten von PostGIS nicht erbracht werden kann. Das Credo, dass zur Umsetzung der ganzen Arbeit Open-Source-Software verwendet wird, musste bei der Wahl eines passenden GIS-Produktes auch gewährleistet werden. Die Wahl fiel zu Gunsten des Desktop-GIS GRASS aus. GRASS steht für Geographic Resources Analysis Support System und ist ein modulares Informationssystem mit raster- und vektororientierten Funktionalitäten. Die Entwicklug von GRASS GIS begann Anfang der 70er bei den Behörden der USA, die damit ihre Kopplung von GRASS GIS und WebGIS 78 geographischen Daten speichern und bearbeiten konnten. Aktuell wird GRASS GIS unter der Schirmherrschaft des ITC (Istituto Trentino di Cultura) in Italien koordiniert, vertrieben und entwickelt [58]. GRASS GIS wurde ursprünglich für UNIX-Plattformen entwickelt. D.h., Befehle zum Ausführen von GIS-Funktionalitäten müssen in der GRASS Konsole immer noch zeilenmäßig eingegeben werden. Daraus ergibt sich das Prinzip der Modularität. Jeder Befehl stellt ein eigenes Modul dar, das unabhängig von den Anderen nach einem Aufruf abgearbeitet wird. Eine ausführliche Beschreibung von GRASS GIS und dessen verfügbaren Module bieten Neteler & Mitsava in ihrem Buch Open Source GIS: A GRASS GIS approach [60]. Da GRASS GIS als Desktop-GIS entwickelt wurde, musste eine Möglichkeit gefunden werden, die Interpolation über das Internet ausführen zu können. Der Ablauf einer Interpolation ist hierbei immer der gleiche. Zuerst müssen die geforderten Positionen und Temperaturwerte der Sensorknoten aus der Datenbank abgefragt werden, um im zweiten Schritt eine Vektorkarte entwickeln zu können. Danach kann eine Interpolation erfolgen, welche als Ergebnis ein GRASS eigenes Rasterformat generiert, das im letzten Arbeitsschritt in ein PNG (Portable Network Graphics) Grafikformat umgewandelt wird. Diesen Ablauf über das Internet zu automatisieren ist mit der Skriptsprache PHP möglich. Dazu muss serverseitig GRASS GIS gestartet sein und das PHP-Programm wartet in einer Endlosschleife auf hereinkommende Anfragen. Wenn ein Nutzer eine Temperaturkarte der aktuell verfügbaren Werte generieren möchte, selektiert PHP diese Werte und die Positionen der Sensorknoten aus der Datenbank und speichert sie in einer neuen Tabelle. PHP kann mit der Funktion system() die einzelnen Module starten, wobei GRASS GIS die Daten aus der soeben gefüllten Tabelle bezieht. Beispielgebend ist der Aufruf: system("v.in.db table=tbl_tmp x=x y=y z=z key=sid output=v_tmp1"), der die Anweisung gibt, die Daten aus der Datenbank zu erfassen und neu zu speichern. Die eigentliche Interpolation wird durch den Befehl system("v.surf.idw input=v_tmp1 output=r_tm col=z") gestartet. Der Interpolationsalgorithmus IDSW (Inverse distance weighted average) wurde hierbei genutzt. Nachdem GRASS GIS die Interpolation abgeschlossen hat, kann der UMN Mapserver mit Hilfe einer Worldfile, die den Koordinatenbezug mit den anderen Inhalten herstellt (Grundriss, Sensorknoten), die Temperaturenkarte georeferenziert darstellen. Den Ablauf zur Erstellung und Wiedergabe einer thematischen Karte stellt Abb. 50 dar. Kopplung von GRASS GIS und WebGIS Abb. 50: Schematische Darstellung des internen Ablaufs zur Erstellung einer thematischen Karte. Ausblick 79 Ausblick 80 6 Ausblick Ausblick Mit SensorGIS wurde eine Plattform geschaffen, die es erlaubt Daten aus einem drahtlosen Sensornetzwerk entgegenzunehmen, zu speichern, aufzubereiten und zu visualisieren. Daraus ergibt sich ein breites Spektrum an Verbesserung- und Erweiterungsmöglichkeiten, die in diesem Abschnitt kurz skizziert werden sollen. Ein nach OGC standardisierten Prozess der Datenerfassung aus einem drahtlosen Sensornetzwerk wurde nicht realisiert. OGC hat dafür Sensor Web Enablement erarbeitet, eine Standardisierungsinitiative für einen einfachen, schnellen Austausch und Analyse von Sensordaten in komplexen Netzwerken. Diese Standardisierung beinhaltet unter anderem die Bereitstellung eines XML-Schemas mit der Bezeichnung Sensor Model Language (SensorML) das definiert, wie die geometrischen, dynamischen und beobachteten Charakteristika eines Sensors übermittelt werden sollen. SensorML ist ein allgemeines Schema, das zur Beschreibung jeglicher Sensorplattformen, wie Satelliten oder drahtgebundenen Sensornetzwerken, fungieren soll. Diese Anforderung an ein drahtloses Sensornetzwerk bedeutet, dass es zusätzliche Rechenleistung und Bandbreite benötigt, um die Daten standardisiert aufzubereiten und durch das Netzwerk senden zu können. Deshalb wurde darauf verzichtet, den Datenfluss im drahtlosen Netzwerk auf Basis des SensorML-Schema zu standardisieren. Es wäre jedoch möglich gewesen das SensorML-Schema beim eGate/WEB zu implementieren, damit die Daten vor der Speicherung auch anderen Nutzern standardisiert zugänglich gemacht werden. Dies hätte jedoch bedeutet, ein zusätzliches Programm für den eGate/WEB zu entwickeln und wurde bisher nicht umgesetzt. Mit SensorGIS ist es bisher nicht möglich über das Internet mit dem drahtlosen Sensornetzwerk zu interagieren, um z.B. die Sensorknoten neu zu konfigurieren oder auf Wunsch des Nutzers eine Messung zu ermöglichen. Eine solche Implementierung wurde mehrmals versucht umzusetzen, jedoch aufgrund von Schwierigkeiten der Schnittstellenprogrammierung zwischen dem eGate/WEB und dem SensorGIS-Server zunächst nicht weiter verfolgt. Die graphische Darstellung der Netzstruktur und die Integration einer Alarm-Funktion, die bei Überschreitung eines bestimmten Grenzwertes eine E-mail an den Nutzer schickt, sind weitere Möglichkeiten, um das System zu erweitern. Ausblick 81 Bei der Darstellung der thematischen Karte sollte GRASS GIS mit einer Verschneidung der Temperaturenkarte und des Grundrisses, erweitert werden (Abb. 51). Dadurch wäre eine realitätsnährere Darstellung der Temperaturverteilung im Raum gewährleistet. Auch das zugrundeliegende Farbspektrum der Temperaturenkarte ist nicht optimal und sollte mit kognitiveren Farben generiert werden. Das momentane Spektrum basiert auf den Farben des Regenbogens und erschwert die Assoziation von kalt zu warm (Abb. 51). Abb. 51: Durch eine Verschneidung der Temperaturkarte mit dem Grundriss würde der schwarz gekennzeichnete Bereich entfallen. Der schwarze Pfeil stellt einen Gradienten von kalt nach warm dar. Fazit Fazit 82 7 Fazit Fazit Aktuelle Informationen sind eines der wichtigsten Wirtschaftsgüter des 21. Jahrhunderts und auf dem Weg zu richtigen Entscheidungen für Politiker und andere Entscheidungsträger unerlässlich. Dynamische Phänomene automatisiert zu erfassen und darzustellen, ist das Gebot der Zeit und mit SensorGIS problemlos möglich. Vor dem Hintergrund der globalen Herausforderungen im Bereich Klima, Naturkatastrophen, Handel und Verkehr ist SensorGIS eine interessante Option für einen dynamischen Austausch von physikalischen Informationen aus unserer Umwelt. Auch wenn die zugrundeliegenden Techniken von SensorGIS vorhanden sind und zuverlässig funktionieren, erschließt sich das Potenzial noch nicht völlig, solange sich SensorGIS nicht mit einer realen, thematischen Fragestellung bewähren kann. Das Ziel der Diplomarbeit war die Referenzimplementierung eines webbasierten, geographischen Informationssystem, dass einen simultanen Datenfluss aus einem drahtlosen Sensornetzwerk ermöglicht. Durch Implementierung der Plattform SensorGIS wurde solch eine Anbindung umgesetzt. Zusätzlich verfügt diese Plattform über GIS-Funktionalitäten um eine visuelle Exploration der Daten zu gestatten. Konzeptionell fußt die visuelle Repräsentation der geographischen Daten auf Spezifikationen des OGC. Literaturverzeichnis 83 Literaturverzeichnis [1] Bill, R. & D. Fritsch (1991): Grundlagen der Geoinformationssysteme, Band 1: Hardware, Software und Daten. Wichmann, Heidelberg. [2] Fürst, D., et al. (1996): Umweltinformationssysteme - Problemlösungskapazitäten für den vorsorgenden Umweltschutz und politische Funktion. Beiträge zur räumlichen Planung 46, Hannover. [3] Grünreich, D. (1992): Aufbau von Geo-Informationssystemen im Umweltschutz mit Hilfe von ATKIS. In: Güpnther, O., Schulz, K.-P., Seggelke, J. (Hrsg.): Umweltanwendungen geographischer Informationssysteme. Karlsruhe. [4] Paulsen, H. & Riegger, U. (2006): SensorGIS – Geodaten in Echtzeit. Vsl. GeoBIT Juli 2006, abcverlag, Heidelberg. [5] Schiller, J. H. (2005): Sensornetze überwachen die Ostsee. Computer Systems & Telematics, Freie Universität Berlin, http://www.elfenbeinturm.net/archiv/2004b/13.html am 26.04.2006. Teil I: Drahtlose Sensornetzwerke [6] Abdelzaher, T., et al. (2005): Communication Architecture and Programming Abstractions for Real-Time Embedded Sensor Networks, erschienen in Handbook of Sensor Networks, Editiert von Ilyas, M. und Mahgoub, I., CRC Press, Boca Raton, London, New York, Washington. [7] Ahmann, P. (2004): Individuelle ortsabhängige RFID-Navigation. Diplomarbeit am Fachbereich Geowissenschaften, Studiengang Geoinformatik, Westfälischen WilhelmsUniversität Münster, http://ifgi.unimuenster.de/downloads/diplomarbeiten_intern/Ahmann/wieurziwezriwzreiwertwertuewrt.pd f am 18.04.2006. Literaturverzeichnis 84 [8] Akyildiz, I.F., et al. (2001): Wireless sensor networks: a survey. Georgia Institute of Technology, Atlanta, USA, http://www.ece.gatech.edu/research/labs/bwn/sensornets.pdf am 18.04.2006. [9] Anwander, M., (2005): Comparison of TDMA and contention based MAC protocols on embedded sensor boards (ESB). Master Thesis an der Universität von Bern, Institut für Informatik und angewandte Mathematik, http://www.iam.unibe.ch/~rvs/teaching/seminar/seminar_jun_2005_anwander.pdf am 29.04.2006. [10] COMMON-Sense Net: COMMON-Sense Net deployment at CEDT (Centre for Electronics Design and Technology). Indian Institute of Science, http://www.commonsensenet.in/index.php am 05.05.2006. [11] Dunkels, A., (2005): Towards TCP/IP for Wireless Sensor Networks. Swedish Institute of Computer Science, Stockholm, Schweden, http://eprints.sics.se/72/01/dunkels05towards.pdf am 17.04.2006. [12] Dunkels, A., (2005): The uIP Embedded TCP/IP Stack. Swedish Institute of Computer Science, Stockholm, Schweden, http://www.sics.se/~adam/uip/index.html am 29.04.2006. [13] Dunkels, A., et al. (2004): Connecting Wireless Sensornets with TCP/IP Networks. Swedish Institute of Computer Science, Stockholm, Schweden, http://www.sics.se/~adam/wwic2004.pdf am 17.04.2006. [14] Dunkels, A., et al. (2004): The Design and Implementation of an IP-based Sensor Network for Intrusion Monitoring. Swedish Institute of Computer Science, Stockholm, Schweden, http://www.sics.se/~adam/sncnw2004.pdf am 29.04.2006. [15] Dunkels, A., Alonso, J. und Voigt, T. (2004): Making TCP/IP Viable for Wireless Sensor Networks. Swedish Institute of Computer Science, Stockholm, Schweden, http://www.sics.se/~adam/ewsn2004.pdf am 29.04.2006. Literaturverzeichnis 85 [16] Embedded Workbench Kickstart: Entwicklungsumgebung für den MSP 430 von IAR. http://focus.ti.com/docs/toolsw/folders/print/msp430toolarchive.html am 30.05.2006. [17] Feeney, L. M., et al. (2004): An integrated approach to developing sensor network solutions. Swedish Institute of Computer Science, Stockholm, Schweden, http://www.sics.se/~lmfeeney/Files/sanpa04_slides.pdf am 17.04.2006. [18] Hänselmann, T. (2006): Sensornetworks. Institut für Informatik, Universität Mannheim, http://www.informatik.uni-mannheim.de/~haensel/sn_book/sensor_networks.pdf am 18.04.2006. [19] Heidemann, J., et al. (2001): An energy-efficient mac protocol for wireless sensor networks. IEEE Infocom New York, USA. [20] Hesse, A. (2006): Entwurf und Implementierung einer Testumgebung zur Anbindung von Sensornetzwerken an IP-basierte Kommunikationssysteme. Diplomarbeit an der Fakultät für Elektrotechnik und Informationstechnik, Technische Universität Ilmenau, http://zack1.etechnik.tu-ilmenau.de/~webkn/STUD-DIPLOM/DIPLOMREFERAT/aufgabenstellungsonsornetzwerke.pdf am 17.04.2006. [21] IEEE Computer Society (2003): Wireless Medium Access Control (MAC) and Physical Layer (PHY) Specifications for Low Rate Wireless Personal Area Networks (LR-WPAN's), erschienen in IEEE Standard for Information technology – Telecommuncations and Information Exchange between systems – Local and Metropolitan area networks, http://standards.ieee.org/catalog/olis/lanman.html am 22.06.2006. [22] Intanagonwiwat, C., et al. (2000): Directed Diffusion for Wireless Sensor Networking. Computer Science Department, University of Southern California, Los Angeles, USA, http://www.isi.edu/~johnh/PAPERS/Intanagonwiwat02b.pdf am 25.04.2006. [23] Internet 1: Smart Dust von der Universität Berkeley, USA, http://www.nanotech-now.com am 06.05.2006. Literaturverzeichnis 86 [24] Internet 2: BTnode von der Universität Zürich, Schweiz, http://www.btnode.ethz.ch am 06.05.2006. [25] Internet 3: Embedded Sensor Board der Firma Scatterweb, Berlin, http://www.scatterweb.net am 06.05.2006.. [26] Internet 4: SensorWebs, USA, http://sensorwebs.jpl.nasa.gov am 08.05.2006. [27] Internet 5: Great Duck Island, USA, http://www.greatduckisland.net am 08.05.2006. [28] Jerschow, Y. I. (2005): Routing- und Protokollierungsdienste für Kleinstrechner. Lehrstuhl für Rechnernetze, Heinrich-Heine-Universität Düsseldorf, http://www.cn.uniduesseldorf.de/publications/library/Jerschow2005a.pdf am 17.04.2006. [29] Karl, H. & Willig, A. (2005): Protocols and Architectures for Wireless Sensor Networks. John Wiley & Sons Ltd., West Sussex. [30] Kumar, R., Ganeriwal, S. und Srivastava, M. B. (2003): Timing-sync protocol for sensor networks. Proceedings of the 1st international Conference on Embedded networked Sensor Systems, Los Angeles, USA, http://www.ee.ucla.edu/~saurabh/publications/Sensyspaper03.PDF am 25.06.2006. [31] Manges, W. (2000): Wireless Sensor Network Topologies. Sensors, http://www.sensorsmag.com/articles/0500/72/main.shtml am 16.04.2006. [32] Mattern, P. (2001): Smart Dust. Fachseminar „Mobile Computing“, ETH Zürich, http://www.vs.inf.ethz.ch/edu/SS2001/MC/beitraege/11-smartdust-rep.pdf am 18.04.2006. [33] Mattern, F. & Römer K. (2003): Drahtlose Sensornetze. Institut für Pervasive Computing, ETH Zürich, http://www.gi-ev.de/service/informatiklexikon/informatiklexikondetailansicht/meldung/35/ am 26.04.2006. Literaturverzeichnis 87 [34] Mirza, D., Owrang, M. und Schurgers, C. (2005): Energy-efficient Wakeup Scheduling for Maximizing Lifetime of IEEE 802.15.4 Networks. Proceedings of the 1st international Conference on Wireless Internet (WICON'05), http://fleece.ucsd.edu/~curts/papers/WICON05.pdf am 22.06.2006. [35] MoteLab1: Tabelle der eingesetzten Sensorknoten. Harvard Network Sensor Testbed, Harvard University, USA, http://motelab.eecs.harvard.edu/motes-status.php am 04.05.2006. [36] MoteLab2: Karte mit Senorknoten. Harvard Network Sensor Testbed, Harvard University, USA, http://motelab.eecs.harvard.edu/motes-info.php am 04.05.2006. [37] MoteLab3: Harvard Network Sensor Testbed. Harvard University, USA, http://motelab.eecs.harvard.edu/index.php am 04.05.2006. [38] mspgcc: C-Compiler für den MSP 430 Mikrocontroller. http://mspgcc.sourceforge.net/ am 30.05.2006. [39] Ritter, H., et al. (2005): ScatterWeb - Low Power Sensor Nodes and Energy Aware Routing. Proceedings of the 38th Annual Hawaii International Conference on System Sciences (HICSS'05), Hawaii, USA, http://csdl2.computer.org/comp/proceedings/hicss/2005/2268/09/22680286c.pdf am 29.04.2006. [40] Römer, K., et al. (2005): Time Synchronization and Calibration in Wireless Sensor Networks. Research Group For Distributed Systems, ETH Zürich, Schweiz, http://www.vs.inf.ethz.ch/publ/papers/wsn-time-book.pdf am 25.06.2006. [41] ScatterWeb: ScatterWeb Software für drahtlose Sensornetzwerke. http://www.inf.fuberlin.de/inst/ag-tech/scatterweb_net/software/index.html am 01.04.2006. [42] SensorWebs: Karte mit Sensorknoten. NASA/JPL Sensor Webs Project, Huntington Botanical Gardens, http://sensorwebs.jpl.nasa.gov/resources/images/map_hunt_5_lo.jpg am 04.05.2006. Literaturverzeichnis 88 [43] Su, W., Cayirci, E. und Akan, Ö. B. (2005): Overview of Communication Protocols for Sensor Networks, erschienen in Handbook of Sensor Networks, Editiert von Ilyas, M. und Mahgoub, I., CRC Press, Boca Raton, London, New York, Washington. [44] Van Dam, T. & Langendeon, K. (2003): An adaptive energy-efficient Mac Protocol for Wireless Sensor Networks. Proceedings of the 1st international Conference on Embedded networked Sensor Systems, Los Angeles, USA. [45] Voigt, T., et al. (2005): Experimental Evaluation of Lifetime Bounds for Wireless Sensor Networks. Swedish Institute of Computer Science, Stockholm, Schweden, http://www.sics.se/~thiemo/ewsn2005.pdf am 29.04.2006. [46] Voigt, T., et al (2003): Solar-aware Routing in Wireless Sensor Networks. 9th International IEEE Symposium on Computers and Communications (ISCC), Alexandria, Griechenland, http://www.sics.se/~thiemo/PWC2003.pdf am 29.04.2006. [47] Welsh, M., Swieskowski, P. und Werner-Allen, G. (2005): MoteLab: A wireless Sensor Network Testbed. Division of Engineering and Applied Sciences, Harvard University, USA, http://www.eecs.harvard.edu/~mdw/papers/motelab-spots05.pdf am 05.05.2006. [48] Wermke, M. (2005): Entwicklung eines kostengünstigen Sensornetzwerkes für Monitoring Aufgaben. Diplomarbeit am Studiendepartment Informatik an der Hochschule für Angewandte Wissenschaften Hamburg, http://users.informatik.hawhamburg.de/~ubicomp/arbeiten/diplom/wermke.pdf am 16.04.2006. [49] Wikipedia: Mikrocontroller. http://de.wikipedia.org/wiki/Mikrocontroller am 15.04.2006. [50] Wikipedia: OSI-Modell. http://de.wikipedia.org/wiki/Osi-modell am 17.04.2006. [51] Wikipedia: Sensornetz. http://de.wikipedia.org/wiki/Sensornetz am 26.04.2006. [52] Zhao, F. & Guibas, L. (2004): Wireless sensor networks: an information processing approach, Elsevier-Morgan Kaufmann, Boston. Literaturverzeichnis 89 Teil 2: Verarbeitung und Visualisierung von Messdaten aus drahtlosen Sensornetzwerken [53] Adams, T., et al: Praxishandbuch WebGIS mit freier Software, UMN Mapserver, PostgreSQL/PostGIS, Avein, Mapbender. Gemeinschaftsprojekt von CCGIS und terrestris, http://www.mygeo.info/skripte/Praxishandbuch_WebGIS_Freie_Software.pdf am 12.05.2006. [54] Bollmann, Jürgen und Wolf Günter Koch (Hrsg.) (2001/02): Lexikon der Kartographie und Geomatik. 1/2 Bd., Spektrum Akademischer Verlag, Heidelberg, Berlin. [55] Eisentraut, P. (2005): PostgreSQL – Das fortschrittlichste Open-Source Datenbanksystem. http://developer.postgresql.org/~petere/marketing/flyers/pgflyer_v05.pdf am 31.05.2006. [56] Fischer, T. (2003): UMN Mapserver, Handbuch und Referenz. MapMedia GmbH, Berlin. [57] Grassmuck, V. (2004): Freie Software - Zwischen Privat- und Gemeineigentum. Bundeszentrale für politische Bildung, Bonn. [58] GRASS GIS: Offizielle Seite von GRASS GIS. http://grass.itc.it/ am 31.05.2006. [59] Hake, G., et al. (2002): Kartographie, Visualisierung raum-zeitlicher Informationen. De Gruyter, Berlin. [60] Kropla, B. (2005): Beginning MapServer, Open Source GIS Development. Apress, New York. [61] Mitchell, T. (2005): Web Mapping Illustrated. O'Reilly Media, USA. [62] Momjian, B. (2001): PostgreSQL: Einführung und Konzepte. Addison-Wesley, München. [63] Netler, M. & Mitasova, H., (2004): Open Source GIS: A GRASS GIS Approach. Springer Verlag, New York. Literaturverzeichnis 90 [64] Open Geospatial Consortium (OGC): http://www.opengeospatial.org/ am 15.05.2006. [65] PostgreSQL: http://postgres.de/ am 16.05.2006. [66] Plank Clemens: Open Source-Software in der Medizin-IT. Seminar Medizin-Telematik, WS 2005/06, Universität Tübingen, http://net.informatik.unituebingen.de/fileadmin/RI/teaching/seminar_medizin/ws0506/vortraege/plank.pdf am 31.05.2006 [67] Ramakrishnan, R & Gehrke, J. (2003): Database Management Systems, Third Edition. McGraw-Hill Companies, New York. [68] Shneiderman, B. (1996): The Eyes Have It: A Task by Data Type Taxonomy for Information Visualizations. Department of Computer Science, Human-Computer Interaction Laboratory and Institute for Systems Research, University of Maryland, USA, http://www.sims.berkeley.edu:8000/courses/is247/f05/readings/Shneiderman_EyesHaveIt_ VL96.pdf am 17.05.2006. [69] Shneiderman, B. & Kules, B. (2003): Designing a Metadata-Driven Visual Information Browser for Federal Statistics. Department of Computer Science, Human-Computer Interaction Laboratory and Institute for Systems Research, University of Maryland, USA, http://www.digitalgovernment.org/dgrc/dgo2003/cdrom/PAPERS/metadata/kules_shneider man.pdf am 17.05.2006. [70] Wikipedia: Apache Webserver. http://de.wikipedia.org/wiki//Apache_%28Webserver%29 am 12.05.2006. [71] Woltering, J. (2005): Interaktive Karten auf Basis Geographischer Informationssysteme. Diplomarbeit für den Studiengang Wirtschaftsinformatik an der Universität Paderborn,, www.carto.net/papers/jan_woltering/jan_woltering_interakt_html_karten_20050806.pdf am 12.05.2006.