Praxisteil ZigBee In diesem Praxisteil soll ein grundlegendes Verständnis für die Verwendung von Funk- LANs in Gebäuden die ZigBee- Technologie als Beispiel für Mesh- Netze vermittelt werden. Dazu wird ein einfaches, zunächst aus zwei, später dann aus drei Knoten bestehendes Funk- LAN aufgebaut. Es werden ZigBee- Module der Firma Digi (www.digi.com) verwendet. Mehr Informationen zu ZigBee gibt s etwa im (englischen) Wikipedia- Artikel http://en.wikipedia.org/wiki/zigbee (der deutsche ist wenig informativ). Beispielsystem Sie erhalten drei Netzwerkknoten, einen Coordinator, einen Router und einen Sensorknoten. Jeder Knoten enthält ein entsprechend konfiguriertes ZigBee- Modul. Der Coordinator dient als Gateway zum PC und erlaubt so den Zugang zum ZigBee- Netz. Das XBee- Modul hat eine serielle RS232- Schnittstelle, die an modernen PCs nicht mehr zu finden ist und deshalb über USB emuliert wird. Abbildung 1: Coordinator mit FTDI-Modul Dazu dient ein Spezialchip der Firma FTDI (http://en.wikipedia.org/wiki/ftdi). Der entsprechende Treiber wird bei der ersten Verwendung unter Windows automatisch heruntergeladen und installiert:
Abbildung 2: Installation FTDI-Treiber unter Windows Nach erfolgreicher Installation stellt der Treiber einen virtuellen seriellen Port bereit (etwa COM6). Der Sensorknoten wird per Batterie versorgt und enthält einen Temperaturfühler des Typs KTY- 81/220. Dieser misst (hier bei uns schätzt er eher, um den Schaltungsaufwand niedrig zu halten. Mit einer sauberen Referenzspannung wäre die Messung recht genau) die Temperatur der Umgebungsluft. Der Sensor ist an den Analog- Port 1 des XBee- Moduls angeschlossen dessen Wert etwa einmal pro Sekunde an den Coordinator gesendet wird. Abbildung 3: Sensorknoten
Der Router- Knoten besteht nur aus einem XBee- Modul und einer Batterie. Abbildung 4: Routerknoten Der Router wird bei der ersten Aufgabe, der Ausleuchtungsmessung noch nicht benötigt. Wird der Coordinator mit dem PC verbunden, kann auf ihn zugegriffen werden. Dazu dient das Java- Programm XMon, das unter http://www.tillh.de/xmon_bin.zip heruntergeladen werden kann. Dieses Programm ist im Paket XBeeTools.jar enthalten, das entweder in den systemweiten CLASSPATH aufgenommen werden, oder auf der Kommandozeile angegeben werden muß. XMon benötigt zum Zugriff auf die serielle Schnittstelle eine dll. Diese ist im lib- Unterverzeichnis enthalten und muss entweder in ein systemweites Verzeichnis für dlls kopiert werden oder es wird beim Aufruf von java mit dem Parameter Djava.library.path=<pfad zum lib- Verzeichnis> beim Aufruf gesetzt. In den Screenshots befindet sich das XMon- Programm im Verzeichnis c:\xmonnew\dist Jetzt kann zunächst mit dem Parameter l eine Liste der verfügbaren seriellen Ports angezeigt werden, in diesem Fall COM3 und COM13. In der Regel ist der höchste Port der eben hinzugefügte virtuelle COM- Port:
Mit dem Parameter p kann der zu verwendende Port angegeben werden. Werden keine weiteren Parameter angegeben, gibt das Programm die gemessene Temperatur aus: Mit dem Parameter v werden zusätzliche Informationen, insbesondere die Absenderadresse der Pakete ausgegeben. Diese wird später bei der Ausleuchtungsmessung benötigt:
Zur Messung der Signalstärke wird der Parameter r<adresse> verwendet. Adresse ist dabei die 64Bit Adresse des Sensormoduls in hexadezimaler Schreibweise mit zwei Zeichen pro Byte ohne Zwischenräume, 0xnn usw.: Die Signalstärke wird in dbm angegeben. Laut Datenblatt sind die Werte zwischen - 40 und - 90 dbm verlässlich. Der gesamte Wertebereich ist - 26dBm bis - 92dBm (Die Module senden als default mit +2dBm, der Rest dazwischen sind die Verluste durch die Antennen). 1dbm ist ein Milliwatt. 10dB entsprechen einem Faktor zehn, 20dB also 100 usw. Die Empfindlichkeit der Module liegt bei etwa - 100 dbm. Funk- LAN in Gebäuden Funkwellen breiten sich im freien Feld durch die Luft weitgehend ungehindert aus. In geschlossenen Räumen wird die Ausbreitung durch (Mehrfach- ) Reflexionen und Dämpfung an und durch Wände, Decken, Möbel usw. beeinträchtigt. Um festzustellen, an welchen Stellen Access- Points bzw. Repeater positioniert werden müssen, um alle relevanten Positionen innerhalb eines Gebäudes erreichen zu können, wird i.d.r. eine Ausleuchtungsmessung vorgenommen, d.h. es wird von der/den vorgesehenen Positionen der Basisstation eine Messung der Feldstärke an verschiedenen Positionen vorgenommen. Aufgabe: Bestimmen Sie die Ausleuchtung des ZigBee Netzes in einem Stockwerk der DH. Positionieren Sie dazu Ihren Sensor- Knoten an einer geeigneten Stelle, z.b. in der Nähe des Aufzugs und messen Sie an hinreichend vielen verschiedenen Stellen die Signalstärke. Stellen Sie das Ergebnis in Form einer Skizze grafisch dar.
Abbildung 5: Beispiel WLAN Ausleuchtung, Quelle http://www.systec-computer.de/uploads/wlan_scan.pdf
Mesh- Netz Das routing innerhalb von ZigBee- Netzen erfolgt dynamisch, d.h. der Weg, den Pakete von Knoten zu Knoten nehmen, ändert sich ständig abhängig von der Erreichbarkeit. Prinzipiell kann jeder Knoten als Router fungieren, in der Praxis wird man diese Flexibilität allerdings einschränken, da Router ständig aktiv sein müssen, was zu einem vergleichsweise hohen Stromverbrauch führt. In realen Sensornetzen wird man die Sensorknoten die meiste Zeit schlafen lassen und nur in Intervallen von mehreren Sekunden bis Minuten kurz wecken, um eine Nachricht zu übertragen. Da ein schlafender Router keine Pakete entgegen nehmen kann, würde das in diesem Fall zu Problemen führen (es sein denn, alle Module würden genau gleichzeitig aktiv, was zwar nicht unmöglich, aber schwierig ist). Da hier nur das Prinzip demonstriert werden soll, sind alle Module ständig aktiv und jeder Knoten kann als Router arbeiten. Aufgabe Verifizieren Sie die Funktion des Routers. Entfernen Sie dazu den Sensor soweit vom Coordinator, dass keine Pakete mehr ankommen. Dann nehmen Sie (durch Anschließen der Batterie) den Router in Betrieb und positionieren ihn zwischen den beiden Knoten. Nach einer kurzen Pause sollten wieder Pakete ankommen. Hier sieht man, wie bei zunehmender Entfernung zwischen Coordinator und Sensor die Signalstärke immer weiter abnimmt, bis keine Antwort mehr ankommt ( invalid response to ATDB ). Sobald die Pakete über den Router laufen, ist die Signalstärke wieder besser. Der angezeigte Wert ist dabei die Signalstärke der Verbindung zwischen Sensor und Router. Verifizieren Sie das durch Verschieben des Routers zwischen den beiden anderen Knoten.