Einrichtung von OpenWSN

Facebooktwittergoogle_pluspinterestlinkedinmailFacebooktwittergoogle_pluspinterestlinkedinmail

In energieeffizienter Sensorkommunikation gibt es einige fertige und freie Betriebssysteme. Eins davon ist OpenWSN. Das in der Universität Berkeley entwickelte OpenSource-Projekt bedarf einiger Einrichtungsschritte. Diese Anleitung erklärt Schritt für Schritt die Linux-Installation auf Tmote sky-Knoten.

1. Download

Zuerst müssen die zu kompilierenden Ressourcen heruntergeladen werden. Dazu wird git verwendet.

git clone https://github.com/openwsn-berkeley/openwsn-fw.git
git clone https://github.com/openwsn-berkeley/openwsn-sw.git
git clone https://github.com/openwsn-berkeley/coap.git

OpenWSN benötigt zum Kompilieren und Testen einige Pakete. Dies sind

  • python-dev – Zum Ausführen des Testservers.
  • scons – Alle Kompilier- und Buildskripte sind in SCons geschrieben.
  • python-pip – Python benötigt einige weitere Pakete, weswegen wir den Python-Installierer brauchen.
  • wireshark – Um den Datenverkehr mitzuloggen wird Wireshark benötigt.

Weiterhin benötigt, wie bereits erwähnt, Python noch 2 Pakete: bottle und PyDispatcher.

sudo apt-get install python-dev scons python-pip wireshark
sudo pip install bottle
sudo pip install PyDispatcher

Nach dem Download existieren 3 Ordner:

  • openwsn-fw – Dort ist die Firmware zu finden, welche auf die Knoten kompiliert wird.
  • openwsn-sw – Hier gibt es die Software um auf die Knoten während der Aktion zuzugreifen.
  • coap – Um auf die Knoten während die Kommunizieren zuzugreifen gibt es schon in Python geschrieben Beispiele.

2. Einstellungen

Damit OpenWSN stabil läuft sollten vor dem Kompilieren erste Einstellungen vorgenommen werden.

Einige Entwickler starten OpenWSN mit einem langsamen Rechner oder in einer virtuellen Maschine. Der Zugriff des Rechners auf den Knoten dauert dann etwas länger, weswegen einige Daten verloren gehen. Die wird man durch Fehlermeldungen wie

[OPENSERIAL] wrong CRC in input Buffer (input length xx)
[OPENSERIAL] busy receiving when stop of serial activity, buffer input length xx (code location 0)

Weitere Informationen gibt es unter wrong CRC in input buffer AND busy receiving when stop of serial activity. Um dies zu vermeiden muss die Framelänge sowie die Anzahl der zu empfangenen Pakete nach oben gesetzt werden. In der Datei openwsn-fw/openstack/02b-MAChigh/schedule.h kann man sie einstellen.

#define SUPERFRAME_LENGTH 22
#define NUMSERIALRX 6

Um den Funk-Kommunikationskanal festzulegen muss in der Datei openwsn-fw/openstack/02a-MAClow/IEEE802154E.h der Parameter SYNCHRONIZING_CHANNEL geändert werden.

#define SYNCHRONIZING_CHANNEL 23

Weiterhin kann sich die Sendeleistung PA_LEVELverändern. Bei kurzen Strecken empfiehlt es sich die Leistung auf den niedrigsten Wert zu setzen. Dabei gibt es 8 mögliche Werte. Die Tabelle zeigt welche möglich sind. Mehr Informationen gibts im dazu gehörenden Datenblatt des Transceivers.

PA_LEVEL Output Power [dBm] Current Consumption [mA]
31 0 17,4
27 -1 16,5
23 -3 15,2
19 -5 13,9
15 -7 12,5
11 -10 11,2
7 -15 9,9
3 -25 8,5

Die Sendeleistung wird in der Datei openwsn-fw/bsp/chips/cc2420/radio.c.

cc2420_TXCTRL_reg.PA_LEVEL = 3;

3. Kompilieren

Nach den Einstellungen kann es endlich zum Kompilieren gehen. Der zu kompilierende Knoten wird in den Rechner gesteckt und in die Kommandozeile wird im Ordner openwsn-fw wird der Befehl eingegeben.

sudo scons board=telosb toolchain=mspgcc bootload=/dev/ttyUSB0 oos_openwsn

Über den Parameter boardtelosb ein. Die toolchain deklariert den Kompiler (bei uns mspgcc). Über den bootload entscheide ich wo der Knoten angeschlossen ist. Wir wollen das Projekte oos_openwsn brennen.

4. Visualisierer starten

Nach dem Brennen auf unsere Knoten sind diese jetzt einsatzbereit. Einen Knoten lassen wir als Kommunikationsendpunkt am Rechner. Die anderen können wir verteilen. Um Datenaustausch zu starten und die Kommunikation zu sehen können wir den eingebauten Visualisierer nutzen. Dieser befindet sich im Ordner openwsn-sw/software/openvisualizer.

sudo scons runweb

Der Parameter runweb zeigt, dass wir die Kommunikation im Browser über eine Weboberfläche verfolgen wollen. Diese lässt sich nach dem Start aufrufen mit http://127.0.0.1:8080.

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.