Go Down

Topic: wireless proto shield. Digi XBEE WIFI - connection issues (Read 4169 times) previous topic - next topic

caniff01

help! :smiley-roll-sweat:

Arduino UNO R3
Arduino Wireless Proto Shield
XBEE S6  Wifi module.

I have programmed the DIGI xbee WIFI module and inserted it into the proto shield.  I have also copied the sample code from the arduino.cc website in regards to the WIFI wireless server.  I can ping the xbee however when I go to the "http://ipaddress/"  it tells me that the website is not found.  I tried "http://ipaddress:80" and also "http://ipaddress:2616"  which appear as dest port and source port in the x-ctu programmer for the xbee.  Has anyone else had success with the DIGI XBEE wifi?  I have been struggling with this for a couple of weeks and haven't been able to figure it out.

I have talked to DIGI tech support and they said that I needed a capacitor between VCC and ground of 470uf or greater because of a microsecond power drop.  (which I have placed on the protoshield.)  I have also  purchased their "development kit" that include the XBIB-U-CAP.  while this helped me to program the XBEE Wifi I want to use the UNO as my development hardware.  But I am stuck at this point.  Any assistance would be helpful.  Thanks.

PaulS

Some links to the hardware in question would be a good thing.

caniff01

Here are the links to the products used.

XBEE wifi and development kit   http://www.digi.com/products/wireless-wired-embedded-solutions/zigbee-rf-modules/point-multipoint-rfmodules/xbee-wi-fi#overview

arduino Wireless Proto Shield  http://arduino.cc/en/Main/ArduinoWirelessProtoShield

Arduino UNO Rev 3.   http://arduino.cc/en/Main/ArduinoBoardUno

Laptop with windows XP sp3.

hope this helps.



caniff01

Yes.  I have read it.  However, the goal is to use 1 XBEE and Arduino as a web server to serve and interface with a relay board and I do not want to interface with a computer. The manual only is for interfacing between the two XBEE's and is very basic to have them communicate with each other as a Adhoc network (or point to point.)

So for simplicity.  I used the Arduino sketch on their page. http://arduino.cc/en/Tutorial/WiFiWebServer  to serve a simple web page to verify that it is working.  However It doesn't appear to be.   I have changed the code below to include my SSID and password.
there must be something else simple that I am haven't wrapped my mind around yet.  So any assistance would be great.


/*
  Web  Server

A simple web server that shows the value of the analog input pins.
using a WiFi shield.

This example is written for a network using WPA encryption. For
WEP or WPA, change the Wifi.begin() call accordingly.

Circuit:
* WiFi shield attached
* Analog inputs attached to pins A0 through A5 (optional)

created 13 July 2010
by dlf (Metodo2 srl)
modified 23 Apr 2012
by Tom Igoe
*/
#include <SPI.h>
#include <WiFi.h>


char ssid[] = "yourNetwork";      //  your network SSID (name) <--  I HAVE MY NETWORK IN HERE
char pass[] = "secretPassword";   // your network password <-- I HAVE MY PASSWORD IN HERE
int keyIndex = 0;                 // your network key Index number (needed only for WEP)

int status = WL_IDLE_STATUS;

WiFiServer server(80);

void setup() {
  // start serial port:
  Serial.begin(9600);

  // attempt to connect to Wifi network:
  while ( status != WL_CONNECTED) {
    Serial.print("Attempting to connect to SSID: ");
    Serial.println(ssid);
    status = WiFi.begin(ssid, pass);
    // wait 10 seconds for connection:
    delay(10000);
  }
  server.begin();
  // you're connected now, so print out the status:
  printWifiStatus();
}


