Go Down

Topic: SIM900 und AT (Read 742 times) previous topic - next topic

SkobyMobil

Hallo,
ich habe hier ein SIM900-Board (+, GND, Rx, Tx)

Wenn ich diesen Code...
Code: [Select]
void setup()
{
  Serial2.begin(19200);
  Serial2.print("\r");
  delay(1000);
  Serial2.print("AT+CMGF=1\r");    //SMS in TextMode
  delay(1000);
  Serial2.print("AT+CSCA=\"+494711\"\r");  //SMS-Center
  delay(1000);
  Serial2.print("AT+CMGS=\"01754712\"\r");    // Empfänger
  delay(1000);
  Serial2.println("Zeile A\r");   // Text
  Serial2.print("Zeile B\r");
  delay(1000);
  Serial2.print(26, byte()); // Ctrl+Z
}

void loop()
{

}


...nutze, dann wird die SMS ohne Probleme versendet.

Wenn ich dem Board aber ein "AT" sende, dann reagiert es überhaupt nicht.
Egal, ob das "AT" vom Arduino kommt, oder von einem TerminalProgramm.
Was für einen Spruch muss ich denn aufsagen, damit sich das rührt?
Oder übersehe ich hier etwas?
Gruß und Dank
Andreas

Board

mit Datenblätter

WiKi dazu
die zweite Maus bekommt den Speck...

Scherheinz

Hast du den folgenden Satz gelesen?

Quote
If you want to see messages from the shield in the serial monitor such as, you need disable auto-bauding mode, using "AT+IPR=19200" . (Factory setting is AT+IPR=0 auto-bauding)
Außerdem schickst du im Sketch immer noch ein "Serial2.print("\r");" hinterher.

Gruß Scherheinz
Hier könnte ihre Werbung stehen

SkobyMobil

Hallo,
mit dem Sketch wollte ich nur demonstrieren, das das Ding AT-Kommandos verarbeitet.
Tippe ich aber ein "AT" übers TerminalProgramm ein, dann rührt sich nichts.
Auch nicht, wenn das "AT" vom Arduino kommt.
Gruß und Dank
Andreas
die zweite Maus bekommt den Speck...

HotSystems

Was erwartest du denn nach einem AT ?
Ich sehe keine Abfrage der Seriellen nachdem du etwas rausschickst.
Du musst schon dein GSM900 auch abfragen und das an den seriellen Monitor schicken.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

SkobyMobil

#4
Oct 12, 2019, 09:03 pm Last Edit: Oct 12, 2019, 09:04 pm by SkobyMobil
Hallo,
ich kenne es so, wenn man einem Modem ein AT sendet, dann bekommt man in der Regel ein OK zurück.
Das hat hier weder mit dem Arduino, noch mit einem T-Programm funktioniert.

Nachdem ich mir aber das Datenblatt zur Brust geführt habe ist der Fehler bekannt geworden.
Beim anlegen der Versorgungsspannung reagiert das Ding anders als nicht im Netz beschrieben.
Jetzt läuft es ohne Probleme- ohne Lib! So wie es aussieht, ist es ziemlich leistungsfähig.
Gruß und Dank
Andreas



Datenblatt PDF kommt hoch
die zweite Maus bekommt den Speck...

HotSystems

Hallo,
ich kenne es so, wenn man einem Modem ein AT sendet, dann bekommt man in der Regel ein OK zurück.
Das hat hier weder mit dem Arduino, noch mit einem T-Programm funktioniert.
Na klar, wenn man das Modem auch am seriellen Monitor abfragt, sollte das so sein.
Nur in deinem Sketch sehe ich nichts davon, wie soll das dann funktionieren ?
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

SkobyMobil

Hallo,
der Sketch ist ein C&P aus dem Netz. Nur zum probieren.
Der läuft einfach durch und sendet den Text als SMS.
Da gibt es ja AT das funktioniert.
Gruß und Spaß
Andreas
die zweite Maus bekommt den Speck...

HotSystems

Offensichtlich verstehst du es immer noch nicht.

Wenn du AT an das Sim900 sendest, musst du auch das Sim abfragen was dein Sim darauf zu antworten hat.
Erst danach kann der serielle Monitor dir etwas anzeigen.

In deinem Demo-Sketch fehlt diese Abfrage.
Wie du es in deinem nicht funktionieren Sketch gemacht hast, kann ich nicht erkennen, da dieser geheim ist.

Das Sim wird schon darauf reagieren, nur siehst du es nicht, wenn du keine Abfrage darauf machst.
Einfach nur AT senden reicht eben nicht aus.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

SkobyMobil

Hallo,
der Sketch macht mir nicht so die Sorgen.
Wenn Das Ding über USB<->SeriellAdapter am Terminal hängt, dann hat man das gleiche Problem.
Es wird ein einfaches AT gesendet, aber ein OK kommt nicht zurück.

Wenn man das Ding mit Spannung versorgt, dann sollte es antworten. Macht es aber nicht.
Entweder habe ich hier ein Treiber- oder ein USB<->SeriellAdapter Problem. Es ist auch möglich,
das mein neues BetriebsSystem (Win10 Enterprise 2016 LTSB) den aussperrt. Da bin ich aber noch
nicht hinter.
Mich wundert es nur, das dieser einfache SMS-SendSketch ohne Probleme zu jeder Zeit läuft.
Also scheint es so zu sein, das das Modem i. O. ist.
Ich werde mir mal einen neuen USB<->TTL-SeriellAdapter besorgen. Dem alten mit seinem Treibern
traue ich nicht so richtig mehr über den Weg.
Gruß und Spaß
Andreas
die zweite Maus bekommt den Speck...

SkobyMobil

#9
Oct 14, 2019, 05:25 pm Last Edit: Oct 14, 2019, 05:26 pm by SkobyMobil
Hallo,
da kann ich ja die kalte Wut bekommen.
Mein USB<->SeriellAdapter funktioniert mit jeder seriellen Krücke-
nur nicht mit dem Modem. Ist gut möglich, das der mit seinen Treibern
nicht unter meinem OS arbeitet. Weiß der Teufel.

Nun habe ich einen Uno als USB<->SeriellAdapter vergewaltigt,
Code: [Select]
#include <SoftwareSerial.h>

String Arduino, GSMO;
SoftwareSerial SIM(10, 11); // RX, TX

void setup()
{
  Serial.begin(19200);
  Serial.println("Test SIM900");
  SIM.begin(19200);
}

void loop()
{
  if (SIM.available())
  {
    GSMO = SIM.readString();
    Serial.println(GSMO);
  }

  if (Serial.available())
  {
    Arduino = Serial.readString();
    SIM.println(Arduino);
  }
}

und...
läuft alles wie die wilde Wutz. Keine Probleme. Das Modem wird bei
Spannung anlegen, so wie im Betrieb sofort erkannt und funktioniert
ohne Probleme. Der Drops ist gelutscht.
Gruß und Dank
Andreas

die zweite Maus bekommt den Speck...

HotSystems

Ehrlich, du tust mir leid.....du liest scheinbar nicht, was man dir schreibt.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

SkobyMobil

Hallo,
"du liest scheinbar nicht, was man dir schreibt"
Was hast Du denn zu TerminalProgramm und USB/SeriellAdapter beigetragen?
Gruß und Dank
Andreas
die zweite Maus bekommt den Speck...

HotSystems

Ich habe dir geschrieben, was dein Sketch können muss.
Welche Hardware du verwendest, wollte ich dir nicht vorschreiben, das möchte ich dir überlassen.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

SkobyMobil

Grüße Dich,
versuche mir doch einmal zu erklären, was hier, warum nicht rund läuft.

Code: [Select]

const int GSMR = 3; // Relais GSM-SIM900
const int GSMP = 4; // Power für Start GSM-SIM900
String Arduino, GSMO;


void setup()
{
  Serial.begin(19200);
 Serial2.begin(19200);

   pinMode(GSMR, OUTPUT); // Relais GSM-SIM900
  digitalWrite(GSMR, HIGH);
  pinMode(GSMP, OUTPUT); // Power für Start GSM-SIM900
  delay(5000);
  digitalWrite(GSMP, HIGH);
  delay(2000);
 digitalWrite(GSMP, LOW);
}

void loop()
{
  if (Serial2.available())
  {
    GSMO = Serial2.readString();
    Serial.println(GSMO);
  }

  if (Serial.available())
  {
    Arduino = Serial.readString();
    Serial2.println(Arduino);
  }
}



Wenn ich hier im S-Monitor AT sende, dann sollte ein OK zurückkommen.
Kommt aber nicht.

Was ist hier denn so falsch?
Gruß und Dank
Andreas
die zweite Maus bekommt den Speck...

HotSystems

Was genau soll der Ausgang GSMR machen ?
Den verwendest du aktuell nicht.
Evtl. ist das dein Fehler.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

Go Up