SIM900 Verbindungsprobleme nach Library Test (Nur ⸮⸮⸮⸮⸮⸮)

Also, ich habe dieses SIM900 erworben. https://www.amazon.de/AZDelivery-Shield-Arduino-GRATIS-eBook/dp/B01M9J4N56/ref=sr_1_2?ie=UTF8&qid=1504535446&sr=8-2&keywords=sim900

Da der Hersteller eigentlich Anfangs ein eBook liefern wollte , dies aber erst auf Nachfrage getan hat, habe ich mich am Anfang selbst versucht da ich schon Probleme / Erfahrungen mit anderen GSM-Modulen gesammelt habe. Anfangs habe ich eine funktionierende Lösung gefunden indem ich das Board wie folgt verkabelt habe : Imgur: The magic of the Internet . Mit der konstellation konnte ich das Board über AT Commands auf 19200 Baud ansprechen. Diese Lösung fand ich zu dem Zeitpunkt gut da die AT Commands perfekt funktioniert haben und ich somit Problemlos SMS verschicken konnte. Ich hatte zwar viele Probleme aber diese habe ich durch stundenlange Forschungen eingegrenzt und herausgefunden. ( z.b wie viel kann ich in eine AT Zeile überhaupt reinschreiben ohne das ich nachher wieder einen Error kriege usw. Im Endeffekt war das Problem dann das der Carriage Return nicht richtig ausgeführt wurde und der meinen SMS Inhalt der ca 150 Char groß war immer versucht hat in eine Zeile zu schreiben (ohne Enter also praktisch) . Dies konnte ich nach langer suche nicht beheben (versch. Sachen ausprobiert , mehrere Ascii codes für CR und new line usw (13, 10) , versucht diese Befehle als Hex durchzugeben .......) Also habe ich an eine Library gedacht. Da ich auf Anfrage das eBook doch bekommen habe habe ich mich entschlossen die Library die dort verlinkt wurde zu nehmen (ttps://github.com/MarcoMartines/GSM-GPRS-GPS-Shield/ar-chive/GSMSHIELD.zip). Doch im eBook wurde mir vorgeschlagen das ich das Shield so verkabeln soll (https://imgur.com/a/aU3l1) . Dies habe ich getan und ein Beispiel Sketch der Library getestet (GSM_GPRSLibrary_SMS) . Doch als ich das Sketch gestartet habe hat das Sketch irgendwie mein Shield anscheinend nicht richtig gefunden und versucht die Baud Rate auf einen bestimmten Wert zu forcen . Das hat auch nicht funktioniert und man bekommt am Ende die Fehlermeldung das SIM900 nicht erreichbar wäre .

Gut , da diese Möglichkeit also auch nicht funktioniert hat dachte ich mir zurück zu dem was leuft und habe alles wieder umgesteckt auf die ursprüngliche Konfiguration. Doch jetzt bekomme ich nur noch
iFragezeichen, habe schon versucht per AT+IPR die Bautrate zurück zu ändern aber das hat nicht ganz funktioniert. Es klappt auch nicht jede mögliche bautrate auszuprobieren ich bekomme nie einen Lesbaren Output obwohl es am Anfang doch so schön geklappt hat :((( . Das ist mittlerweile das zweite GSM Modul und ich habe schon 8 andere Sensoren und andere Arduino Bauteile verbaut jeweils mit eigenen Librarys oder nur per code und ich habe bisher mit keinem Modul so viele Probleme gehabt wie mit den GSM Modulen. ......... wäre sehr dankbar für Hilfe , mal wieder

Die Länge der Fragezeichen würde übrigends zu der jeweiligen AT Response passen:

Eingabe in console : AT

OUTPUT : ⸮⸮⸮⸮

Mein Gedanke : ⸮⸮⸮⸮ = AT OK

Danke für die Antworten

AlexArduinoP:
Danke für die Antworten

gerne...

Aber bevor Antworten kommen, solltest du deine Schaltungen o.ä. hier direkt posten.
Kaum einer hat Lust auf die Suche zu gehen und diverse andere Seiten aufrufen, um deine Sachen zu sehen.

Also immer alles hier posten. dazu gehören auch der Sketch und Links zu den Libraries.

Setze den bitte in Code-Tags.

Verwende dazu die Schaltfläche </> oben links im Editorfenster.
Das kannst du auch nachträglich machen.
Dazu den Sketch markieren und die Schaltfläche klicken.

Damit wird dieser für alle besser lesbar.

Okay ich versuchs mal will ja auch das das Modul irgendwann leuft....

#include <SoftwareSerial.h>

#define SIM800_TX_PIN 8
#define SIM800_RX_PIN 7
 
//Create software serial object to communicate with SIM800
SoftwareSerial serialSIM800(SIM800_TX_PIN,SIM800_RX_PIN);

 
void setup() {
  //Begin serial comunication with Arduino and Arduino IDE (Serial Monitor)
  Serial.begin(19200);
  serialSIM800.begin(19200);
  delay(2000);
  Serial.println("Setup Complete!");
  
 
}
 
void loop() {
  //Read SIM800 output (if available) and print it in Arduino IDE Serial Monitor
  if(serialSIM800.available()){
    Serial.write(serialSIM800.read());
  }

  
  //Read Arduino IDE Serial Monitor inputs (if available) and send them to SIM800
  if(Serial.available()){    
  byte b = Serial.read();
  if (b == '%')
  {
    serialSIM800.write((char)26);  // ASCII WERT FUER STRG Z
  } 
  else
  {
    serialSIM800.write(b);
  }
  } 
}

Ist ja Prinzipiell nix besonderes nur dazu da um etwas auszulesen wenns was auszulesen gibt und zu senden wenns was zu senden gibt. Dazu kommt ja noch die überprüfung jedes bytes was ich dahin schicke ob es ein % ist. Dann wird anstatt des % ein STRG Z getätigt um in der Console eine SMS verschicken zu können.

Mit diesem Sketch hat es funktioniert (at kommunikation) bis ich diesen Sketch hier ausprobiert habe :

#include "SIM900.h"
#include <SoftwareSerial.h>
//If not used, is better to exclude the HTTP library,
//for RAM saving.
//If your sketch reboots itself proprably you have finished,
//your memory available.
//#include "inetGSM.h"

//If you want to use the Arduino functions to manage SMS, uncomment the lines below.
#include "sms.h"
SMSGSM sms;

//To change pins for Software Serial, use the two lines in GSM.cpp.

//GSM Shield for Arduino
//www.open-electronics.org
//this code is based on the example of Arduino Labs.

//Simple sketch to send and receive SMS.

int numdata;
boolean started=false;
char smsbuffer[160];
char n[20];

void setup() 
{
  //Serial connection.
  Serial.begin(9600);
  Serial.println("GSM Shield testing.");
  //Start configuration of shield with baudrate.
  //For http uses is raccomanded to use 4800 or slower.
  if (gsm.begin(2400)){
    Serial.println("\nstatus=READY");
    started=true;  
  }
  else Serial.println("\nstatus=IDLE");
  
  if(started){
    //Enable this two lines if you want to send an SMS.
    if (sms.SendSMS("Meinenummerwurdehiereingetragen", "Arduino SMS"))
      Serial.println("\nSMS sent OK");
  }

};

void loop() 
{
  if(started){
    //Read if there are messages on SIM card and print them.
    if(gsm.readSMS(smsbuffer, 160, n, 20))
    {
      Serial.println(n);
      Serial.println(smsbuffer);
    }
    delay(1000);
  }
};

Da ist dann anscheinend was falsch gelaufen und es hat mir aufjedenfall etwas am SIM900 umgestellt.
Damit dieses Sketch funktioniert musste in den Library dateien (GSM.cpp) die Pin Auswahl geändert werden das habe ich aber getan.

Irgendwelche Ideen wie ich das Shield wieder mit Sketch 1 zum laufen bekomme?

Hier noch einmal die beiden Bilder mit denen jeweils Sketch 1 und 2 angeschlossen wurden.

sketch 2.PNG

hier noch einmal die Zeichen die kommen wenn ich das Modul starte, koennte das wirklich nur eine falsche Baudrate sein?

Da ich die von dir verwendete Library nicht kenne, kann ich nur vermuten, dass du die Baudrate des GSM verändert hast.

Im ersten Sketch arbeitest du mit 19200, das hat wohl funktioniert.

Im zweiten hast du 2400, das versteht dein GSM offensichtlich nicht.

Ja mir wurde in der "Einführung" die ich als eBook bekommen habe gesagt das ich dies stehen lassen soll. (Da die Library die Baudrate anscheinend automatisch dann ändert). Ich werd die GSM.cpp die glaube ich hauptverantwortlich dafür ist hier mal als code einfügen vielleicht siehst du ja grob was da passiert.
Da der Code nicht in einen Thread reinpasst hier pastebin (/*This is a Beta version.last modified 18/08/2012.This library is based - Pastebin.com) oder die Datei Selber einfach.

GSM.cpp (19.6 KB)

Hallo ist es dir gelungen das Problem mit dem AZ Delivery Board zu lösen? .... bei mir ist genau das gleiche...
Kannst Du die Lösung Posten...
LG