Sim 800l daten an server senden

Hallo,

ich bekomme es einfach nicht hin, dass mein sim 800l modul daten an meinen server sendet. Vor ein paar Wochen hat es schon einmal funktioniert. Die LED des sim 800l hat dabei schnell geblinkt, als das board verbunden war. Jetzt blinkt es immer in 1 sekunden abständen schnell und hört dann wieder auf, dass ganze wiederholt sich dann immer. Das ist eigentlich ein zeichen dafür, dass es sich nicht im Netz befindet.

Im Anhang befinden sich Bilder von der Ausgabe des Seriellen Monitors. Bei vielen At Befehlen kommt sogar ein ok. Bei einigen allerdings ein error. Zudem befindet sich ein Bild des php skriptes im Anhang über die Daten mittels Post Befehl in der mysql Datnebank gespeichert werden.

Den Anschluss des sim 800 l an das Arduinoboard habe ich schon mehrmal getestet. Als Serielle Schnittstelle verwende ich Pin 7 und 8 und der Sim 800l wird über eine externe Stromquelle betrieben.

Hier ist mein Code:

#include <SoftwareSerial.h>
#include <Wire.h>

SoftwareSerial mySerial(8, 7);            // RX, TX Pins
String apn = "pinternet.interkom.de";                       //APN
String apn_u = "";                     //APN-Username
String apn_p = "";                     //APN-Password
String url = "http://server.bplaced.net/datenbankeintrag.php";  //URL for HTTP-POST-REQUEST
//String url = "http://www.aeq-web.com/tests/index.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 = "2";
    data2 = "ABC";
    gsm_sendhttp(); //Start the GSM-Modul and start the transmisson
    delay(7000); //Wait one minute oder 7000

}


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);
  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());
  }

}

Das A und O...
Das ist die Stromversorgung!

Wenn dein SIM800 sich nicht im Netz anmelden kann (schnelles blinken), dann helfen dir die Informationen im seriellen Monitor erst mal nicht weiter. Diese beziehen sich ja nur auf die serielle Verbindung zwischen deinem SIM und dem Arduino.
Ohne Verbindung kommt bei vielen ein Error, so wie in deinen Aufzeichnungen.

So wie du dein Blinken beschreibst, vermute ich ein Problem mit der Spannungsversorgung des SIM.

Du musst also sehen, dass sich dein SIM sauber verbindet. Leider sind diese Dinger (Empfänger) nicht sehr empfindlich und du brauchst eine gute Feldstärke deines GSM-Senders.

Beschreibe doch mal, wie du die Spannungsversorgung des SIM realisiert hast. Ein Schaltbild wäre da optimal.