SIM800L

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • Hallo Fraenky123,
      es wäre besser, du würdest das ganze Programm einstellen, dann könnte man das auch mal compilieren.

      Du sendest dem Modul am Anfang etwas mit Print ... und versuchst dann, eine Verbindung zu öffnen. Das macht keinen Sinn und ist auch nicht nötig. Ich bin mir nicht sicher, ob die Baudrate daher auf 115200 für den HW UART gesetzt wird. Wenn du kein $baud=115200 im Programm hast, wird nach dem Setzen der IPR nichts mehr gehen.
      Ich habe die Tel Nr. im +49 Format und dahinter nur CHR(13), kein CRLF (bei dir fehlt das ;
      Und hinter dem CHR(26) habe ich kein CHR(13) mehr.
    • Fraenky123 wrote:

      WAS MACHE ICH FALSCH
      Wenn ich das jetzt richtig sehe, sieht es so aus, als ob du TxD vom Mega 2560 auf TxD vom SIM800L und RxD vom Mega 2560 auf RxD vom SIM800L geklemmt hast.
      Das ist falsch. Die müssen über kreuz angeschlossen werden. Also TxD vom Mega 2560 auf Rxd vom SIM800L und RxD vom Mega 2560 auf TxD vom SIM800L.
      Eine Lösung habe ich nicht, aber mir gefällt Ihr Problem.
    • Hallo nochmal,

      habe alle Anmerkungen gecheckt. NIX

      -- auf dem Bild war tatsächlich TX TX RX RX verdrahtet (hatte aber schon alles ausprobiert --> jetzt korrekt) TX SIM800L Ist auf MEGA 2560 Board auf PD2
      Auch die PINS habe ich im Programm schon von 3 auf 2 geändert (jeweils RX o. TX)
      KEIN ERGEBNIS

      - Empfang ist da
      - Sim Karte ist OHNE PIN
      - die AT Werte habe ich Testweise auch wie eben angegeben geändert --> kein Ergebnis. sind jetzt wieder wie siehe unten.

      TX lampe flackert nach Programm start --> aber keine SMS geht raus.



      hier das volle Programm


      $regfile = "m2560def.dat"
      $crystal = 16000000
      $hwstack = 70
      $swstack = 150
      $framesize = 150
      $baud = 115200

      Config Com1 = 115200 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0


      '*******************************************************************************
      ' TEST SIM800L
      '*******************************************************************************



      DIM NUMMER AS STRING * 20
      dim sms_end as Integer

      WAITMS 500
      PRINT "at&f": wait 2
      PRINT "AT+IPR=115200"; CHR(13) : WAIT 2
      PRINT "AT+CMGF=1" ; CHR(13) : WAIT 2

      '
      CONFIG PINd.3 = INPUT
      PORTd.3 = 1
      NUMMER = "0049170999999"

      DO
      IF PINd.3 = 1 then
      PRINT "AT+cmgs="; Chr(34); Nummer ; CHR(34); Chr(13);
      waitms 500
      Print "ALLES OK" ; Chr(26) ;
      Wait 5
      SMS_END = 1

      END IF
      LOOP UNTIL SMS_END = 1

      do


      loop

      '*******************************************************************************

      The post was edited 1 time, last by Fraenky123 ().

    • Ich sehe in deinem Code
      PRINT "AT+IPR=115200"; CHR(13)
      Das würde aber bedeuten dass der Empfänger dann die Zeichenfolge
      A T + I P R = 1 1 5 2 0 0 [CR] [CR] [LF]
      zu verarbeiten hätte.
      Ich kann jetzt nicht sagen ob das Modul da verwirrt wird aber ein möglicher Ansatz ist es schon.
      Vor allem im Hinblick auf das versenden von SMS ist das wichtig weil da einer der Steuerzeichen einen Zeilenvorschub auslöst wenn sich derartige Zeichen dann im Text befinden.

      Ach ja, im GSM wird ein SMS eingeleitet und man muss auf die Antwort des Moduls warten bis man den Text nachsenden darf.
      Es kann mit der Wartezeit funktionieren (500mS finde ich aber mutig), muss es aber nicht
    • hat nichts gebracht - auch das habe ich probiert :(
      PIND.2 = INPUT --> RX oder TX Pin? Input müsste doch RX sind, oder? Habe aber mit 2 UND 3 ausprobiert - > NIX.
      Irgendwelche anderen Einstellungen die ich vergessen haben könnte?
      Manchmal KÖNNTE MAN :)
    • Kannst du dir nicht mal anzeigen lassen, was das Modul zurückgibt?
      Bei meinem ist es tatsächlich egal, ob ich nur 13 oder noch 10 hinterher schicke.
      Ich glaube auch nicht, dass die Abfrage des Pins funktioniert, weil der Compiler die für den UART verwendet.
      $baud und Print ohne etwas geht auf RX0 und TX0. Für Com2 (RX1 und TX1) musst du
      Open "com2:" For Binary As #1
      und dann
      Print #1 ... verwenden.

      The post was edited 1 time, last by Franz ().

    • ICH HABS HINGEKRIEGT - KEINE AHNUNG WIE :) Muss ich gerade analysieren..

      Aber so gehts:



      $regfile = "m2560def.dat"
      $crystal = 20000000
      $hwstack = 70
      $swstack = 150
      $framesize = 150
      $baud = 115200

      'Config Com1 = 115200 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0


      '*******************************************************************************
      ' TEST SIM800L
      '*******************************************************************************



      DIM NUMMER AS STRING * 11
      dim sms_end as Integer

      Open "comd.3:155200,8,n,1" For output As #1

      WAITMS 500
      PRINT #1 , "AT&F": wait 2
      PRINT #1 , "AT+IPR=115200" ; CHR(13) : WAIT 2
      PRINT #1 , "AT+CMGF=1" ; CHR(13) : WAIT 2

      '
      CONFIG PINd.3 = INPUT
      'PORTd.3 = 1
      NUMMER = "017999999"
      ' Pind.3 = 0
      'DO
      ' IF PINd.2 = 0 then
      PRINT #1 , "AT+cmgs="; Chr(34); Nummer ; CHR(34); Chr(13)
      waitms 500
      Print #1 , "ALLES OK" ; Chr(26)
      Wait 5
      ' SMS_END = 1

      ' END IF
      'LOOP 'UNTIL SMS_END = 1

      do


      loop

      '*******************************************************************************

      The post was edited 1 time, last by Fraenky123 ().

    • Fraenky123 wrote:

      PRINT #1 , "AT+CMGF=1" ; CHR(13) : WAIT 2
      2 Sekunden kann hier zu kurz sein. Manche Module brauchen hier länger.

      Fraenky123 wrote:

      PRINT #1 , "AT+cmgs="; Chr(34); Nummer ; CHR(34); Chr(13)
      waitms 500
      Waitms 500 kann auch zu kurz sein. Die Module fordern mit dem Zeichen ">" einen auf den Text zu senden. Ich würde sicherheitshalber das Zeichen abwarten.

      Fraenky123 wrote:

      Print #1 , "ALLES OK" ; Chr(26)
      Hier würde ich noch ein ";chr(13);" anhängen.


      Franz wrote:

      Bei meinem ist es tatsächlich egal, ob ich nur 13 oder noch 10 hinterher schicke.
      Schon aber er schickt ja zwei chr(13). Ich würde nach jedem chr(13) ein ";" anhängen.

      Du solltest mehr auf das Modul hören dann kannst Du besser reagieren. Die Dinger sind sehr gesprächig. Durch die Waits hoffst Du dass durch Zufall alles funktioniert.
      Guck Dir das mal an:
      SIM800L Handling - Hauptforum BASCOM-AVR - bascomforum.de
      Hab vor einiger Zeit selbst damit rum gebastelt und inzwischen auch erweitert. Bei Bedarf kann ich gerne den Quelltext nochmal hochladen.

      Gruß, Martin
    • Wenn ich meinem Programm misstraue - weil leider viel zu oft der Fall ist - verbinde ich so ein AT-betriebenes Modul wie ein SIM800L gerne über hterm direkt vom PC aus.
      Da sieht man schön, welche Antworten zurückkommen und kann auch mal einen Abfragebefehl einstreuen.
      Das geht viel schneller als jedesmal den Controller neu zu programmieren.
      Und wenn ich dann die richtige Abfolge habe, ist es leicht, die in das Programm zu übertragen.
    • Hast recht,
      probieren geht über studieren. Ich habe nur noch nicht alle Teile.
      War nur mal so im Vorfeld ein Gedanke denn ich habe noch nie
      einen Quarz konfiguriert.Bis jetzt haben noch alle meine Projekte
      mit 1MHz funktioniert (default )
      Gruß
      Jürgen
    • Hallo Michael,
      ich hoffe Du bist noch wohl auf. Ja, es ist lange her (bestimmt über 10 Jahre).
      Hatte eine ganze Zeit garnichts mehr in Richtung Elektronik gemacht.
      Ich kann mich noch gut erinnern als Du mir die Timer erklärt hast.
      Ja Du hast recht ----"dann wird es aber Zeit...."
      Gruß
      Jürgen
      PS
      Nochmal danke für euch in diesem Beitrag
    • So , ich habe mich gerade entschlossen in die "Welt der Fuse-Bits " einzutauchen.
      Hab mal 16Mhz-Quarze bestellt.
      Meine Frage:
      Da es hier eventuell eine längere Auseinandersetzung gibt---hätte jetzt schon einige Fragen
      die euch Spezialisten sicherlich selbstverständlich sind.
      >>>>Soll ich zur gegebenen Zeit in diesem Thema weitermachen ,oder ein neues
      Thema eröffnen ?.<<<<<
      Gruß
      Jürgen