Author Topic: Foca / XBee  (Read 19148 times)

phil

  • Newbie
  • *
  • Posts: 7
  • Karma: +0/-0
Foca / XBee
« on: April 11, 2013, 05:19:33 PM »
Hi


Ich habe das Foca board (im Wiki als geeignet erwähnt) gekauft und einen XBee Chip montiert.

Konfiguration, Firmware Update mit XCTU etc klappt. - aber ich bin mir nun nicht sicher wie ich den XBee mit dem Arduino verbinden muss:

Kann ich die (VCCIO, RXD, TXD, GND) Pins vom Foca board mit Arduino verbinden? Wenn ja, 5V oder 3.3V (kann ich einen Dx pin verwenden, 40mA sollten ja reichen - sind aber ~5V) Ja.

Ich habe es mal so versucht und dann mit der xbee-arduino library versucht - da kriege ich aber immer nur "local XBee did not provide a timely TX Status Response -- should not happen"
Das lesen timed out (Zeile 96).
Ursache noch unklar, möglicherweise lags an der Konfiguration - evtl aber auch am SoftwareSerial. Ich forsche weiter.

Hat es jemand geschaft in der Kombination 2 XBees via API mode zum Kommunizieren zu bringen?
« Last Edit: April 12, 2013, 05:57:07 PM by phil »

Nukular

  • Newbie
  • *
  • Posts: 45
  • Karma: +1/-0
Re: Foca / XBee
« Reply #1 on: April 15, 2013, 03:33:30 PM »
Hallo phil

Welchen Arduino hast du (Uno?) ?

Welches XBee hast du (2.5, 2, 2.5?) ?

Die meisten Anleitungen im Internet beschreiben die "alten" 2er und älter, aber die neuen 2.5 haben ab Fabrik das Mesh (ZNet) aktiviert.
Seit Version 2 funktioniert nur die Globale Adresse (ATDH + ATDL), aber ATMY nicht mehr.

mikeZ337

  • Newbie
  • *
  • Posts: 28
  • Karma: +3/-1
Re: Foca / XBee
« Reply #2 on: April 24, 2013, 08:01:34 PM »
Ich habe vor ein paar Tagen meine ersten Schritte mit XBee gemacht. Geholfen hat mir die Leseprobe des Buches "Building Wireless Sensor Networks" http://books.google.ch/books/about/Building_Wireless_Sensor_Networks.html?id=xMC69vQJLZIC&redir_esc=y
Gelesen habe ich da nur soweit, bis meine Kombination funktionierte (2 ältere S2 Module im AT Modus).
Verbunden habe ich RX, TX, VCC und GND.

phil

  • Newbie
  • *
  • Posts: 7
  • Karma: +0/-0
Re: Foca / XBee
« Reply #3 on: May 10, 2013, 11:45:57 PM »
Ich hab nochmals etwas damit gespielt...

Ich möchte via API Modus von A nach B eine Zahl übermitteln (DHT22-Sensor liest Luftfeuchte und sendet sie via XBee).

Ich habe zwei Arduino Uno (ein älteres Modell und ein R3), dazu habe ich die FOCA v2.2 boards und die  (XBee Module ZNet 2.5 XB24-BPIT-004).

Code: [Select]
// humidor part (sender)

#include "XBee.h"
#include "DHT.h"
#include <AltSoftSerial.h>
#include <SoftwareSerial.h>


#define DHTPIN      6     // read temp/humidity
#define VALVEPIN    5     // open/close flood gates
#define LEDPIN     13     // flash LED for information
#define XBRXPIN     8     // RX pin XBee
#define XBTXPIN     9     // TX pin XBee
#define XBVCCPIN   10     // 5V supply XBee



#define DHTTYPE DHT22   // DHT 22  (AM2302)

#define DROPLIQ_ENABLED 0  // enable/disable (0) flood gate feature
DHT dht(DHTPIN, DHTTYPE);

// create the XBee object
XBee xbee = XBee();
uint8_t payload[] = { 0, 0 };
// SH + SL Address of receiving XBee
XBeeAddress64 addr64 = XBeeAddress64(0x0013a200, 0x4098982A);
ZBTxRequest zbTx = ZBTxRequest(addr64, payload, sizeof(payload));
ZBTxStatusResponse txStatus = ZBTxStatusResponse();

//AltSoftSerial xbSerial;
SoftwareSerial xbSerial(XBRXPIN, XBTXPIN);

// router:      SH 13A200 SL 4098982A  receiver I
// coordinator: SH 13A200 SL 40989823


