hi guys, i wanna make a simple project about arduino and web. I got stucked in sending data from web to arduino. My arduino is used for a client. In the web page, there are input form, and select form. I got stuck how to send data inside input form and select form to arduino.. Would you like to help me? Or maybe at least you can give me a data format that would be sent from web to arduino.. Thanks for your help
You can have a look at this : Arduino Playground - WebServerST
Without knowing which Arduino board and which shield you have, it is hard to answer your question.
I'm using arduino UNO and Ethernet Shield for Arduino... Need help please..
Did you try that WebServerST ?
If you open that in a browser, and view the source of that page, you can see the form that is created in the sketch.
I got stuck how to send data inside input form and select form to arduino.
The web browser is the client and the arduino is the server. Below is a simple arduino web server code that serves a page with an input text box.
//zoomkat 12-08-12
//get submit box code
//for use with IDE 1.0
//open serial monitor to see what the arduino receives
//use the \ slash to escape the " in the html or use a '
//address will look like http://192.168.1.102:84 when submitted
//for use with W5100 based ethernet shields
//note that the below bug fix may be required
// http://code.google.com/p/arduino/issues/detail?id=605
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //physical mac address
byte ip[] = { 192, 168, 1, 102 }; // ip in lan
byte gateway[] = { 192, 168, 1, 1 }; // internet access via router
byte subnet[] = { 255, 255, 255, 0 }; //subnet mask
EthernetServer server(84); //server port
String readString;
//////////////////////
void setup(){
pinMode(5, OUTPUT); //pin selected to control
//start Ethernet
Ethernet.begin(mac, ip, gateway, gateway, subnet);
server.begin();
//enable serial data print
Serial.begin(9600);
Serial.println("server text box test1"); // so I can keep track of what is loaded
}
void loop(){
// Create a client connection
EthernetClient client = server.available();
if (client) {
while (client.connected()) {
if (client.available()) {
char c = client.read();
//read char by char HTTP request
if (readString.length() < 100) {
//store characters to string
readString += c;
//Serial.print(c);
}
//if HTTP request has ended
if (c == '\n') {
///////////////
Serial.println(readString); //see what was captured
//now output HTML data header
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
client.println("<HTML>");
client.println("<HEAD>");
client.println("<TITLE>Arduino GET test page</TITLE>");
client.println("</HEAD>");
client.println("<BODY>");
client.println("<H1>HTML form GET example</H1>");
client.println("<FORM ACTION='/' method=get >"); //uses IP/port of web page
client.println("Pin 5 'on5' or 'off5': <INPUT TYPE=TEXT NAME='LED' VALUE='' SIZE='25' MAXLENGTH='50'>
");
client.println("<INPUT TYPE=SUBMIT NAME='submit' VALUE='Change Pin 5!'>");
client.println("</FORM>");
client.println("
");
client.println("</BODY>");
client.println("</HTML>");
delay(1);
//stopping client
client.stop();
/////////////////////
if(readString.indexOf("on5") >0)//checks for on
{
digitalWrite(5, HIGH); // set pin 5 high
Serial.println("Led On");
}
if(readString.indexOf("off5") >0)//checks for off
{
digitalWrite(5, LOW); // set pin 5 low
Serial.println("Led Off");
}
//clearing string for next read
readString="";
}
}
}
}
}
Thanks for replying guys...
To zoomkat, is it possible to make the arduino as client and web browser as server? I'm going to make web browser can send data to arduino and arduino can send data to web browser.
paulusalexander:
Thanks for replying guys...
To zoomkat, is it possible to make the arduino as client and web browser as server? I'm going to make web browser can send data to arduino and arduino can send data to web browser.
No. You can make the PC a server with server software like Apache.