void loop() {
  // listen for incoming clients
  WiFiClient client = server.available();
  if (client) {
    Serial.println("new client");
    // an http request ends with a blank line
    boolean currentLineIsBlank = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        Serial.write(c);
        // if you've gotten to the end of the line (received a newline
        // character) and the line is blank, the http request has ended,
        // so you can send a reply
        if (c == '\n' && currentLineIsBlank) {
          // send a standard http response header
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println("Connnection: close");
          client.println();
          client.println("<!DOCTYPE HTML>");
          client.println("<html>");
          // add a meta refresh tag, so the browser pulls again every 5 seconds:
          client.println("<meta http-equiv=\"refresh\" content=\"5\">");
          // output the value of each analog input pin
          for (int analogChannel = 0; analogChannel < 6; analogChannel++) {
            int sensorReading = analogRead(analogChannel);
            client.print("analog input ");
            client.print(analogChannel);
            client.print(" is ");
            client.print(sensorReading);
            client.println("<br />");       
          }
          client.println("</html>");
           break;
        }
        if (c == '\n') {
          // you're starting a new line
          currentLineIsBlank = true;
        }
        else if (c != '\r') {
          // you've gotten a character on the current line
          currentLineIsBlank = false;
        }
      }
    }
    // give the web browser time to receive the data
    delay(1);
      // close the connection:
      client.stop();
      Serial.println("client disonnected");
  }
}


void printWifiStatus() {
  // print the SSID of the network you're attached to:
  Serial.print("SSID: ");
  Serial.println(WiFi.SSID());

  // print your WiFi shield's IP address:
  IPAddress ip = WiFi.localIP();
  Serial.print("IP Address: ");
  Serial.println(ip);

  // print the received signal strength:
  long rssi = WiFi.RSSI();
  Serial.print("signal strength (RSSI):");
  Serial.print(rssi);
  Serial.println(" dBm");
}

PaulS

Quote
The manual only is for interfacing between the two XBEE's and is very basic to have them communicate with each other as a Adhoc network (or point to point.)

I don't know what manual you are talking about. The one I linked is clearly for the WiFi XBee and includes things you need to do to your wireless router in order for the WiFi XBee to connect to it.

caniff01

I have setup my module to attach to my Router by doing the instructions. However, It specifically addresses setting the 2 modules to communicate with each other on the DIGI XBIB-U-CAP Development boards Page 14 - 17 by giving the module IP addresses in each window (page 16).  This is great if you are doing a mesh point to point.  However, I want to use one module with a micro controller (Arduino UNO.)  which the manual does not address.  So I have programmed the wifi module as suggested in the manual except for setting the module destination ip.

Once I plug it into the Arduino wireless Proto shield I have the switch set to micro so that it communicates with the server program that has been uploaded into the UNO.  Next I power it on.  If I do a ping from any of my local computers It will ping correctly.  If I try to access the webpage that the server program creates then it gives me a page not found message. 

Thanks for Asking the questions i appreciate it!  Hopefully it will trigger something that will get me see what I am missing....

PaulS

Quote
If I try to access the webpage that the server program creates then it gives me a page not found message. 

What do you see on the serial monitor as you do this? What are you typing in a browser to try to access the web page?

caniff01

Interesting....  the web site in the browser says, "Internet Explorer can not display web page" and If I pull up the serial monitor in arduino program it says that the WIFI shield cannot be found...hmmm...

why would it not find the shield?

PaulS

Quote
why would it not find the shield?

You'll need to look at the library source code to answer that question.

It might be easier to help you if you'd actually post the output you get. Your choice.


Qiller

It looks like you are using the official WiFi Shield library, I don't think it's compatible with Xbee's WiFi.

You could try something like https://github.com/Akira-Hayasaka/XBeeWiFi_Arduino (a port of mbed library), but I have not tried it (just using my own implementation). You'd need to switch xbee into API mode for this to work.

headfull

#11
Feb 08, 2013, 03:00 am Last Edit: Feb 08, 2013, 03:02 am by headfull Reason: 1
Did you ever get your xbee wifi working as a web client / server? I'm trying to do the same thing, but not had any success yet.

caniff01

No, I haven't gotten it to work yet.  However, I have been so busy since the last time I posted I haven't even had much time to look at it.  I may look at using my Raspberry pi to do what I was hoping to do with my arduino.  Life sometimes gets in the way with doing the fun things.....

Go Up