Probleme beim Web-Zugriff mit SIM7600

Hallo zusammen,

ich habe ein Waveshare SIM7600E-H Shield am Arduino Due "laufen", habe aber Probleme Daten auf einen Webserver zu schicken bzw. erst einmal irgendeine Verbindung zum Web herzustellen.
SMS-Versand und Anrufen funktioniert problemlos. Zum testen der Verbindung habe ich ein Code aus dem Netz mit der Tiny-GSM Library leicht umgeschrieben.

#define TINY_GSM_MODEM_SIM7600
#define SerialMon Serial
//HardwareSerial Serial1(1);

#if !defined(TINY_GSM_RX_BUFFER)
#define TINY_GSM_RX_BUFFER 650
#endif
#define TINY_GSM_YIELD() { delay(2); }
const char apn[]  = "internet.telekom"; // Change this to your Provider details
const char gprsUser[] = "congstar";
const char gprsPass[] = "cs";
const char server[] = "ptsv2.com"; // Change this to your selection
const char resource[] = "/t/51f7c-1630711879/post";
const int  port = 443;
unsigned long timeout;

const int trigPin = 25;  
const int echoPin = 26; 
long duration;
int distance;

#include <TinyGsmClient.h>
TinyGsm modem(Serial1);
TinyGsmClient client(modem);

void setup() {
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  
  SerialMon.begin(115200);
  delay(10);
  SerialMon.println("Wait...");
  Serial1.begin(9600);
  delay(600);
  SerialMon.println("Initializing modem...");
}

void loop() {
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = duration * 0.034 / 2;

  modem.restart();
  SerialMon.print("Waiting for network...");
  if (!modem.waitForNetwork()) {
    SerialMon.println(" fail");
    delay(1000);
    return;
  }
  SerialMon.println(" success");
  if (modem.isNetworkConnected()) {
    SerialMon.println("Network connected");
  }

  SerialMon.print(F("Connecting to "));
  SerialMon.print(apn);
  if (!modem.gprsConnect(apn, gprsUser, gprsPass)) {
    SerialMon.println(" fail");
    delay(1000);
    return;
  }
  SerialMon.println(" success");

  if (modem.isGprsConnected()) {
    SerialMon.println("GPRS connected");
  }

  if (!client.connect(server, port)) {
    SerialMon.println(" fail");
  }
  SerialMon.println("Performing HTTP POST request...");
  String httpRequestData = "key=a@4K%3&distance="+ String(distance) +"";
  client.print(String("POST ") + resource + " HTTP/1.1\r\n");
  client.print(String("Host: ") + server + "\r\n");
  client.println("Connection: close");
  client.println("Content-Type: application/x-www-form-urlencoded");
  client.print("Content-Length: ");
  client.println(httpRequestData.length());
  client.println();
  client.println(httpRequestData);
  timeout = millis();
  while (client.connected() && millis() - timeout < 10000L) {
    while (client.available()) {
      char c = client.read();
      SerialMon.print(c);
      timeout = millis();
    }
  }
  SerialMon.println();
  client.stop();
  SerialMon.println(F("Server disconnected"));
  modem.gprsDisconnect();
  SerialMon.println(F("GPRS disconnected"));
}

Im Serial Monitor kommt folgendes als Antworten:

01:35:26.814 -> Wait...
01:35:27.425 -> Initializing modem...
01:36:34.535 -> Waiting for network... success
01:36:35.936 -> Network connected
01:36:35.936 -> Connecting to internet.telekom success
01:36:36.916 -> GPRS connected
01:37:29.290 ->  fail
01:37:29.290 -> Performing HTTP POST request...
01:37:30.734 -> 
01:37:30.874 -> Server disconnected
01:37:30.921 -> GPRS disconnected

Wenn ich das richtig verstehe läuft alles ohne Probleme - bis der connect Befehl die fail Rückmeldung gibt.
Wo könnte der Fehler liegen?
Habe auch schon verschiedene SIM-Karten getestet - ohne, dass sich etwas geändert hat.

Bin für alle Ideen dankbar.

Grüße
Julius

Hallo Julius,

hast du schon eine Lösung für dein Problem gefunden? Ich habe exakt das gleich Problem.

Grüße,
Gabriel

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.