Go Down

Topic: Arduino EthernetShield and aspx websites. (Read 1 time) previous topic - next topic

Stevenoosterbosch

Hello,

I am working on some home automation with the Arduino ethernetshield (switching a LED on and off using an aspx website to start with!).
My aspx server (DNS & Application aspx framework 4.0) is up and running and I can easy connect to it with my laptop.

Also, my arduino EShield gets an IP address and I can ping towards it and etc. And yes they are in the same local network  :).

Now I want my arduino to connect to the website or a file such as 192.168.1.3/~inetpub/reader/default.aspx.
To do so, I use the following bit of code:

  if (client.connect(serverName, 80)) {
    Serial.println("connected");
    // Make a HTTP request:
    client.println("GET /inetpub/WebApplication1/WebForm2.txt HTTP/1.0");
    client.println();

But for some reason I get an HTTP 404 error, telling me there is no such website. This I find strange because my laptop can easy access it.
Is my client.prinln("GET ....); line wrong? Because that is the path to that file.

I have included the entire code in this post in case it would help.


PS: My guess is that the project would be easier using a php website/server, but none the less it should be able to with aspx aswell.

Code: [Select]
/*
  DNS and DHCP-based Web client

This sketch connects to a website (http://www.google.com)
using an Arduino Wiznet Ethernet shield.

Circuit:
* Ethernet shield attached to pins 10, 11, 12, 13

created 18 Dec 2009
by David A. Mellis
modified 9 Apr 2012
by Tom Igoe, based on work by Adrian McEwen

*/

#include <SPI.h>
#include <Ethernet.h>

// Enter a MAC address for your controller below.
// Newer Ethernet shields have a MAC address printed on a sticker on the shield
byte mac[] = {  0x90, 0xA2, 0xDA, 0x00, 0x8A, 0x20 };
char serverName[] = "reader.stevenarne.local";

// Initialize the Ethernet client library
// with the IP address and port of the server
// that you want to connect to (port 80 is default for HTTP):
EthernetClient client;

void setup() {
// Open serial communications and wait for port to open:
  Serial.begin(9600);
   while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }


  // start the Ethernet connection:
  if (Ethernet.begin(mac) == 0) {
    Serial.println("Failed to configure Ethernet using DHCP");
    // no point in carrying on, so do nothing forevermore:
    while(true);
  }
  // give the Ethernet shield a second to initialize:
  delay(1000);
  Serial.println("connecting...");

  // if you get a connection, report back via serial:
 
  if (client.connect(serverName, 80)) {
    Serial.println("connected");
    // Make a HTTP request:
    client.println("GET /inetpub/WebApplication1/WebForm2.txt HTTP/1.0");
    client.println();
  }
  else {
    // kf you didn't get a connection to the server:
    Serial.println("connection failed");
  }
}

void loop()
{
  // if there are incoming bytes available
  // from the server, read them and print them:
  if (client.available()) {
    char c = client.read();
    Serial.print(c);
  }

  // if the server's disconnected, stop the client:
  if (!client.connected()) {
    Serial.println();
    Serial.println("disconnecting.");
    client.stop();

    // do nothing forevermore:
    while(true);
  }
}

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy