Arduino Forum

Products => Arduino GSM Shield => Topic started by: ahmed_sayed on Nov 23, 2017, 07:17 am

Title: how to send data from GPRS Module to php Script !?
Post by: ahmed_sayed on Nov 23, 2017, 07:17 am
Hello ...
I am a beginner in arduino Develop .. this my first project
i need to send some data from adruino sensor to my server (php script) throw GPRS
i'm using SIM808 GSM GPRS GPS
i try many codes but The moisture values are shown on the serial monitor but still not in the php script. in all of these codes
any one can help me !!
this my code for arduino
Code: [Select]
#include <SoftwareSerial.h>
#include <Wire.h>

SoftwareSerial mySerial(2, 3);            // RX, TX Pins
String apn = "Vodafone";                       //APN
String apn_u = "Internet";                     //APN-Username
String apn_p = "Internet";                     //APN-Password
String url = "http://abozezo959.000webhostapp.com/index1.php";  //URL for HTTP-POST-REQUEST
String data1;   //String for the first Paramter (e.g. Sensor1)
String data2;   //String for the second Paramter (e.g. Sensor2)



void setup() {
  // Open serial communications and wait for port to open:
  Serial.begin(9600);
  // set the data rate for the SoftwareSerial port
  mySerial.begin(9600);
  delay(10000);
}

void loop() { // run over and over

 
    data1 = "123";
    data2 = "ABC";
    gsm_sendhttp(); //Start the GSM-Modul and start the transmisson
    delay(60000); //Wait one minute

}


void gsm_sendhttp() {
 
 
 
  mySerial.println("AT");
  runsl();//Print GSM Status an the Serial Output;
  delay(4000);
  mySerial.println("AT+SAPBR=3,1,Contype,GPRS");
  runsl();
  delay(100);
  mySerial.println("AT+SAPBR=3,1,APN," + apn);
  runsl();
  delay(100);
  mySerial.println("AT+SAPBR=3,1,USER," + apn_u); //Comment out, if you need username
  runsl();
  delay(100);
  mySerial.println("AT+SAPBR=3,1,PWD," + apn_p); //Comment out, if you need password
  runsl();
  delay(100);
  mySerial.println("AT+SAPBR =1,1");
  runsl();
  delay(100);
  mySerial.println("AT+SAPBR=2,1");
  runsl();
  delay(2000);
  mySerial.println("AT+HTTPINIT");
  runsl();
  delay(100);
  mySerial.println("AT+HTTPPARA=CID,1");
  runsl();
  delay(100);
  mySerial.println("AT+HTTPPARA=URL," + url);
  runsl();
  delay(100);
  mySerial.println("AT+HTTPPARA=CONTENT,application/x-www-form-urlencoded");
  runsl();
  delay(100);
  mySerial.println("AT+HTTPDATA=192,10000");
  runsl();
  delay(100);
  mySerial.println("params=" + data1 + "~" + data2);
  runsl();
  delay(10000);
  mySerial.println("AT+HTTPACTION=1");
  runsl();
  delay(5000);
  mySerial.println("AT+HTTPREAD");
  runsl();
  delay(100);
  mySerial.println("AT+HTTPTERM");
  runsl();
}

//Print GSM Status
void runsl() {
  while (mySerial.available()) {
    Serial.write(mySerial.read());
  }

}

and this my code for php
Code: [Select]
<?php
$timestamp 
date("d-m-Y - H:i:s");
$datastring $_POST["params"];
$myfile fopen("newfile.txt""w") or die("Unable to open file!");
$txt $timestamp " - ".$datastring."\n";
fwrite($myfile$txt);
fclose($myfile);
echo 
$txt;
?>
Title: Re: how to send data from GPRS Module to php Script !?
Post by: dannable on Nov 23, 2017, 08:44 am
What output are you seeing on the screen?

My first thought is that the function runsl() may be returning prematurely. You send a command, then immediately record the response. It can take several seconds for the response to arrive, by which time you will have sent several more commands. A more elegant way would be to wait until you get a response, then keep reading until you are sure there are no more characters to come.
Title: Re: how to send data from GPRS Module to php Script !?
Post by: ahmed_sayed on Nov 23, 2017, 11:18 am
this is the output Monitor ...
Title: Re: how to send data from GPRS Module to php Script !?
Post by: SawunyamaB on Mar 04, 2019, 01:36 pm
did you finally get the thing to work.
if so can you assist me because iam trying a similar project except i want to send rfid to php script to update my database

regards