I am trying to send the sensor data from arduino to database using the WiFi shield and web client examples. But i failed to send any data inside database. Really needed help !
Post your program. Without that nobody can see what the problem is.
And please use the code button </>so your code looks like this
and is easy to copy to a text editor
...R
im using this codes. But then i realized every time i add another variabale inside, it will not execute the statement.
Which is this statement :
snprintf(address,sizeof(address),"GET /SIP16/Service1.asmx/InsertSensorValue?S0=%d&S1=%d&S2=%d&S3=%d HTTP/1.1",sensorValue0,sensorValue1,sensorValue2,sensorValue3);
/*
Repeating Wifi Web Client
This sketch connects to a a web server and makes a request
using an Arduino Wifi shield.
Circuit:
* WiFi shield attached to pins SPI pins and pin 7
created 23 April 2012
modified 31 May 2012
by Tom Igoe
modified 13 Jan 2014
by Federico Vanzati
http://www.arduino.cc/en/Tutorial/WifiWebClientRepeating
This code is in the public domain.
*/
#include <SPI.h>
#include <WiFi.h>
#include <String.h>
char ssid[] = "PotatoNet"; // your network SSID (name)
char pass[] = "2014vvvv"; // your network password
//int keyIndex = 0; // your network key Index number (needed only for WEP)
int sensorPinA0 = A0;
int sensorPinA1 = A1;
int sensorPinA2 = A2;
int sensorPinA3 = A3;
int sensorPinA4 = A4;
int sensorPinA5 = A5;
char address[100];
const char* host = "http://172.20.34.48";
int sensorValue0;
int sensorValue1;
int sensorValue2;
int sensorValue3;
int status = WL_IDLE_STATUS;
// Initialize the Wifi client library
WiFiClient client;
// server address:
IPAddress server(172,20,34,48);
unsigned long lastConnectionTime = 0; // last time you connected to the server, in milliseconds
const unsigned long postingInterval = 10L * 1000L; // delay between updates, in milliseconds
void setup() {
//Initialize serial and wait for port to open:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
// check for the presence of the shield:
if (WiFi.status() == WL_NO_SHIELD) {
Serial.println("WiFi shield not present");
// don't continue:
printWifiStatus();
while (true);
}
String fv = WiFi.firmwareVersion();
if (fv != "1.1.0") {
Serial.println("Please upgrade the firmware");
}
// attempt to connect to Wifi network:
while (status != WL_CONNECTED) {
Serial.print("Attempting to connect to SSID: ");
Serial.println(ssid);
// Connect to WPA/WPA2 network. Change this line if using open or WEP network:
status = WiFi.begin(ssid, pass);
// wait 10 seconds for connection:
delay(10000);
}
// you're connected now, so print out the status:
printWifiStatus();
}
void loop() {
// if there's incoming data from the net connection.
// send it out the serial port. This is for debugging
// purposes only:
while (client.available()) {
char c = client.read();
Serial.write(c);
}
// if ten seconds have passed since your last connection,
// then connect again and send data:
if (millis() - lastConnectionTime > postingInterval) {
httpRequest();
}
}
// this method makes a HTTP connection to the server:
void httpRequest() {
// close any connection before send a new request.
// This will free the socket on the WiFi shield
client.stop();
// if there's a successful connection:
if (client.connect(server, 80)) {
Serial.println("connected to server NEW");
// read the input on analog pins:
sensorValue0= analogRead(sensorPinA0);
sensorValue1 = analogRead(sensorPinA1);
sensorValue2 = analogRead(sensorPinA2);
sensorValue3= analogRead(sensorPinA3);
// print out the value you read:
Serial.print("Sensor 0 :");
Serial.print(sensorValue0);
delay(10);
Serial.print("\t Sensor 1 :");
Serial.print(sensorValue1);
delay(10); // delay in between reads for stability
Serial.print("\t Sensor 2 :");
Serial.print(sensorValue2);
delay(10);
Serial.print("\t Sensor 3 :");
Serial.println(sensorValue3);
delay(10);
/* Serial.print("\t Sensor 4:");
Serial.println(sensorValue4);
delay(10);
Serial.print("\t Sensor 5:");
Serial.println(sensorValue5);
delay(10); */
// send the HTTP PUT request:
snprintf(address,sizeof(address),"GET /SIP16/Service1.asmx/InsertSensorValue?S0=%d&S1=%d&S2=%d&S3=%d HTTP/1.1",sensorValue0,sensorValue1,sensorValue2,sensorValue3);
client.println(address);
client.println("Host: 172.20.34.48");
client.println("User-Agent: ArduinoWiFi/1.1");
client.println("Connection: close");
client.println();
Serial.println("Upload data...");
// note the time that the connection was made:
lastConnectionTime = millis();
} else {
// if you couldn't make a connection:
Serial.println("connection failed");
}
}
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");
}
Yes you'll have to add more arguments to the snprintf, that's easy enough though? Is the issue
that the server doesn't understand the longer request?
Yes. I guess the server doesn't understand longer request. What do you mean by adding more arguments to the snprintf? Im not sure how to do it.