void setup() {
  Serial.begin(9600);
  Serial.println("Humidor Sender!");
  pinMode(VALVEPIN, OUTPUT);
  pinMode(LEDPIN, OUTPUT);

  // power on XB
  pinMode(XBVCCPIN, OUTPUT);
  digitalWrite(XBVCCPIN, HIGH);

  xbSerial.begin(57600); // 57600 / 9600
  xbee.setSerial(xbSerial);
  dht.begin();
}

void loop() {
  // Reading temperature or humidity takes about 250 milliseconds!
  // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
  float h = dht.readHumidity();
  float t = dht.readTemperature();

  // check if returns are valid, if they are NaN (not a number) then something went wrong!
  if (!(isnan(t) || isnan(h))) {
    sendTemperature(t);
  }
  delay(100);
}

void flashLed(int pin, int times, int wait) {
  // ...
}

void dropLiquids(float h) { 
  // ...
}

void sendTemperature(float tempFloat) {
 
  Serial.println("Sending data");
 
  // send hum data to coordinator
  int tInt = (int) tempFloat; // convert float to int
  payload[0] = tInt >> 8 & 0xff;
  payload[1] = tInt & 0xff;
 
  xbee.send(zbTx);

    // after sending a tx request, we expect a status response
  // wait up to half second for the status response
  if (xbee.readPacket(1500)) {
    // got a response!
    Serial.println("Got a response");
    // should be a znet tx status               
    if (xbee.getResponse().getApiId() == ZB_TX_STATUS_RESPONSE) {
      xbee.getResponse().getZBTxStatusResponse(txStatus);

      // get the delivery status, the fifth byte
      if (txStatus.getDeliveryStatus() == SUCCESS) {
        // success.  time to celebrate
        flashLed(LEDPIN, 2, 100);
        Serial.println("XB Success");
      } else {
        // the remote XBee did not receive our packet. is it powered on?
        flashLed(LEDPIN, 6, 300);
        Serial.println("XB No success");
      }
    }
  } else if (xbee.getResponse().isError()) {
    //nss.print("Error reading packet.  Error code: "); 
    //nss.println(xbee.getResponse().getErrorCode());
  } else {
    // local XBee did not provide a timely TX Status Response -- should not happen
    flashLed(LEDPIN, 4, 200);
    Serial.println("Local XBee did not give timely TX response");
  }
 
 
}

Edit: Zu früh submit geklickt..

Anyway, ich weiss nicht ob meine Daten überhaupt gesendet werden, auf jedenfall sehe ich im X-CTU nichts und auch mit einem Arduino code zum empfangen sehe ich nichts.
TX/RX Leds beim sendenden XBee flackern, beim Empfänger leuchten/flackern sie nie.

Beim ausführen des obigen Codes lande ich immer im "Local XBee did not give timely TX response" - eine Response erwarte ich eigentlich nur im Sinne von einem technischen ACK - aber es kommt ja gar nix an...

  • Muss ich den Empfang eines ZBTxRequest mit dem Empfänger bestätigen?
  • Hat jemand ein API Beispiel das funktioniert? Mit SoftwareSerial?

Vielen Dank :)
« Last Edit: May 11, 2013, 12:05:26 AM by phil »

Nukular

  • Newbie
  • *
  • Posts: 45
  • Karma: +1/-0
Re: Foca / XBee
« Reply #4 on: May 11, 2013, 01:12:29 AM »
Wenn du das XBee direkt seriell ansprichst mit "+++", reagiert er dann ?

Ich musste erst das ZNet-Protokoll mit dem "XCTU ver. 5.2.8.6 installer" Programm (Win Exe) zu "Coordinator" und "Router" überschreiben.

phil

  • Newbie
  • *
  • Posts: 7
  • Karma: +0/-0
Re: Foca / XBee
« Reply #5 on: May 11, 2013, 01:21:32 AM »
Ich habe gerade beide via USB dran und suche ob ich einen Fehler in der Konfiguration habe.

Muss ich den Channel bei beiden setzen? (Ich kann nicht...?)

Also die beiden reagieren, auf +++ bzw auf Programmieren via GUI (XCTU).

Screenshots aus XCTU mit der Configuration (die ich bis vorhin noch drinn hatte).

Die Edit meint noch: Interessant ist auch: wenn ich beim Sendenden Modul den VCCIO (am FOCA mit dem XBee drauf) wegnehme, flackern die TX/RX LEDs, aber sobald ich die 5V wieder drann hänge, hören sie auf.
« Last Edit: May 11, 2013, 01:30:29 AM by phil »

boxtec-support

  • Moderator
  • Hero Member
  • *****
  • Posts: 787
  • Karma: +15/-0
    • Boxtec Web
Re: Foca / XBee
« Reply #6 on: May 11, 2013, 03:56:19 PM »
Ich denke, die Firmware Versionen sollten immer exakt gleich sein, auf jeden Fall hab ich das mal in unserem XBee Dok so geschrieben und errinnere mich auch an ähnliche Erlebnisse.
HTH,
Christoph

phil

  • Newbie
  • *
  • Posts: 7
  • Karma: +0/-0
Re: Foca / XBee
« Reply #7 on: May 11, 2013, 04:18:07 PM »
Ich habe nochmal im XCTU geschaut, weder als ZNET noch mit ZIGBEE Router / Coordinator habe ich im Dropdown die selbe Firmware zur Auswahl. Weder mit API noch mit AT.

Irgendwie habe ich mir das ganze etwas einfacher vorgestellt  :-\

boxtec-support

  • Moderator
  • Hero Member
  • *****
  • Posts: 787
  • Karma: +15/-0
    • Boxtec Web
Re: Foca / XBee
« Reply #8 on: May 11, 2013, 04:58:11 PM »
Stimmt natürlich, die Formulierung ist unglücklich, 1120 und 1320 passen schon zusammen.
Wie alt ist denn das X-CTU und die Firmware da drin ? Ich finde in meinem das ich gerade heruntergeladen habe diese Versionen nicht. Versuch doch sonst ev. mal eine etwas neuere Firmware auf den XBees aufzuspielen.
Ev. hilft diese Alternative zu X-CTU die Verbindung vorab zu testen:
moltosenso Network Manager™ IRON
« Last Edit: May 11, 2013, 05:03:15 PM by boxtec-support »

phil

  • Newbie
  • *
  • Posts: 7
  • Karma: +0/-0
Re: Foca / XBee
« Reply #9 on: May 11, 2013, 08:45:14 PM »
Also X-CTU ist 5.2.8.6 (Build Oct 15 2012 15:50:07) - letzthin erst runtergeladen.
Also du meinst die Firmware 1120/1320, oder? Die müsste auch aktuell sein - ich habe gestern das letzte Mal nach neuer FW suchen lassen. Es hat neue runtergeladen, aber nicht passend zu meinen Modulen.

Das moltosenso Ding probier ich mal aus - Danke für den Link!

phil

  • Newbie
  • *
  • Posts: 7
  • Karma: +0/-0
Re: Foca / XBee
« Reply #10 on: May 12, 2013, 12:13:09 AM »
Also mit dem moltosenso Dings hatte ich nicht viel erfolg - es zeigt die Devices an, immerhin, aber das ging mit XCTU auch. Vermutlich bräuchte ich eine der Bezahl-Versionen um effektiv was tun zu können.

Einen kleinen Zwischenerfolg hatte ich nun durch eine andere Technik:
Ich habe mit xbee-arduino (Java) das Receiver und Transmitter Example laufen lassen und die konnten Daten versenden / empfangen.
Die Module sind also definitiv korrekt in der Lage zu kommunizieren.

Ich werde morgen versuchen auf der einen die Java Lib laufen zu lassen und mit dem Arduino versuchen zu senden oder empfangen.

Ich melde mich zurück sobald ich mehr weiss  8)


PS: Und falls jemand sonst mal noch API Mode einschaltet (AP=1 oder 2) und dann im X-CTU "the modem configuration file was not found" erhält, dann umbedingt im Host Setup Tab "Enable API" und allenfalls Use escape characters einschalten, sonst wird das nix.

PPS: Channel (CH) braucht man nicht zu setzen, das machen die Module unter sich aus.

phil

  • Newbie
  • *
  • Posts: 7
  • Karma: +0/-0
Re: Foca / XBee
« Reply #11 on: May 12, 2013, 09:29:48 PM »
Success :)

API Mode (AP) musste ich auf 2 schalten, dann klappts. Ich konnte mit dem Arduino senden und am PC via Java Lib empfangen.


Mein F... hatte ich jetzt lange drann - ich hatte Bluescreens, hin und wieder wollte das X-CTU nichts mehr erkennen und ich habe ca. 324234 reset drücken müssen, aber nun funktionierts.

Für alle anderen die damit ihre ersten Schritte wagen, sobald das im X-CTU läuft: Nur die nötigsten Einstellungen machen, Baudrate, Pan ID etc einfach mal lassen - sind alles nur Fehlerquellen am Anfang.

Danke allen die geholfen haben :)