Forum: Mikrocontroller und Digitale Elektronik Arduino GSM 1400 Probleme


von Paddy (Gast)


Lesenswert?

Moin Moin,

ich habe mir vor kurzem ein Arduino GSM 1400 direkt bei Arduino.cc 
bestellt.
Nun habe ich diverse Probleme mit dem Teil.
Das versenden von SMS Nachrichten funktioniert ab und zu aber leider 
nicht immer. Ich habe wie auf der Arduino Homepage beschreiben eine LiPo 
Zelle an dem Board angeschlossen um eine saubere Spannungsversorgung zu 
gewährleisten! OHNE diesen Akku geht gar nichts! Nun kommt das nächste 
die GSM Verbindung wird nur aufgebaut wenn auch ein PC per USB 
angeschlossen ist.
Auch wenn ich die Serielle Verbindung komplett raus nehme ändert sich 
nichts. Ein externes Versorgen über ein 5V Steckdosen Netzteil hat 
leider auch keine Besserung gebracht!
Hat jemand ggf. Tipps für mich wie ich das Board richtig anschließe und 
auf was ich zu achten habe? So wie es aussieht hängt er im 
"gsmAccess.begin" fest.

Hier anbei mein Testcode:
1
// Include the GSM library
2
#include <MKRGSM.h>
3
4
// initialize the library instance
5
GSM     gsmAccess;
6
GSM_SMS sms;
7
8
#define Sensor1Pin 7
9
10
void setup() {
11
12
  pinMode(Sensor1Pin, INPUT_PULLUP);
13
  pinMode(LED_BUILTIN, OUTPUT);
14
15
  Serial.begin(57600);
16
17
  delay (5000);
18
19
  Serial.println("Go");
20
21
  boolean connected = false;
22
23
  while (!connected)
24
  {
25
    if (gsmAccess.begin("SIMPIN") == GSM_READY)
26
    {
27
      connected = true;
28
      Serial.println("GSM Verbunden");
29
    }
30
    else
31
    {
32
      Serial.println("Error");
33
    }
34
    delay(1000);
35
  }
36
  digitalWrite(LED_BUILTIN, HIGH);
37
}
38
39
40
void loop()
41
{
42
  if (!digitalRead(Sensor1Pin))
43
  {
44
    digitalWrite(LED_BUILTIN, LOW);
45
46
    char remoteNum[20] = {"+491515223xxxx"}; // telephone number to send sms
47
    char txtMsg[200]   = {"Nachricht!!)"};
48
49
    sms.beginSMS(remoteNum);
50
    sms.print(txtMsg);
51
    sms.endSMS();
52
    sms.flush();
53
54
    digitalWrite(LED_BUILTIN, HIGH);
55
    delay(500);
56
    digitalWrite(LED_BUILTIN, LOW);
57
    delay(500);
58
    digitalWrite(LED_BUILTIN, HIGH);
59
  }
60
}

von Rainer S. (enevile) Benutzerseite


Lesenswert?

Antenne angeschlossen?
Spannung vom Akku gemessen?
Am Besten noch deine Schaltung posten

: Bearbeitet durch User
von Paddy (Gast)


Angehängte Dateien:

Lesenswert?

Moin nochmal,

also ich habe nun getüftelt und getüftelt und folgenden festgestellt.

Wenn ich den AT-Command: "AT+CSQ" an das Modem sende bekomme ich fast 
immer als Antwort 99,99. Dies bedeutet das das Modem kein Empfang hat!

Okay das würde erklären warum ab und an das SMS Senden nicht klappt.

Nun ist es aber so das ich den ganzen Ablauf noch nicht komplett 
verstanden habe.

Ich habe jetzt selber eine kleine Bobliothek geschrieben in der ich als 
erstes das Modem starte dann die SIM- Pin eingebe und dann den Empfang 
prüfe!

