{"id":1956,"date":"2013-02-22T20:34:28","date_gmt":"2013-02-22T20:34:28","guid":{"rendered":"https:\/\/blog.ecotronics.ch\/wordpress\/?p=1956"},"modified":"2013-03-23T13:10:21","modified_gmt":"2013-03-23T13:10:21","slug":"lost-im-xbee-dschungel","status":"publish","type":"post","link":"https:\/\/blog.ecotronics.ch\/wordpress\/?p=1956","title":{"rendered":"Lost im XBee-Dschungel"},"content":{"rendered":"<div id=\"attachment_2005\" style=\"width: 310px\" class=\"wp-caption alignleft\"><a href=\"https:\/\/blog.ecotronics.ch\/wordpress\/wp-content\/uploads\/2013\/02\/XBeeModule1und2_MitText_480.jpg\"><img aria-describedby=\"caption-attachment-2005\" decoding=\"async\" loading=\"lazy\" class=\"size-medium wp-image-2005\" title=\"XBee-Funknetzwerk mit 1 Coordinator und 1 End Node\" src=\"https:\/\/blog.ecotronics.ch\/wordpress\/wp-content\/uploads\/2013\/02\/XBeeModule1und2_MitText_480-300x248.jpg\" alt=\"\" width=\"300\" height=\"248\" srcset=\"https:\/\/blog.ecotronics.ch\/wordpress\/wp-content\/uploads\/2013\/02\/XBeeModule1und2_MitText_480-300x248.jpg 300w, https:\/\/blog.ecotronics.ch\/wordpress\/wp-content\/uploads\/2013\/02\/XBeeModule1und2_MitText_480-150x124.jpg 150w, https:\/\/blog.ecotronics.ch\/wordpress\/wp-content\/uploads\/2013\/02\/XBeeModule1und2_MitText_480-400x331.jpg 400w, https:\/\/blog.ecotronics.ch\/wordpress\/wp-content\/uploads\/2013\/02\/XBeeModule1und2_MitText_480.jpg 580w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-2005\" class=\"wp-caption-text\">XBee-Funknetzwerk mit 1 Coordinator und 1 End Node<\/p><\/div>\n<p>Keine Angst, auch wenn der Titel eher nach Frustration t\u00f6nt,\u00a0handelt es sich in diesem Tutorial um ein vollst\u00e4ndiges, lauff\u00e4higes Projekt.\u00a0 Ich pfade Ihnen gewissermassen den Weg durch den Dschungel. Und wenn Ihnen der Artikel schlicht zu lang ist, f\u00fcr das Projekt selbst ist es nicht n\u00f6tig, den Rest der Einleitung oder die Kapitel\u00a0 &#8220;ZigBee-Ratgeber&#8221; und &#8220;Grundlagen und Glossar&#8221; zu lesen.<\/p>\n<p>Zwar habe ich inzwischen einiges an Arduino-Projekten realisiert, aber zum <strong>Internet of Things<\/strong> fehlt mir noch das wichtigste Element, die Vernetzung. Bis jetzt bestanden alle meine Projekte aus einem per USB-Kabel mit dem PC verbundenen Arduino. Um meine Sensoren zur \u00dcberwachung von Licht, Feuchtigkeit und Temperatur auf dem Balkon realisieren zu k\u00f6nnen, lieb\u00e4ugelte ich deshalb mit dem Kauf eines <strong>Arduino mit integriertem Wifi<\/strong>. <a href=\"http:\/\/www.play-zone.ch\/de\/linksprite-diamondback-wifi-enabled-arduino.html\" target=\"_blank\">DiamondBack<\/a> heisst das werte Teil. Allerdings scheiterte diese Idee an einem praktischen Problem: Auf unserem Balkon gibt es <strong>keine Steckdose<\/strong>. Wifi gilt aber als energiehungrig, so dass es kaum ratsam erschien, einen solchen Arduino mit Batterien zu betreiben.<\/p>\n<p>Also hielt ich Ausschau nach Alternativen, denen als <strong>Stromversorgung Batterien oder Solarzelle<\/strong> gen\u00fcgen. Dabei stiess ich zuerst auf <a href=\"http:\/\/www.panstamp.com\" target=\"_blank\">panStamp<\/a>. Zuerst war ich enthusiastisch, diese Technologie versprach genau, was ich suchte, Sensornetzwerke mit stromsparenden, batteriegetriebenen Nodes. Aber als ich nach ausf\u00fchrlicher Lekt\u00fcre des Websites und des Wikis immer noch keine genaue Vorstellung davon hatte, welche Komponenten ich den eigentlich f\u00fcr ein kleines Netzwerk ben\u00f6tigte, nahm ich von dieser Technologie wieder Abstand. Zu stark scheint panStamp mir von einer einzigen Person abzuh\u00e4ngen und zu propriet\u00e4r ist die Technologie.<\/p>\n<p>Bei meinen Recherchen tauchte nat\u00fcrlich immer wieder <strong>ZigBee <\/strong>auf. Im Buch &#8220;<strong>Making Things Talk<\/strong>&#8220;, einer Bibel des Internet of Things, gibt es mehrere ZigBee-Projekte. Als ich dann bei BoxTec ein S<strong>olar-Kit f\u00fcr einen wireless sensor node<\/strong> entdeckte, der auf der ZigBee-Technologie beruhte, packte ich zu. Das Kit kommt ohne ZigBee, also bestellte ich zwei Module dazu. Nichtsahnend hatte ich damit den ersten Schritt meiner Expedition in den XBee-Dschungel getan.<\/p>\n<p>Denn ein Dschungel ist es: Es gibt inzwischen so viele Zigbee-Modelle, dass schon nur die <strong>genaue Typenbestimmung<\/strong> der zwei Module, die ich erhalten hatte, schwierig war. Und den genauen Typ zu kennen, ist f\u00fcr die Konfiguration unabdingbar, denn wenn man die\u00a0 Firmware f\u00fcr ein falsches Modell l\u00e4dt, dann verwandelt man das Modul in Elektroschrott. Es zeigte sich auch, dass meine Bestellung grenzenlos naiv war: XBees kommen mit Zweimillimeter-Pins und passen damit auf keinen Arduino und kein Steckbrett, denn dort arbeitet man mit <strong>2.54 mm<\/strong>.<\/p>\n<p>Um ein XBee-Modul mit dem Arduino zu kombinieren, ben\u00f6tigte man anscheinend ein <strong>XBee-Shield<\/strong> und f\u00fcr die Arbeit mit dem Steckbrett muss es zumindest eine <strong>XBee-Adapterplatine<\/strong> sein, die den Abgrund zwischen 2-mm und 2.54-mm-Pins \u00fcberbr\u00fcckt. Mein toller Sensor Node war angeblich nur mit Grove-Sensoren zu verwenden und ausserdem passte der zum Kit geh\u00f6rende Akku nicht wie vorgesehen in die Schachtel. Um ein ZigBee zu konfigurieren, nimmt man besser nicht den Arduino (wof\u00fcr mir sowieso der passende Shield fehlt), denn dann m\u00fcsste den Chip entfernen, sondern ein <strong>spezielles Kabel oder ein Tr\u00e4germodul <\/strong>(das ich nat\u00fcrlich nicht hatte). Und habe ich schon erw\u00e4hnt, dass die <strong>Pins des XBee zu d\u00fcnn f\u00fcr den Female-Anschluss eines Jumperkabels<\/strong> sind? Und, und, und&#8230; Wenn man den einschl\u00e4gigen ZigBee Tutorials Glauben schenkt, dann m\u00fcsste ich erst einmal 100 bis 200 Franken zus\u00e4tzlich investieren, um \u00fcberhaupt irgend etwas mit meinen zwei Modulen anfangen zu k\u00f6nnen. Und nat\u00fcrlich hat kein Anbieter alles Notwendige im Angebot, so dass ich mindestens zwei oder sogar drei Bestellungen machen m\u00fcsste. Auf diese Materialschlacht hatte ich keine Lust, ich fand, es m\u00fcsse doch m\u00f6glich sein, diese Technologie mit dem auszuprobieren, was ich schon hatte (siehe Abschnitt <a href=\"#h1_komponenten\">Komponenten<\/a>). Die gute Nachricht ist: Das geht tats\u00e4chlich! Aber der Weg dorthin erwies sich als ziemlich steinig. Und er verlief auch ganz anders, als urspr\u00fcnglich gedacht. <strong>Kein Arduino, kein C, daf\u00fcr Java, X-CTU, Schaltungen auf dem Steckbrett und etwas Improvisation<\/strong>.<\/p>\n<p>\u00dcbrigens, ich verwende im ganzen Artikel die Begriffe <strong>XBee <\/strong>und <strong>ZigBee <\/strong>ziemlich  synonym, was nat\u00fcrlich nicht ganz richtig ist. <strong>ZigBee <\/strong>ist ein<strong> Industriestandard  f\u00fcr drahtlose Daten\u00fcbertragung<\/strong> \u00e4hnlich wie WLAN oder Bluetooth. <strong>XBee ist  dagegen ein Modul des Herstellers Digi<\/strong>, das oft in Selbstbauprojekten mit oder ohne Arduino eingesetzt wird.<\/p>\n<h1>Projektziel<\/h1>\n<p>Mit zwei XBee-Modulen und einem Solar-Kit f\u00fcr Funk-Sensor-Netzwerke ein <strong>kleines Funknetz aufzubauen<\/strong>, das den Befehl, eine <strong>LED ein- und auszuschalten<\/strong>, <strong>drahtlos \u00fcbermittelt<\/strong>. Die Steuerung des Koordinator-Moduls erfolgt mit <strong>Java <\/strong>\u00fcber das <strong>XBee-API<\/strong>. Eine LED anzuschalten, ist ja gewissermassen das <strong>&#8220;Hallo Welt&#8221; des physical computing<\/strong>. Insofern ist das Projektziel von meinem Fernziel, ein Sensornetzwerk f\u00fcr meine Balkonpflanzen zu errichten oder sogar ein Treibh\u00e4uschen zu regeln, noch ein ganzes St\u00fcck entfernt.<\/p>\n<h1>ZigBee-Ratgeber<\/h1>\n<p>Bevor ich meine eigene Konfiguration beschreibe, versuche ich hier zusammenzustellen, welche Komponenten man f\u00fcr ein solches ZigBee-Netzwerk eigentlich braucht.<\/p>\n<p>XBee-Modelle gibt unz\u00e4hlige (gem\u00e4ss Parallax ca. 70), sie werden aber (bis jetzt) in zwei Generationen eingeteilt:<\/p>\n<ul>\n<li><strong>Series1<\/strong>: Einsteigermodule, meistens Punkt-zu-Punkt-Vernetzung<\/li>\n<li><strong>Series2 <\/strong>(auf den neueren Modulen steht <strong>S2<\/strong>): Mehr Funktionalit\u00e4t, aber es ist schwieriger, ein Netzwerk zu konfigurieren<\/li>\n<\/ul>\n<p>Series1- und Series2-Module sind untereinander nicht kompatibel, d.h. ein Netz kann immer nur Module eines Typs vernetzen.<br \/>\nInnerhalb dieser zwei Generationen gibt es wiederum zahlreiche Modelle, die sich unter anderem darin unterscheiden, ob sie eine aufgesetzte Antenne oder eine als Chip haben. Es gibt noch zwei weitere Antennenvarianten, die ich hier unterschlage. Und nicht zuletzt gibt es<strong> zwei Varianten bez\u00fcglich Reichweite<\/strong>: Die <strong>low-power<\/strong> Module mit einer (illusorischen) Nennreichweite von 300 Metern m\u00fcssten f\u00fcr ein Netzwerk zu Hause ausreichen, als Schloss- und\/oder Parkbesitzer muss man dagegen zur energiehungrigeren <strong>PRO-Variante<\/strong> mit Nennreichweiten von (ebenso illusorischen) 1.6 km greifen. Man kann das Problem der Reichweite aber auch mit Ketten von Routern l\u00f6sen, deshalb w\u00fcrde ich f\u00fcr Sensornetzwerke auf jeden Fall zur low-power Variante greifen. Einen guten \u00dcberblick \u00fcber die verschiedenen XBee-Varianten in Deutsch findet man im <a href=\"http:\/\/elmicro.com\/de\/xbee.html\" target=\"_blank\">Elektronikladen<\/a>. Eine weitere Zusammenstellung findet sich bei <a href=\"http:\/\/ladyada.net\/make\/xbee\/modules.html\" target=\"_blank\">AdaFruit<\/a>.<\/p>\n<p>Zwei Module sind auf jeden Fall noch nicht genug, es braucht <strong>einiges an Zubeh\u00f6r<\/strong>, um die folgenden <strong>grundlegenden Aufgaben<\/strong> und Teilaufgaben zu erledigen<\/p>\n<ul>\n<li>die Module <strong>konfigurieren<\/strong><\/li>\n<li>Module, die als autonome Knoten (z.B. als Sensoren) laufen sollen, <strong>mit Strom versorgen<\/strong>\n<ul>\n<li>eine stabile 3.3V-Gleichstromversorgung aufrechterhalten<\/li>\n<\/ul>\n<\/li>\n<li>Module <strong>an Sensoren <\/strong>oder <strong>Aktoren anschliessen <\/strong>(die v.a. im Falle von Aktoren eventuell zus\u00e4tzlich mit Strom versorgt werden m\u00fcssen)<\/li>\n<li>ein Modul, das unter Series2 die Rolle des Koordinators hat, <strong>mit der \u00fcbrigen Welt verbinden<\/strong>, z.B. direkt \u00fcber einen PC oder indirekt \u00fcber einen Arduino\n<ul>\n<li>eine direkte Verbindung zwischen PC und Modul oder<\/li>\n<li>f\u00fcr die Arduino-Variante die Kluft zwischen 2.54 mm und 2 mm Pins \u00fcberbr\u00fccken<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Den letzten Punkt m\u00f6chte ich noch etwas erl\u00e4utern, denn er ist nicht zwingend. Ich kann mir ein ZigBee-Netzwerk vorstellen, die einmal konfiguriert wird, und dann v\u00f6llig autonom &#8220;vor-sich-hinkommuniziert&#8221;, z.B. weil es in einer unzug\u00e4nglichen Gegend irgendetwas ohne weiteren Kontakt zur Aussenwelt steuert oder regelt. Ein h\u00fcbscher Ausgangsstoff f\u00fcr eine eine Science-Fiction-Erz\u00e4hlung: Es juckt mich richtig, mir auszumalen, was diesem armen, von Gott und der Welt verlassenen Netzwerkchen so alles einf\u00e4llt!<\/p>\n<p>Aber Spass beiseite, im Normalfall m\u00f6chten sich diejenigen, welche das Netz errichtet haben, dauernd oder zumindest gelegentlich in das Netz einklinken, um Daten abzufragen oder \u00c4nderungen an der Konfiguration vorzunehmen. Normalerweise wird dies \u00fcber einen PC erfolgen. Wenn es um ein Sensornetzwerk geht, ist es auch denkbar, dass ein mit Wifi ausger\u00fcsteter Arduino die Schnittstelle bildet und Daten direkt an einen Server sendet.<br \/>\nF\u00fcr jede dieser Aufgaben gibt es Varianten, wie man sie mit Hardware umsetzt. Viele Komponenten l\u00f6sen dabei mehr als eine Aufgabe:<\/p>\n<h2>Konfiguration<\/h2>\n<ul>\n<li><a href=\"http:\/\/shop.boxtec.ch\/wireless-sensor-node-solar-p-40596.html\" target=\"_blank\">Solar-Kit<\/a>: mit dem USB-Kabel aus dem Kit den PC mit dem Carrier Modul verbinden und ZigBee auf Carrier aufstecken, ca. 24 SFr.<\/li>\n<li>direkt \u00fcber ein <a href=\"http:\/\/www.adafruit.com\/products\/70\" target=\"_blank\">USB-FTDI-Kabel<\/a> und ein <a href=\"http:\/\/www.adafruit.com\/products\/126\" target=\"_blank\">XBee Adapter Kit<\/a> (Kostenpunkt ca. 30 $)<\/li>\n<li><a href=\"http:\/\/www.play-zone.ch\/de\/parallax-xbee-usb-adapter-breakout.html\" target=\"_blank\">Parallax XBee USB Adapter\/Breakout<\/a> und USB-Kabel USB A zu Mini B: liefert die notwendigen Pin-Leisten sowohl f\u00fcr 2 mm wie 2.54 mm mit, muss aber noch gel\u00f6tet werden. Regelt Stromversorgung via USB<\/li>\n<li>via Arduino und Arduino-XBee-Shield, aber dazu muss der Atmega-Chip entfernt und das Arduino-Board gejumpert werden!<\/li>\n<\/ul>\n<h2>Stromversorgung<\/h2>\n<ul>\n<li><a href=\"http:\/\/shop.boxtec.ch\/wireless-sensor-node-solar-p-40596.html\" target=\"_blank\">Solar-Kit<\/a>: kleines Solarpanel, Lithium-Akku und Carrier sollten das XBee im Freien mit gen\u00fcgend Strom versorgen<\/li>\n<li>Arduino: <strong>3.3V-Pin eines Arduino<\/strong>, der via USB-Kabel mit Strom vom PC versorgt wird. In &#8220;Making Things Talk&#8221; und in Tutorials sieht man oft eine Schaltung mit Spannungsregler. Eine Stromversorgung direkt \u00fcber den Arduino funktioniert gem\u00e4ss &#8220;Making Things Talk&#8221; erst ab Version UNO oder h\u00f6her, bei \u00e4lteren Arduinos ist der Spannungsregler zu schwach. Zumindest in der Variante mit PC hat diese Art der Stromversorgung mit einem Arduino MEGA 2560 problemlos funktioniert. Allerdings w\u00fcrde ich den Arduino exklusiv als Stromlieferant verwenden und nicht noch mit anderen Sensoren oder Aktoren verkabeln, damit m\u00f6glichst nichts die gleichm\u00e4ssige Spannungsversorgung st\u00f6rt.<\/li>\n<li>via Arduino und <a href=\"http:\/\/www.play-zone.ch\/de\/xbee-explorer-regulated.html\" target=\"_blank\">SparkFun XBee Explorer Regulated<\/a><\/li>\n<li>Batterien, Steckbrett, <a href=\"https:\/\/www.sparkfun.com\/products\/526?\" target=\"_blank\">Spannungsregler<\/a>, <a href=\"https:\/\/www.sparkfun.com\/products\/8276?\" target=\"_blank\">Adapterplatine<\/a> sowie ein paar Widerst\u00e4nde, Kondensatoren und Jumperkabel, um sich die XBee-Steckbrettschaltung selbt zu bauen. Eine genaue Beschreibung findet man im Buch &#8220;<a href=\"http:\/\/www.amazon.de\/Making-Things-Talk-h%C3%B6ren-f%C3%BChlen\/dp\/386899162X\/ref=sr_1_2?ie=UTF8&amp;qid=1361705595&amp;sr=8-2\" target=\"_blank\">Making Things Talk<\/a>&#8220;.<\/li>\n<\/ul>\n<h2>Verbindung mit Sensoren und Aktoren<\/h2>\n<ul>\n<li>direkt an die Pins anl\u00f6ten (oder anstecken, dazu unten mehr)<\/li>\n<li><a href=\"http:\/\/shop.boxtec.ch\/wireless-sensor-node-solar-p-40596.htmlhttp:\/\/\" target=\"_blank\">Solar-Kit<\/a> und dazu passende Grove-Sensoren, z.B. einen <a href=\"http:\/\/shop.boxtec.ch\/grove-feuchtigkeits-sensor-p-40519.html\" target=\"_blank\">Feuchtigkeitssensor<\/a><\/li>\n<li><a href=\"http:\/\/shop.boxtec.ch\/breakout-board-fuer-xbee-modul-p-41244.html\" target=\"_blank\">Adapterplatine<\/a> (auch Breakout Board genannt) und passende Pin-Steckleisten f\u00fcr <a href=\"http:\/\/shop.boxtec.ch\/10pin-xbee-socket-p-40550.html\" target=\"_blank\">2 mm<\/a> und 2.54 mm. In der <a href=\"http:\/\/shop.boxtec.ch\/headers-experimental-pack-p-40715.html\" target=\"_blank\">Pinheader-Kollektion<\/a> von Boxtec hat man alles dabei.<\/li>\n<li>Sensoren und Aktoren via Arduino und <a href=\"http:\/\/www.play-zone.ch\/de\/arduino-xbee-shield.html\" target=\"_blank\">XBee-Shield<\/a> f\u00fcr Arduino verbinden<\/li>\n<li>Sensoren und Aktoren via Arduino und <a href=\"http:\/\/www.play-zone.ch\/de\/xbee-explorer-regulated.html\" target=\"_blank\">SparkFun XBee Explorer Regulated<\/a> verbinden<\/li>\n<\/ul>\n<h2>Anschluss an PC\/Microcontroller<\/h2>\n<p>Daf\u00fcr eignen sich alle unter &#8220;Konfiguration&#8221; aufgef\u00fchrten Varianten, sowie diese zus\u00e4tzlichen:<\/p>\n<ul>\n<li>Drahtlos mit Arduino mit integriertem Wifi (WLAN), z.B. <a href=\"http:\/\/www.play-zone.ch\/de\/linksprite-diamondback-wifi-enabled-arduino.html\" target=\"_blank\">DiamondBack<\/a> sowie <a href=\"http:\/\/www.play-zone.ch\/de\/arduino-xbee-shield.html\" target=\"_blank\">XBee-Shield<\/a> f\u00fcr Arduino<\/li>\n<li>wie oben, aber statt der Wifi-Variante kommt ein normaler Arduino zum Einsatz, der \u00fcber ein USB-Kabel mit dem PC verbunden ist<\/li>\n<\/ul>\n<p>So, nun wissen Sie, was ich mit Materialschlacht gemeint habe! Inzwischen gibt es schon einen weiteren <a href=\"\/wordpress\/2013\/zubehor-zu-xbee-modulen\/\" target=\"_blank\">Blogeintrag<\/a>, in dem ich eine \u00fcbersichtliche Liste des zur Zeit erh\u00e4ltlichen XBee-Zubeh\u00f6rs zusammengestellt habe. Unter all diesen Varianten ist die gleich vorgestellte definitiv zu den Low-Cost-Minimalvarianten zu z\u00e4hlen. Das reicht f\u00fcr das erw\u00e4hnte Hallo-Welt. Aber sobald ich meinen ersten Sensorknoten auf dem Balkon einrichten will, ben\u00f6tige ich entweder noch ein zweites Solarkit oder den Parallax-Adapter, da ich dann den Sensor-Node wegen der fehlenden Steckdose mit dem Carrier des Solarkits betreiben muss und dieser damit nicht mehr f\u00fcr den Anschluss an den PC bereitsteht. Angesichts dessen, dass der Parallax-Adapter fast gleichviel kostet wie das <strong>Solarkit<\/strong>, werde ich wohl zu letzterem greifen, denn erstens habe ich schon Erfahrung damit und zweitens erhalte ich zus\u00e4tzlich eine kleine Solarzelle, einen Lithium-Polymerakku, eine (wenn auch verbesserungsf\u00e4hige) Box als Geh\u00e4use und ein USB-Kabel. Zwar w\u00e4re es m\u00f6glich, den <strong>Sensorknoten direkt mit dem ungeregelten Lithium-Akku zu betreiben<\/strong>, aber dieser liefert<strong> 3.7V<\/strong> also etwas mehr als die verlangten 3.3V, was dem Modul im Dauerbetrieb m\u00f6glicherweise schadet.<\/p>\n<p><a name=\"#h1_komponenten\"> <\/a><\/p>\n<h1><a name=\"#h1_komponenten\">Komponenten<\/a><\/h1>\n<p>Nach all diesen Varianten nun meine Komponenten, mit denen sich das Projektziel realisieren l\u00e4sst. Beginnen wir mit der Hardware:<\/p>\n<ul>\n<li>1 PC<\/li>\n<li>2 XBee-Module S2: <a href=\"http:\/\/shop.boxtec.ch\/xbee-modules-znet-chip-antenna-xb24-bcit-p-40216.html\" target=\"_blank\">XBee\u00ae RF Modules ZNet 2.5 &#8211; 1 mW, Chip Antenna (XB24-BCIT-004)<\/a><\/li>\n<li>1 <a href=\"http:\/\/shop.boxtec.ch\/wireless-sensor-node-solar-p-40596.html\" target=\"_blank\">Wireless Sensor Node Solar<\/a> Kit von Seeedstudio mit 1 XBee-Carrier, 1 kleinen Solarzelle, 1 3.7V-500mA-Lithium-Polymer-Akku, 1 USB-Kabel, 2 Groove-Anschlusskabeln und 1 Plastikbox. F\u00fcr das aktuelle Projekt wird davon <strong>nur der XBee-Carrier und das USB-Kabel<\/strong> verwendet<\/li>\n<li>1 <a href=\"http:\/\/www.play-zone.ch\/de\/original-arduino-uno-r3-atmega328.html\" target=\"_blank\">Arduino<\/a> (oder der geladene Lithium-Polymer-Akku) als 3.3V-Stromversorgung f\u00fcr den Sensor Node<\/li>\n<li>1 rote LED<\/li>\n<li>1 Widerstand irgendwo zwischen 300 und 600 Ohm<\/li>\n<li>1 <a href=\"http:\/\/shop.boxtec.ch\/basic-breadboard-p-40221.html\" target=\"_blank\">Steckbrett<\/a><\/li>\n<li>3 <a href=\"http:\/\/www.play-zone.ch\/de\/m-f-jumperkabel-verbindungskabel-20cm-set-aus-40-stk.html\" target=\"_blank\">Jumperkabel M\/F<\/a><\/li>\n<li>3 <a href=\"http:\/\/www.play-zone.ch\/de\/jumperkabel-65-stk-m-m-verbindungskabel.html\" target=\"_blank\">Jumperkabel M\/M<\/a><\/li>\n<li>3 ca 2 cm lange St\u00fccke Isolierdraht 0.5 mm (l\u00e4uft in der Migros unter Sonneriedraht). Wenn man einfach keinen 0.5mm-Draht zuhause hat oder bereit ist, 3 Jumperkabel zu opfern und deren Anschl\u00fcsse zu verbiegen, dann kann man sich diesen Draht sparen<\/li>\n<li>3 ca 1 cm lange abisolierte Isolierung von einem dickeren Isolierdraht mit Innendurchmesser ca 0.8 oder 1 mm als improvisierte Steckverbindung zwischen XBee-Pin, Sonneriedraht und Jumperkabel (auf was kommt man nicht alles, wenn man nachts um Zehn feststellt, dass einem das entscheidende Teil fehlt!)<\/li>\n<\/ul>\n<p>Eine gute Nachricht f\u00fcr alle, die (noch) keinen L\u00f6tkolben besitzen: In meiner Version k\u00f6nnen alle Komponenten\u00a0 <strong>zusammengesteckt <\/strong>werden, <strong>L\u00f6ten ist nicht notwendig<\/strong>.<\/p>\n<p>Die Arbeit mit XBee-Modulen stellt auch einige Anforderungen an die Software<\/p>\n<ul>\n<li>Java JDK Version 1.6 32-Bit (oder mindesten 1.5): Die 32-Bit-Version muss man, falls nicht vorhanden, auch auf einem 64-Bit-PC installieren, da die verwendete Java-Library <strong>nur unter einem 32-Bit JDK<\/strong> l\u00e4uft<\/li>\n<li>Java-Entwicklungsumgebung <a href=\"http:\/\/www.eclipse.org\/downloads\/packages\/eclipse-ide-java-developers\/indigosr2\" target=\"_blank\">Eclipse Indigo 3.7<\/a> (wahrscheinlich klappt es mit jeder neueren Version f\u00fcr Java-Entwickler)<\/li>\n<li><a href=\"http:\/\/code.google.com\/p\/xbee-api\/downloads\/list\" target=\"_blank\">Java XBee-API<\/a>, zur Zeit in Version 0.9 zur Programmierung des Coordinator-Moduls<\/li>\n<li><a href=\"http:\/\/www.digi.com\/support\/productdetail?pid=3352&amp;osvid=57&amp;type=utilities\" target=\"_blank\">X-CTU<\/a> zur erstmaligen Konfiguration beider XBee-Module<\/li>\n<\/ul>\n<h1>Best\u00fcckungsplan und Verkabelung<\/h1>\n<p>Da wir mit mindestens zwei XBee-Modulen arbeiten und Koordinator und Endpunkt nicht die gleiche Konfiguration aufweisen, g\u00e4be es eigentlich zwei Best\u00fcckungspl\u00e4ne, n\u00e4mlich einen f\u00fcr den Coordinator, d.h. Modul 1 und einen f\u00fcr den Sensor Node, d.h. Modul 2.\u00a0 Allerdings existiert meine Carrier-Komponente in Fritzing nicht. Und weil der Coordinator neben dem <strong>auf den Carrier aufgesteckten XBee-Modul <\/strong>nur aus <strong>PC und USB-Kabel besteht<\/strong>, lohnt sich das Zeichnen auch nicht. Deshalb stattdessen ein Bild:<\/p>\n<div id=\"attachment_2003\" style=\"width: 594px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/blog.ecotronics.ch\/wordpress\/wp-content\/uploads\/2013\/02\/XBeeCoordinatorMitUSBVerkabelt_20130223_600.jpg\"><img aria-describedby=\"caption-attachment-2003\" decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-2003\" title=\"Das mit USB am PC h\u00e4ngende XBee-Coordinator-Modul\" src=\"https:\/\/blog.ecotronics.ch\/wordpress\/wp-content\/uploads\/2013\/02\/XBeeCoordinatorMitUSBVerkabelt_20130223_600.jpg\" alt=\"\" width=\"584\" height=\"600\" srcset=\"https:\/\/blog.ecotronics.ch\/wordpress\/wp-content\/uploads\/2013\/02\/XBeeCoordinatorMitUSBVerkabelt_20130223_600.jpg 584w, https:\/\/blog.ecotronics.ch\/wordpress\/wp-content\/uploads\/2013\/02\/XBeeCoordinatorMitUSBVerkabelt_20130223_600-292x300.jpg 292w, https:\/\/blog.ecotronics.ch\/wordpress\/wp-content\/uploads\/2013\/02\/XBeeCoordinatorMitUSBVerkabelt_20130223_600-146x150.jpg 146w, https:\/\/blog.ecotronics.ch\/wordpress\/wp-content\/uploads\/2013\/02\/XBeeCoordinatorMitUSBVerkabelt_20130223_600-400x410.jpg 400w\" sizes=\"(max-width: 584px) 100vw, 584px\" \/><\/a><p id=\"caption-attachment-2003\" class=\"wp-caption-text\">Das mit USB am PC h\u00e4ngende XBee-Coordinator-Modul<\/p><\/div>\n<p>Was es mit diesen zwei Rollen auf sich hat, davon gleich im n\u00e4chsten Abschnitt mehr. Nun zum Sensor Node, der im Moment noch kein Sensor Node, sondern ein End Node ist, weil er statt mit einem Sensor mit einem Aktor, sprich einer LED, verkabelt ist.<\/p>\n<div id=\"attachment_2038\" style=\"width: 508px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/blog.ecotronics.ch\/wordpress\/wp-content\/uploads\/2013\/02\/xbee_ENDDevice_LED_Steckplatine_6001.jpg\"><img aria-describedby=\"caption-attachment-2038\" decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-2038\" title=\"XBee End-Modul mit LED und Arduino als Stromversorgung\" src=\"https:\/\/blog.ecotronics.ch\/wordpress\/wp-content\/uploads\/2013\/02\/xbee_ENDDevice_LED_Steckplatine_6001.jpg\" alt=\"\" width=\"498\" height=\"600\" srcset=\"https:\/\/blog.ecotronics.ch\/wordpress\/wp-content\/uploads\/2013\/02\/xbee_ENDDevice_LED_Steckplatine_6001.jpg 498w, https:\/\/blog.ecotronics.ch\/wordpress\/wp-content\/uploads\/2013\/02\/xbee_ENDDevice_LED_Steckplatine_6001-249x300.jpg 249w, https:\/\/blog.ecotronics.ch\/wordpress\/wp-content\/uploads\/2013\/02\/xbee_ENDDevice_LED_Steckplatine_6001-124x150.jpg 124w, https:\/\/blog.ecotronics.ch\/wordpress\/wp-content\/uploads\/2013\/02\/xbee_ENDDevice_LED_Steckplatine_6001-400x481.jpg 400w\" sizes=\"(max-width: 498px) 100vw, 498px\" \/><\/a><p id=\"caption-attachment-2038\" class=\"wp-caption-text\">XBee End-Modul mit LED und Arduino als Stromversorgung<\/p><\/div>\n<p>Und zuletzt m\u00f6chte ich Ihnen nat\u00fcrlich meine L\u00f6sung daf\u00fcr, wie man ein XBee-Modul ohne Adapterplatine und ohne L\u00f6ten verkabelt, nicht vorenthalten:<\/p>\n<div id=\"attachment_2026\" style=\"width: 610px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/blog.ecotronics.ch\/wordpress\/wp-content\/uploads\/2013\/02\/XBeeOhneAdapterVerkabeln_600.jpg\"><img aria-describedby=\"caption-attachment-2026\" decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-2026\" title=\"XBee ohne Adapterplatine verkabeln\" src=\"https:\/\/blog.ecotronics.ch\/wordpress\/wp-content\/uploads\/2013\/02\/XBeeOhneAdapterVerkabeln_600.jpg\" alt=\"\" width=\"600\" height=\"565\" srcset=\"https:\/\/blog.ecotronics.ch\/wordpress\/wp-content\/uploads\/2013\/02\/XBeeOhneAdapterVerkabeln_600.jpg 600w, https:\/\/blog.ecotronics.ch\/wordpress\/wp-content\/uploads\/2013\/02\/XBeeOhneAdapterVerkabeln_600-300x282.jpg 300w, https:\/\/blog.ecotronics.ch\/wordpress\/wp-content\/uploads\/2013\/02\/XBeeOhneAdapterVerkabeln_600-150x141.jpg 150w, https:\/\/blog.ecotronics.ch\/wordpress\/wp-content\/uploads\/2013\/02\/XBeeOhneAdapterVerkabeln_600-400x376.jpg 400w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/a><p id=\"caption-attachment-2026\" class=\"wp-caption-text\">XBee ohne Adapterplatine verkabeln<\/p><\/div>\n<h1>Schritt-f\u00fcr-Schritt-Vorgehen und Code<\/h1>\n<h2>Schritt 0: Hardware bereitstellen<\/h2>\n<p>Als erstes wartet man, bis alle Pakete von allen Lieferanten eingetroffen sind (das kann dauern). Dann empfiehlt es sich, <strong>seine zwei ZigBee-Module zu kennzeichnen<\/strong>, z.B. mit <strong>1 und 2<\/strong> nummerieren, damit man sie sp\u00e4ter voneinander kennt.<\/p>\n<p>Ausserdem <strong>laden Sie den Lithium-Akku<\/strong> aus dem Solar-Kit auf, indem Sie ihn auf dem Carrier in den mit <strong>BAT<\/strong> bezeichneten Anschluss stecken. Bei guter Wetterlage stecken Sie den Carrier in die zugeh\u00f6rige Box, ziehen das Kabel des Solarpanels durch die vorgesehene \u00d6ffnung und schliessen diesen Stecker unter <strong>CHARGE <\/strong>an. Verstauen Sie den Akku auf dem Carrier und schliessen Sie die Box mit dem Deckel. Dann legen Sie die Installation ein paar Stunden an die Sonne. Wem das zu unsicher ist, der kann den Carrier ohne Solarpanel mit USB an den PC anschliessen und den Lithiumakku so laden.<\/p>\n<h2>Schritt 1: X-CTU installieren<\/h2>\n<p>Als n\u00e4chstes l\u00e4dt man vom Digi-Website <a href=\"http:\/\/www.digi.com\/support\/productdetail?pid=3352&amp;osvid=57&amp;type=utilities\" target=\"_blank\">X-CTU<\/a>, die Software zur Konfiguration der XBee-Module, herunter und installiert sie auf seinem PC.<\/p>\n<p>Als Alternative k\u00f6nnte man die Module auch mit einem <strong>Terminalprogramm wie Putty<\/strong> konfigurieren, aber ich hatte keine Lust, mit +++ und einzelnen Befehlen herumzufummeln. In X-CTU lassen sich Konfigurationen speichern, so dass einfach zwischen verschiedenen Konfigurationen wechseln kann.<\/p>\n<h2>Schritt 2: XBee-Module konfigurieren<\/h2>\n<p>In ZigBee-Netzwerken vom Typ Series2 h\u00e4ngen die Module alle <strong>sternf\u00f6rmig an einem einzigen Modul<\/strong>. Daraus folgt, dasst es f\u00fcr die XBee-Module 3 Rollen gibt, wovon uns hier nur 2 interessieren:<\/p>\n<ul>\n<li>Der <strong>Coordinator (ZC)<\/strong>kommt nur ein einziges Mal im Funknetzwerk vor. Er koordiniert alle anderen Module, gibt grundlegende Parameter des PAN vor und sorgt als <strong>Gateway <\/strong>f\u00fcr die Verbindung mit der restlichen Welt, z.B. via USB-Kabel und PC<\/li>\n<li>Ein <strong>End Device (ZED)<\/strong> ist ein Endknoten, der mit Sensoren oder Aktoren verbunden ist und direkt oder indirekt \u00fcber einen Router mit dem Coordinator kommuniziert<\/li>\n<li>Ein im Projekt nicht vorkommender Router (ZR) verbindet den Coordinator mit einem Endknoten, z.B. um die Reichweite des Netzwerks zu erh\u00f6hen<\/li>\n<\/ul>\n<div id=\"attachment_2019\" style=\"width: 310px\" class=\"wp-caption alignleft\"><a href=\"https:\/\/blog.ecotronics.ch\/wordpress\/wp-content\/uploads\/2013\/02\/WindowsGeraetemanagerCOMPortFuerXBee_2013-02-24_203945.jpg\"><img aria-describedby=\"caption-attachment-2019\" decoding=\"async\" loading=\"lazy\" class=\"size-medium wp-image-2019\" title=\"COM-Port f\u00fcr XBee im Windows-Ger\u00e4temanager\" src=\"https:\/\/blog.ecotronics.ch\/wordpress\/wp-content\/uploads\/2013\/02\/WindowsGeraetemanagerCOMPortFuerXBee_2013-02-24_203945-300x220.jpg\" alt=\"\" width=\"300\" height=\"220\" srcset=\"https:\/\/blog.ecotronics.ch\/wordpress\/wp-content\/uploads\/2013\/02\/WindowsGeraetemanagerCOMPortFuerXBee_2013-02-24_203945-300x220.jpg 300w, https:\/\/blog.ecotronics.ch\/wordpress\/wp-content\/uploads\/2013\/02\/WindowsGeraetemanagerCOMPortFuerXBee_2013-02-24_203945-150x110.jpg 150w, https:\/\/blog.ecotronics.ch\/wordpress\/wp-content\/uploads\/2013\/02\/WindowsGeraetemanagerCOMPortFuerXBee_2013-02-24_203945-400x294.jpg 400w, https:\/\/blog.ecotronics.ch\/wordpress\/wp-content\/uploads\/2013\/02\/WindowsGeraetemanagerCOMPortFuerXBee_2013-02-24_203945.jpg 596w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-2019\" class=\"wp-caption-text\">COM-Port f\u00fcr XBee im Windows-Ger\u00e4temanager<\/p><\/div>\n<p><strong>Modul 1 <\/strong>wird bei mir <strong>Coordinator<\/strong>, <strong>Modul 2 End Device<\/strong>. Als erstes soll nun der End Device, d.h. <strong>Modul 2<\/strong> konfiguriert werden. Dazu steckt man das Modul <strong>auf den Carrier Shield<\/strong> aus dem Solar-Kit und verbindet den Shield via USB-Kabel mit dem PC. Auf dem Carrier sollten nun ein paar LEDs aufleuchten.<\/p>\n<p>Als n\u00e4chstes <strong>startet man X-CTU<\/strong>. Unter dem ersten Register &#8220;PC Settings&#8221; sollte im Fenster &#8220;Select COM Port&#8221; ihr XBee-Modul als &#8220;USB Serial Port&#8221; sichtbar sein. Dort findet man auch den zugeteilten COM-Port. Bei mir ist das aktuell <strong>COM14<\/strong>.<\/p>\n<p>Falls dieser Eintrag fehlt,\u00a0 \u00f6ffnet man den <strong>Windows-Ger\u00e4temanager <\/strong>und sieht unter &#8220;Anschl\u00fcsse&#8221; nach, ob das Modul wirklich an einem COM-Port angeschlossen ist. Falls nicht, steckt man es noch einmal aus und wieder ein. Falls es vorhanden ist, dann markiert man die Zeile und klickt im Men\u00fc Aktion auf Deaktivieren und anschliessend auf Aktivieren. Arduino-Profis kennen das ja. Wenn das alles nicht hilft und alle Anschl\u00fcsse \u00fcberpr\u00fcft sind, dann weiss ich auch keinen Rat mehr.<\/p>\n<p>Falls X-CTU das Modul nun in der Liste hat, dann \u00fcberpr\u00fcft man, ob die <strong>Baud-Rate<\/strong> auf dem Defaultwert <strong>9600 <\/strong>steht und wechselt ins letzte Register &#8220;Modem Configuration&#8221;. Am n\u00e4chsten Schritt bin ich fast verzweifelt: Als ich auf die <strong>Schaltfl\u00e4che &#8220;Read&#8221;<\/strong> klickte, wurde mein Modul n\u00e4mlich nicht erkannt, was mich zur irrigen Annahme f\u00fchrte, man m\u00fcsse den Modem-Typ selbst eintragen. Worauf ich ziemlich viel Zeit mit dem Versuch verbraten habe, herauszufinden, welcher der im Kombinationsfeld vorkommenden <strong>Modemtypen <\/strong>denn eigentlich zu meinem Modul passt. Es geht definitiv einfacher: Mein Modem wurde n\u00e4mlich nicht erkannt, weil es auf meinem Carrier-Shield seitlich einen klitzekleinen On-Off-Schalter gibt. Da fieserweise 2 der 4 LEDs auch leuchten, wenn der Schalter auf Off steht, habe ich erst nach langem Suchen gemerkt, dass ich den <strong>Schalter am Carrier auf On stellen<\/strong> muss (merkt man an den <strong>vier brennenden LEDs<\/strong>), damit das Modul erkannt wird. Damit klappte das Einlesen und die Software spuckte von selbst aus, dass es sich um ein <strong>XB24-B<\/strong> handelt. Bevor man die Konfiguration \u00e4ndert, ist es sinnvoll, die Defaultkonfiguration mit Profile &#8211; Save zu speichern, um zumindest zu ihr zur\u00fcckzugehen, falls etwas schief geht.<\/p>\n<p>Nun wird das End-Modul mit folgenden Einstellungen konfiguriert:<\/p>\n<ul>\n<li>Modem: XB24-B<\/li>\n<li>Function Set: <strong>ZIGBEE ROUTER\/END DEVICE API<\/strong><\/li>\n<li>ID: <strong>192 <\/strong>(die allen Modulen gemeinsame ID des Netzwerks)<\/li>\n<li>NI: SENSOR2 (ein Name, mit dem sich das Modul im Netzwerk identifizieren l\u00e4sst)<\/li>\n<li>BD: 6 (57600 Baud, es geht auch schneller als 9600, von noch h\u00f6heren Geschwindigkeiten wird abgeraten)<\/li>\n<li>AP: <strong>2<\/strong> (API enabled mit Escaping)<\/li>\n<\/ul>\n<p>Alles andere l\u00e4sst man auf den Default-Einstellungen. Dann setzt man das H\u00e4kchen bei <strong>&#8220;Always Update Firmware&#8221;<\/strong>, klickt auf &#8220;<strong>Write<\/strong>&#8221; und betet. Wenn alles gut geht, erscheint ein Verlaufsbalken und nach dem erfolgreichen Abschluss eine Meldung mit OK. Keine Panik, falls Sie &#8220;Unable to communicate with modem&#8221; erhalten. \u00dcberpr\u00fcfen Sie die Konfiguration und versuchen Sie es noch einmal. Um die ge\u00e4nderte <strong>Konfiguration sp\u00e4ter mit Read wieder einlesen <\/strong>zu k\u00f6nnen, muss man die folgenden Einstellungen vornehmen:<\/p>\n<div id=\"attachment_2023\" style=\"width: 260px\" class=\"wp-caption alignright\"><a href=\"https:\/\/blog.ecotronics.ch\/wordpress\/wp-content\/uploads\/2013\/02\/KonfigurationDesXBeeCoordinators_2013-02-24_2206291.gif\"><img aria-describedby=\"caption-attachment-2023\" decoding=\"async\" loading=\"lazy\" class=\"size-medium wp-image-2023\" title=\"Konfiguration des XBee-Coordinators-Moduls\" src=\"https:\/\/blog.ecotronics.ch\/wordpress\/wp-content\/uploads\/2013\/02\/KonfigurationDesXBeeCoordinators_2013-02-24_2206291-250x300.gif\" alt=\"\" width=\"250\" height=\"300\" srcset=\"https:\/\/blog.ecotronics.ch\/wordpress\/wp-content\/uploads\/2013\/02\/KonfigurationDesXBeeCoordinators_2013-02-24_2206291-250x300.gif 250w, https:\/\/blog.ecotronics.ch\/wordpress\/wp-content\/uploads\/2013\/02\/KonfigurationDesXBeeCoordinators_2013-02-24_2206291-125x150.gif 125w, https:\/\/blog.ecotronics.ch\/wordpress\/wp-content\/uploads\/2013\/02\/KonfigurationDesXBeeCoordinators_2013-02-24_2206291-400x478.gif 400w, https:\/\/blog.ecotronics.ch\/wordpress\/wp-content\/uploads\/2013\/02\/KonfigurationDesXBeeCoordinators_2013-02-24_2206291.gif 606w\" sizes=\"(max-width: 250px) 100vw, 250px\" \/><\/a><p id=\"caption-attachment-2023\" class=\"wp-caption-text\">Konfiguration des XBee-Coordinators-Moduls<\/p><\/div>\n<ul>\n<li>das H\u00e4kchen bei &#8220;Always Update Firmware&#8221; entfernen<\/li>\n<li>im Register PC-Settings\n<ul>\n<li>die Baud-Rate auf 57600 einstellen<\/li>\n<li>das H\u00e4kchen vor &#8220;Enable API&#8221; setzen<\/li>\n<li>das H\u00e4kchen vor &#8220;Use escape characters (ATAP = 2)&#8221; setzen<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Auch hier braucht es oft zwei bis drei Anl\u00e4ufe, bevor das wirklich klappt.<\/p>\n<p>F\u00fcr das Coordinator-Module sehen die Einstellungen nur wenig anders aus:<\/p>\n<ul>\n<li>Modem: XB24-B<\/li>\n<li>Function Set: <strong>ZIGBEE COORDINATOR API<\/strong><\/li>\n<li>ID: 192<\/li>\n<li>NI: <strong>COORDINATOR1<\/strong><\/li>\n<li>BD: 6 (57600)<\/li>\n<li>AP: 2<\/li>\n<\/ul>\n<p>Auch hier setzt man wieder <strong>&#8220;Always Update Firmware&#8221;<\/strong> und klickt mit viel Optimismus auf &#8220;<strong>Write<\/strong>&#8220;. Wenn man die OK-Meldung erh\u00e4lt, ist die Konfiguration der zwei ZigBee-Module erfolgreich abgeschlossen.<\/p>\n<p>Der Umgang mit X-CTU erwies sich \u00fcbrigens als nicht sehr zuverl\u00e4ssig: Oft ben\u00f6tigte ich sowohl f\u00fcr Schreib- wie f\u00fcr Leseoperationen zwei oder drei Wiederholungen bis es klappte, wobei ich meistens das USB-Kabel aus- und wieder einstecken sowie den Port deaktivieren und aktivieren musste.<\/p>\n<h2>Schritt 3: Schaltungen zusammenstecken<\/h2>\n<p>Wenn Sie genau in der vorgeschlagenen Reihenfolge vorgegangen sind, dann ist das <strong>Coordinator-Modul<\/strong> bereits vollst\u00e4ndig verkabelt, d.h. es ist auf den Carrier aufgesteckt und h\u00e4ngt via USB am PC.<\/p>\n<p>Im weiteren bauen Sie auf dem Steckbrett mit LED, Widerstand und Jumperkabeln die unter Best\u00fcckungsplan aufgezeigte Schaltung und versorgen diese entweder mit dem Lithium-Akku oder mit dem 3.3V- und dem GND-Pin eines Arduino mit Strom. Zwei normales Jumperkabel passen \u00fcbrigens perfekt in den Stecker des Akkus. Rot ist wie immer Strom und Schwarz Masse (GND). <strong><span style=\"color: #ff0000;\">Achtung<\/span>: Vermeiden Sie unbedingt, dass sich die zwei freien Enden der Jumperkabel ber\u00fchren, denn dies w\u00fcrde zu einem fatalen <span style=\"color: #ff0000;\">Kurzschluss <\/span>des Akkus f\u00fchren<\/strong>!<\/p>\n<p>Nun muss man noch das End-Modul 2 verkabeln wie im letzten Bild unter &#8220;Best\u00fcckungsplan&#8221; gezeigt. Verkabelt werden in dieser Minimalvariante nur die folgenden Pins<\/p>\n<ul>\n<li>Pin <strong>1<\/strong>: Stromversorgung<\/li>\n<li>Pin <strong>10<\/strong>: Masse (GND)<\/li>\n<li>Pin <strong>20<\/strong>: Digital Output, d.h auf dem Steckbrett mit jener horizontalen Reihe verbinden, in der sich auch das l\u00e4ngere Beinchen des LED befindet<\/li>\n<\/ul>\n<p>Eine vollst\u00e4ndige Beschreibung aller Pins (und noch viel mehr, als man je \u00fcber ein XBee wissen wollte) findet man \u00fcbrigens im XBee-ZNet-2.5-Manual, das in der XBee-Api-Library (siehe n\u00e4chster Schritt) enthalten ist.<\/p>\n<h2>Schritt 4: Eclipse installieren und XBee-API-Library laden<\/h2>\n<p>Es gibt diverse Programmiersprachen, die man einsetzen kann, um mit ZigBees zu kommunizieren unter anderem C (Arduino), und Processing. Als ich allerdings auf eine <strong>XBee-API-Library f\u00fcr Java<\/strong> stiess, war f\u00fcr mich klar, dass ich es damit probiere, denn mit Java habe ich jahrelange Erfahrung. Die Entwicklungsumgebung <strong>Eclipse <\/strong>war deshalb als Software schon vorhanden und zwar in der Version Indigo. Falls Eclipse nicht vorhanden ist, laden Sie es <a href=\"http:\/\/www.eclipse.org\/downloads\/packages\/eclipse-ide-java-developers\/indigosr2\" target=\"_blank\">herunter<\/a> und installieren Sie es.<\/p>\n<p>Falls Sie unter Windows-64-Bit arbeiten, kommt ein weiterer Schritt dazu: Die Library l\u00e4uft n\u00e4mlich nur unter 32-Bit, d.h. es muss auf jeden Fall ein <strong>Java-JDK f\u00fcr 32-Bit <\/strong>vorhanden sein. Vergewissern Sie sich, ob Sie im Verzeichnis &#8220;<strong>Program Files (x86)\\Java<\/strong>&#8221; ein <strong>JDK 1.6 oder h\u00f6her<\/strong> haben und installieren Sie eines nach, falls dies nicht der Fall sein sollte. Eine bestehende 64-Bit-Java-Version wird davon nicht tangiert, verschiedene Java-Versionen k\u00f6nnen koexistieren. Mit jdk-6u41-windows-i586.exe auf der <a href=\"http:\/\/www.oracle.com\/technetwork\/java\/javase\/downloads\/jdk6downloads-1902814.html\" target=\"_blank\">Oracle-Java-Download-Seite<\/a> m\u00fcsste das eigentlich klappen.<\/p>\n<p>Nun geht es daran, die API-Library einzubinden: Laden Sie die Library von <a href=\"http:\/\/code.google.com\/p\/xbee-api\/downloads\/detail?name=xbee-api-0.9.zip\" target=\"_blank\">dieser Adresse<\/a> herunter. Entzippen Sie anschliessend die Datei in jenes Verzeichnis, in dem Sie ihre ihre Eclipse- (oder Java-) Projekte verwalten. Falls Sie bis jetzt nicht mit Java gearbeitet haben, nehmen Sie irgendein Verzeichnis. Starten Sie Eclipse. Wenn Sie das Projekt nicht im Default-Workspace haben m\u00f6chten, wechseln Sie in einen geeigneten Workspace. Nun importieren Sie das soeben ausgepackte Verzeichnis mit &#8220;File &#8211; Import &#8211; Existing Projects into Workspace &#8211; Select root directory &#8211; Browse&#8221;.\u00a0 Damit sollten Sie in Eclipse ein neues Projekt namens xbee-api mit allen Libraries, viel Beispielcode und ausf\u00fchrlicher Dokumentation sehen. Falls Probleme auftauchen, gibt es im <a href=\"http:\/\/code.google.com\/p\/xbee-api\/wiki\/GettingStartedWithEclipse\" target=\"_blank\">Wiki <\/a>zu der Library eine ausf\u00fchrlichere Dokumentation.<\/p>\n<p>Unter Windows-64-Bit muss man das Projekt nun noch mit der 32-Bit-Version des JDKs verbinden. Dazu w\u00e4hlt man im Men\u00fc <strong>Run &#8211; Run Configurations &#8211; Register JRE &#8211; Alternate JRE<\/strong>, und w\u00e4hlt die <strong>JDK-Version mit 32 Bit<\/strong> aus. Eventuell muss man sie zuerst noch mit der Schaltfl\u00e4che &#8220;Installed JREs&#8221; und Add hinzuf\u00fcgen. Falls man auch debuggen m\u00f6chte, muss man das gleiche f\u00fcr<strong> Run &#8211; Debug Configurations<\/strong> noch einmal machen.<\/p>\n<p>Achten Sie darauf, dass Sie unter der<strong> Java- oder der Java-EE-Perspective<\/strong> arbeiten (die Tabs ganz oben rechts).<\/p>\n<h2>Schritt 5: Java-Testprogramme starten<\/h2>\n<p>Nun kommt der entscheidende Moment, in dem sich weisen wird, ob beide Module korrekt konfiguriert und verkabelt sind und ob die notwendige Software in der richtigen Version vorhanden ist.<\/p>\n<p>Bevor wir das Hallo-Welt-Beispiel starten k\u00f6nnen, m\u00fcssen wir allerdings die Adresse des Endknotens auslesen, die sich aus den Teilen SH und SL zusammensetzt. Daf\u00fcr m\u00fcssen Sie das Endknoten-Modul noch einmal entkabeln, den Carrier vom USB-Anschluss abziehen, und anstelle des Coordinators das End-Modul in den Carrier einsetzen. Dann stecken Sie das USB-Kabel wieder ein.<\/p>\n<p>Suchen Sie sich im Eclipse-Projekt unter src &#8211; com.rapplogic.xbee.examples die Datei <strong>ApiAtExample<\/strong>. Im Code dieser Datei nehmen Sie die folgenden \u00c4nderungen vor:<\/p>\n<ul>\n<li>Tragen Sie in der Zeile mit xbee.open Ihren COM-Port und die Baud-Rate 57600 ein, also z.B.<br \/>\n<strong>xbee.open(&#8220;COM14&#8221;, 57600);<\/strong><\/li>\n<li>Suchen Sie die zwei Zeilen, die mit &#8220;log.info(&#8220;SH is&#8221; und &#8220;log.info(&#8220;SL is&#8221; beginnen, und entfernen Sie die zwei Schr\u00e4gstriche (\/\/) davor. Mit \/\/ wird unter Java Code auskommentiert. Diese zwei Zeilen m\u00f6chten wir aber ausf\u00fchren, weil damit SH und SL ausgelesen wird, die wir f\u00fcr das n\u00e4chste Codebeispiel ben\u00f6tigen.<\/li>\n<\/ul>\n<div id=\"attachment_2030\" style=\"width: 310px\" class=\"wp-caption alignleft\"><a href=\"https:\/\/blog.ecotronics.ch\/wordpress\/wp-content\/uploads\/2013\/02\/SHAdresseVonZigBeeInEclipseAuslesen_2013-02-25_002418.jpg\"><img aria-describedby=\"caption-attachment-2030\" decoding=\"async\" loading=\"lazy\" class=\"size-medium wp-image-2030\" title=\"SH-Adresse aus dem Log auslesen\" src=\"https:\/\/blog.ecotronics.ch\/wordpress\/wp-content\/uploads\/2013\/02\/SHAdresseVonZigBeeInEclipseAuslesen_2013-02-25_002418-300x87.jpg\" alt=\"\" width=\"300\" height=\"87\" srcset=\"https:\/\/blog.ecotronics.ch\/wordpress\/wp-content\/uploads\/2013\/02\/SHAdresseVonZigBeeInEclipseAuslesen_2013-02-25_002418-300x87.jpg 300w, https:\/\/blog.ecotronics.ch\/wordpress\/wp-content\/uploads\/2013\/02\/SHAdresseVonZigBeeInEclipseAuslesen_2013-02-25_002418-1024x297.jpg 1024w, https:\/\/blog.ecotronics.ch\/wordpress\/wp-content\/uploads\/2013\/02\/SHAdresseVonZigBeeInEclipseAuslesen_2013-02-25_002418-150x43.jpg 150w, https:\/\/blog.ecotronics.ch\/wordpress\/wp-content\/uploads\/2013\/02\/SHAdresseVonZigBeeInEclipseAuslesen_2013-02-25_002418-400x116.jpg 400w, https:\/\/blog.ecotronics.ch\/wordpress\/wp-content\/uploads\/2013\/02\/SHAdresseVonZigBeeInEclipseAuslesen_2013-02-25_002418.jpg 1231w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-2030\" class=\"wp-caption-text\">SH-Adresse aus dem Log auslesen<\/p><\/div>\n<p>Starten Sie nun dieses Beispiel im Project Explorer mit einem Rechtsklick auf &#8220;ApiAtExample.java&#8221; &#8211; Run As &#8211; Java Application. Falls sie im Fenster &#8220;Console&#8221; unterhalb des Editors keine Exception sehen, hat es vermutlich geklappt. Klicken Sie nun in das Konsolenfenster und suchen Sie mit Ctrl F nach &#8220;<strong>SH is<\/strong>&#8220;. In dieser Zeile finden Sie 4 hexadezimale Werte. Markieren und kopieren Sie diese mit Ctrl C und wechseln Sie dann in die Datei <strong>RemoteAtExample.java<\/strong> direkt unterhalb der ersten Beispieldatei. Suchen Sie dort die Zeile &#8220;XBeeAddress64&#8230;&#8221; und ersetzen Sie die ersten vier Werte in der Klammer durch ihre Adresse. Nun suchen Sie in der Konsole noch nach &#8220;SL is&#8221;, kopieren wiederum die vier hexadezimalen Werte und f\u00fcgen sie in der XBeeAddress64 anstelle der Werte an Position 5 bis 8 ein. Das ergibt dann etwas in der Art von<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\n\r\nXBeeAddress64 addr64 = new XBeeAddress64( 0x00,0x13,0xa2,0x00, 0x40,0x9c,0x66,0xa2);\r\n\r\n<\/pre>\n<p>Auch in diesem Codebeispiel muss COM-Port und Baud-Rate angepasst werden. Versichern Sie sich, dass von den Zeilen, die mit RemoteAtRequest beginnen, nur die erste mit D0 nicht auskommentiert ist, d.h.<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\n\r\nRemoteAtRequest request = new RemoteAtRequest(addr64, &quot;D0&quot;, new int[] {5});\r\n...\r\nrequest.setValue(new int[] {4});\r\n\r\n<\/pre>\n<p>Nun m\u00fcssen Sie das Modul 2 auf dem Carrier wieder mit Modul 1 auswechseln und das Modul 2 noch einmal korrekt verkabeln. Dann starten Sie das Remote-Beispiel mit Rechtsklick und Run. Wenn die LED auf dem Steckbrett aufleuchtet und nach 5 Sekunden wieder abschaltet, dann haben Sie es geschafft. Gratuliere, Sie haben das XBee-Dschungel-Camp \u00fcberlebt!<\/p>\n<h1>Demo<\/h1>\n<p>Im Video sieht man, wie die LED drahtlos ein- und wieder ausgeschaltet wird:<br \/>\n<iframe loading=\"lazy\" width=\"420\" height=\"315\" src=\"http:\/\/www.youtube.com\/embed\/5YgHTun4tSA?rel=0\" frameborder=\"0\" allowfullscreen><\/iframe><br \/>\n&nbsp;<\/p>\n<h1>Grundlagen und Glossar<\/h1>\n<ul>\n<li><strong>Mesh Network<\/strong>: in einem vermaschten Netzwerk ist jeder Knoten mit einem oder mehreren anderen verbunden<strong> <\/strong><\/li>\n<li><strong>PAN<\/strong>: Personal Area Network<\/li>\n<li><strong>RSSI<\/strong>: Received Signal Strength Indicator<\/li>\n<li><strong>WPAN<\/strong>: Wireless Personal Area Network<\/li>\n<li><strong>ZigBee<\/strong>: Auf <strong>Radiofrequenzen <\/strong>beruhende Spezifikation f\u00fcr <strong>kleine Netzwerke<\/strong> (PANs) mit <strong>begrenzter Reichweite<\/strong> bis 100\u00a0m und <strong>geringem Stromverbrauch<\/strong>. Damit ist ZigBee f\u00fcr drahtlose Kommunikation eine<strong> Alternative zu Bluetooth oder Wifi<\/strong>. Der Industriestandard ZigBee wurde von der 2002 gegr\u00fcndeten ZigBee-Allianz aus der Taufe gehoben. Erste ZigBee-Produkte kamen 2005 auf den Markt.<\/li>\n<\/ul>\n<h1>Quellen<\/h1>\n<ul>\n<li>Wikipedia-Artikel zu IEEE 802.15.4: <a href=\"http:\/\/de.wikipedia.org\/wiki\/IEEE_802.15.4\" target=\"_blank\">http:\/\/de.wikipedia.org\/wiki\/IEEE_802.15.4<\/a><\/li>\n<li>Wikipedia-Artikel zu ZigBee: <a href=\"http:\/\/de.wikipedia.org\/wiki\/ZigBee\" target=\"_blank\">http:\/\/de.wikipedia.org\/wiki\/ZigBee<\/a><\/li>\n<li>Damit habe ich die Konfiguration f\u00fcr die 2 XBEEs zusammengest\u00fcckelt: <a href=\"http:\/\/code.google.com\/p\/xbee-api\/wiki\/XBeeConfiguration\" target=\"_blank\">http:\/\/code.google.com\/p\/xbee-api\/wiki\/XBeeConfiguration<\/a><\/li>\n<li><a href=\"http:\/\/code.google.com\/p\/xbee-api\/wiki\/GettingStartedWithEclipse\" target=\"_blank\">http:\/\/code.google.com\/p\/xbee-api\/wiki\/GettingStartedWithEclipse<\/a> um Eclipse einzurichten<\/li>\n<li>die Belegung der Pins eines XBee Series2 findet man hier: <a href=\"http:\/\/code.google.com\/p\/xbee-api\/wiki\/XBeePins\">http:\/\/code.google.com\/p\/xbee-api\/wiki\/XBeePins<\/a><\/li>\n<li>ein einfaches Beispiel mit einem einzigen XBee ohne Arduino (allerdings f\u00fcr Series1): <a href=\"http:\/\/www.kobakant.at\/DIY\/?p=247\" target=\"_blank\">http:\/\/www.kobakant.at\/DIY\/?p=247<\/a><\/li>\n<li>Buch &#8220;<a href=\"http:\/\/www.amazon.de\/Making-Things-Talk-h%C3%B6ren-f%C3%BChlen\/dp\/386899162X\/ref=sr_1_2?ie=UTF8&amp;qid=1361705595&amp;sr=8-2\" target=\"_blank\">Making Things Talk &#8211; Die Welt h\u00f6ren, sehen, f\u00fchlen<\/a>&#8220;, Tom Igoe, O&#8217;Reilly<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p id=\"caption-attachment-2005\" class=\"wp-caption-text\">XBee-Funknetzwerk mit 1 Coordinator und 1 End Node<\/p>\n<p>Keine Angst, auch wenn der Titel eher nach Frustration t\u00f6nt, handelt es sich in diesem Tutorial um ein vollst\u00e4ndiges, lauff\u00e4higes Projekt. Ich pfade Ihnen gewissermassen den Weg durch den Dschungel. Und wenn Ihnen der Artikel schlicht zu lang ist, f\u00fcr das Projekt selbst ist es [&#8230;]<\/p>\n","protected":false},"author":1,"featured_media":2005,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[158,210],"tags":[214,213,216,212,215,288,297,211],"_links":{"self":[{"href":"https:\/\/blog.ecotronics.ch\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/1956"}],"collection":[{"href":"https:\/\/blog.ecotronics.ch\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.ecotronics.ch\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.ecotronics.ch\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.ecotronics.ch\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1956"}],"version-history":[{"count":80,"href":"https:\/\/blog.ecotronics.ch\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/1956\/revisions"}],"predecessor-version":[{"id":1964,"href":"https:\/\/blog.ecotronics.ch\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/1956\/revisions\/1964"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.ecotronics.ch\/wordpress\/index.php?rest_route=\/wp\/v2\/media\/2005"}],"wp:attachment":[{"href":"https:\/\/blog.ecotronics.ch\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1956"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.ecotronics.ch\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1956"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.ecotronics.ch\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1956"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}