Hy all!
I have a big problem, i would like upload 3 sensor datas to google form at pushingbox.
I was configured a pushingbox and the google form succesfull.
if i send a sensors datas at my browser it's work fine.
http://api.pushingbox.com/pushingbox?devid=v3094B979C1ECCD1&strm=22.8&strt=28.3&stru=6.3
With this data works fine.
I probaly send this link to my arduino i receive error from the server.
The problem is in my arduino code is but i don't know where
I use Sim800 module and Atmega644p.
Here is my code:
#include <SoftwareSerial.h>
#include <String.h>
SoftwareSerial mySerial(14, 13);
#define modem 4
#define led 23
void setup() {
mySerial.begin(9600); /* Define baud rate for software serial communication */
Serial.begin(9600); /* Define baud rate for serial communication */
pinMode(modem, OUTPUT);
pinMode(led, OUTPUT);
}
void loop() {
GsmStart();
SendData();
}
void GsmStart()
{
digitalWrite(modem,HIGH);
mySerial.println("Gsm Modul On!");
mySerial.println("Search Network...");
delay(30000);
}
void SendData()
{
Serial.println("AT");
delay(1000);
Serial.println("AT+CPIN?");
delay(1000);
Serial.println("AT+CREG?");
delay(1000);
Serial.println("AT+CGATT?");
delay(1000);
Serial.println("AT+CIPSHUT");
delay(1000);
Serial.println("AT+CIPSTATUS");
delay(2000);
Serial.println("AT+CIPMUX=0");
delay(2000);
ShowSerialData();
Serial.println("AT+CSTT=\"internet\"");//start task and setting the APN,
delay(1000);
ShowSerialData();
Serial.println("AT+CIICR");//bring up wireless connection
delay(3000);
ShowSerialData();
Serial.println("AT+CIFSR");//get local IP adress
delay(2000);
ShowSerialData();
Serial.println("AT+CIPSPRT=0");
delay(3000);
ShowSerialData();
Serial.println("AT+CIPSTART=\"TCP\",\"api.pushingbox.com\",\"80\"");//start up the connection
delay(6000);
Serial.println("AT+CIPSEND");//begin send data to remote server
delay(4000);
ShowSerialData();
Serial.print("GET /pushingbox?devid=v3094B979C1ECCD1");
Serial.print("&strm=");
Serial.print("23.4");
delay(200);
Serial.print("&strt=");
Serial.print("28.7");
delay(200);
Serial.print("&stru=");
Serial.print("6.4");
delay(200);
Serial.println(" HTTP/1.1");
Serial.print("Host: ");
Serial.println("api.pushingbox.com");
delay(200);
Serial.println();
delay(3000);
ShowSerialData();
delay(10000);//waitting for reply, important! the time is base on the condition of internet
Serial.println();
ShowSerialData();
Serial.println("AT+CIPSHUT");//close the connection
delay(2000);
ShowSerialData();
delay(5000);
digitalWrite(modem,LOW);
}
void ShowSerialData()
{
while(Serial.available()!=0) /* If data is available on serial port */
mySerial.write(char (Serial.read())); /* Print character received on to the serial monitor */
}
Can you help me?