Siehe Code:
1
// #################
2
// # Modem Starten #
3
// #################
4
int ModemBegin()
5
{
6
  if (!MODEM.begin()) {
7
    return 0;
8
  }
9
  return 1;
10
}
11
12
// ####################################
13
// # PIN Abfrage (9.1 Enter PIN +CPIN)#
14
// ####################################
15
int SimPinRequest()
16
{
17
  String response;
18
  while (response == "")
19
  {
20
    MODEM.send("AT+CPIN?");
21
    MODEM.waitForResponse(1000, &response);
22
    delay(500);
23
  }
24
25
  if (response.endsWith("READY"))
26
  {
27
    Serial.println("Keine Pin nötig!");
28
  }
29
  else if (response.endsWith("SIM PIN"))
30
  {
31
    Serial.println("SIM PIN wird benötigt!");
32
  }
33
  else if (response.endsWith("SIM PUK"))
34
  {
35
    Serial.println("SIM PUK wird benötigt! Bitte Handy nutzen!");
36
  }
37
  else if (response.endsWith("SIM PIN2"))
38
  {
39
    Serial.println("SIM PIN2 wird benötigt!");
40
  }
41
  else if (response.endsWith("SIM PUK2"))
42
  {
43
    Serial.println("SIM PUK2 wird benötigt! Bitte Handy nutzen!");
44
  }
45
  else
46
  {
47
    Serial.println("Ein unbekannter Fehler ist aufgetreten! (SIM PIN)");
48
  }
49
}
50
51
// #####################
52
// #Pin Eingabe        #
53
// #####################
54
int EnterPin(String pin)
55
{
56
  int response = -2;
57
  while (response == -2)
58
  {
59
    MODEM.sendf("AT+CPIN=\"%s\"", pin.c_str());
60
    response = MODEM.waitForResponse(1000);
61
  }
62
63
  if (response == OK)
64
  {
65
    Serial.println("Die SIM PIN ist OK!");
66
  }
67
  else
68
  {
69
    Serial.println("Die SIM PIN ist falsch!");
70
  }
71
  return response;
72
}
73
74
// #######################
75
// # Empfang checken...  #
76
// #######################
77
int CheckSignal()
78
{
79
  int counter = 0;
80
  String response;
81
  while (counter < 10000)
82
  {
83
    MODEM.send("AT+CSQ");
84
    MODEM.waitForResponse(100, &response);
85
    delay(10);
86
    if (!response.startsWith("+CSQ: 99,99")) break;
87
    counter++;
88
  }
89
90
  Serial.println(response);
91
92
  if (!response.startsWith("+CSQ: 99,99"))
93
  {
94
    Serial.println("Signal OK!");
95
  }
96
  else
97
  {
98
    Serial.println("Signal Fehler!");
99
  }
100
}

Die Antwort vom Modem sieht dann wie folgt aus:

AT+CSQ
+CSQ: 13,99
OK

Bedeutet  also das die Connection "OK" ist wenn ich das Datenblatt 
richtig deute.

Wenn ich jetzt aber als nächsten Schritt gucken will ob das Modem im 
Netz registriert ist mit dem AT-Command: "AT+CREG?" bekomme ich immer 
folgende Antwort:

AT+CREG?
+CREG: 0,0
OK

und das bedeutet das er nicht im Netz registriert ist und nicht sucht 
richtig?

Außerdem hängt der Arduino gerne mal auf wenn er den Signalstatus 
abfragt...

Hat eventuell nochjemand solche Probleme mit dem Teil? Ich finde für 
knapp 80€ dürfte ich erwarten das der Kram funktioniert oder sehe ich da 
was falsch? -.-

Der Aufbau ist nichts besonderes daher denke ich sollte das so schon 
okay sein. Die LiPo Zelle ist voll geladen (gemessen ca. 4,2V) und lasst 
euch nicht von den Aderfarben iritieren ich hatte keinen anderen Stecker 
zur Verfügung.

Ich bin Euch für jede Hilfe dankbar!
Gruß Paddy :)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.