watterott ;title =
Ergebnis 1 bis 2 von 2

Thema: GSM TC35 Siemens

  1. #1
    Platinenputzer Avatar von Sk8erboi
    Registriert seit
    08.11.2016
    Ort
    Koblenz
    Alter
    29
    Beiträge
    31

    GSM TC35 Siemens

    Code:
    $regfile = "m328Pdef.dat"                                   'Controller
                               '
    
    $crystal = 16000000                                         'Quarzfrequenz
                                 '
    $baud = 9600                                                'Für GSM Siemens Modul
    
    Config Lcdpin = Pin , Db4 = Portc.1 , Db5 = Portc.2 , Db6 = Portc.3 , Db7 = Portc.4 , E = Portd.3 , Rs = Portd.2       ' Konfiguration des Displays
    Config Lcd = 20 * 4
    Config Lcdbus = 4                                           'LCD CONFIG
    Cursor Off
    Cls                                                         'Display löschen
    
    
    
    
    
    '=================================================================================================================
    
    Dim Nr As String * 20                                       'Telefonnr
    Dim Status As String * 30
    Dim Gsm As String * 254                                     'Die SMS als String
    Dim I As Integer
    Dim Resetsekunden As Integer
    
    
    
    
    Config Portd.4 = Output                                     'Zentral auf
    Config Portd.5 = Output                                     'zentral zu
    Config Portd.6 = Output                                     'Kompressor an
    Config Portd.7 = Output                                     'Kompressor aus
    Config Portb.0 = Output
    Config Portb.1 = Output
    Config Portb.2 = Output
    Config Portb.3 = Output
    Config Portb.5 = Output                                     'reset GSMmodul
    
    
    
     Portd.4 = 1                                                'Zentral auf
     Portd.5 = 1                                                'zentral zu
     Portd.6 = 1                                                'kompressor an
     Portb.5 = 1                                                'kompressor aus
     Portd.7 = 1
     Portb.0 = 1
     Portb.1 = 1
     Portb.2 = 1
     Portb.3 = 1
     Portb.5 = 1
    
    
    
    
    
    
     'Reset des Sainsmartboards
    Wait 3
    Portb.5 = 0
    Wait 1
    Portb.5 = 1
    Wait 5
    
    '===============================================================================================================
    On Urxc Onrxd                                               'ISR zum Empfang der einzelnen ASCIIs
    Enable Urxc
    Enable Interrupts
    
    Main:
      Cls
    
    
                Resetsekunden = Resetsekunden + 1
                If Resetsekunden > 2000 Then
                Resetsekunden = 0
                End If
    
    
                Locate 4 , 1
                Lcd "GSM Steuerung Steff "
                Locate 1 , 1
                Lcd "Alles AUS!"
    
    
    
    
    
    
    
                Status = ""
                I = 0
                Print "AT+CMGF=1"
                Wait 2
                Gsm = ""
                Print "at+cmgl=all"
                Wait 3
    
    
    
    
                       If Len(gsm) > 50 Then
    
    
                 I = Instr(1 , Gsm , "49")
    
                       If I > 0 Then
                       I = I - 1                                'Rufnummernauswertung
                       Nr = Mid(gsm , I , 14)
                       End If
                       I = 0
    
                      I = Instr(1 , Gsm , "dasisteintest")      '
                      If I > 0 Then                             '
                      Status = Mid(gsm , I , 17)
                      End If
                      I = 0 - 1
                      If Instr(1 , Status , "dasist") > 0 Then
                      Cls
                      Locate 1 , 1
                      Lcd "Wurde gestartet von"
                      Locate 2 , 1
                      Lcd Nr
                      Locate 3 , 1
                      Lcd "Test alle Relais "
     Portd.4 = 0                                                'Zentral auf
     Portd.5 = 0                                                'zentral zu
     Portd.6 = 0                                                'kompressor an                                                'kompressor aus
     Portd.7 = 0
     Portb.0 = 0
     Portb.1 = 0
     Portb.2 = 0
     Portb.3 = 0
      Wait 10
    
     Portd.4 = 1                                                'Zentral auf
     Portd.5 = 1                                                'zentral zu
     Portd.6 = 1                                                'kompressor an                                              'kompressor aus
     Portd.7 = 1
     Portb.0 = 1
     Portb.1 = 1
     Portb.2 = 1
     Portb.3 = 1
    
                      Wait 5
                      End If
                      Status = ""
                      I = 0
                 End If
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
                If Len(gsm) > 50 Then
    
    
                 I = Instr(1 , Gsm , "49")
    
                       If I > 0 Then
                       I = I - 1                                'Rufnummernauswertung
                       Nr = Mid(gsm , I , 14)
                       End If
                       I = 0
    
                      I = Instr(1 , Gsm , "Sonnenschutz zu")    '
                      If I > 0 Then                             '
                      Status = Mid(gsm , I , 17)
                      End If
                      I = 0
                      If Instr(1 , Status , "zu") > 0 Then
                      Cls
                      Locate 1 , 1
                      Lcd "Wurde gestartet von"
                      Locate 2 , 1
                      Lcd Nr
                      Locate 3 , 1
                      Lcd "Sonnenschutz zu "
                      Portb.0 = 0
                      Wait 1
                      Portb.0 = 1
                      Wait 5
                      End If
                      Status = ""
                      I = 0
                 End If
    
    
    
    
    
                If Len(gsm) > 50 Then
    
    
                 I = Instr(1 , Gsm , "49")
    
                       If I > 0 Then
                       I = I - 1                                'feinjustierung der TelNR vom String
                       Nr = Mid(gsm , I , 14)
                       End If
                       I = 0
    
                      I = Instr(1 , Gsm , "Sonnenschutz auf")   'kommt in der SMS "Heizung" vor? Rückmeldung Geb Position im String an I
                      If I > 0 Then                             'Wenn je, mach...
                      Status = Mid(gsm , I , 17)
                      End If
                      I = 0
                      If Instr(1 , Status , "auf") > 0 Then
                      Cls
                      Locate 1 , 1
                      Lcd "Wurde gestartet von"
                      Locate 2 , 1
                      Lcd Nr
                      Locate 3 , 1
                      Lcd "Sonnenschutz auf "                   'Wenn im FolgeString "an" vorkommt, Schalte Kaffeemaschine an
                      Portb.1 = 0
                      Wait 1
                      Portb.1 = 1
                      Wait 5
                     End If
                      Status = ""
                      I = 0
                 End If
    
    
    
    
    
    
    
    
    
    
      '_______________________________________________________________________________________________________
    
                 If Len(gsm) > 50 Then
    
    
                 I = Instr(1 , Gsm , "49")
    
                       If I > 0 Then
                       I = I - 1                                'feinjustierung der TelNR vom String
                       Nr = Mid(gsm , I , 14)
                       End If
                       I = 0
    
                      I = Instr(1 , Gsm , "Kompressor aus")     'kommt in der SMS "Heizung" vor? Rückmeldung Geb Position im String an I
                      If I > 0 Then                             'Wenn je, mach...
                      Status = Mid(gsm , I , 17)
                      End If
                      I = 0
                      If Instr(1 , Status , "aus") > 0 Then
                      Cls
                      Locate 1 , 1
                      Lcd "Wurde gestartet von"
                      Locate 2 , 1
                      Lcd Nr
                      Locate 3 , 1
                      Lcd "Kompressor aus "                     'Wenn im FolgeString "an" vorkommt, Schalte Kaffeemaschine an
                      Portd.7 = 0
                      Wait 1
                      Portd.7 = 1
                      Wait 4
    
                      Status = ""
                      I = 0
                      End If
    
    
    
    
              End If
    
    
    
    
    
                  If Len(gsm) > 50 Then
    
    
                 I = Instr(1 , Gsm , "49")
    
                       If I > 0 Then
                       I = I - 1                                'feinjustierung der TelNR vom String
                       Nr = Mid(gsm , I , 14)
                       End If
                       I = 0
    
                      I = Instr(1 , Gsm , "Kompressor an")      'kommt in der SMS "Heizung" vor? Rückmeldung Geb Position im String an I
                      If I > 0 Then                             'Wenn je, mach...
                      Status = Mid(gsm , I , 17)
                      End If
                      I = 0
                      If Instr(1 , Status , "an") > 0 Then
                      Cls
                      Locate 1 , 1
                      Lcd "Wurde gestartet von"
                      Locate 2 , 1
                      Lcd Nr
                      Locate 3 , 1
                      Lcd "Kompressor an "                      'Wenn im FolgeString "an" vorkommt, Schalte Kaffeemaschine an
                      Portd.6 = 0
                      Wait 1
                      Portd.6 = 1
                      Wait 4
    
                      Status = ""
                      I = 0
                      End If
    
    
    
    
              End If
    
                                                              'Nummernauswertung
    
             If Len(gsm) > 50 Then
    
    
                 I = Instr(1 , Gsm , "49")
    
                       If I > 0 Then
                       I = I - 1                                'feinjustierung der TelNR vom String
                       Nr = Mid(gsm , I , 14)
                       End If
                       I = 0
    
                      I = Instr(1 , Gsm , "Zentral auf")        'kommt in der SMS "Heizung" vor? Rückmeldung Geb Position im String an I
                      If I > 0 Then                             'Wenn je, mach...
                      Status = Mid(gsm , I , 17)
                      End If
                      I = 0
                      If Instr(1 , Status , "auf") > 0 Then
                      Cls
                      Locate 1 , 1
                      Lcd "Wurde gestartet von"
                      Locate 2 , 1
                      Lcd Nr
                      Locate 3 , 1
                      Lcd "Zentral auf "                        'Wenn im FolgeString "an" vorkommt, Schalte Kaffeemaschine an
                      Portd.4 = 0
                      Wait 1
                      Portd.4 = 1
                      Wait 4
    
                      Status = ""
                      I = 0
                      End If
    
    
    
    
              End If
    
    
             If Len(gsm) > 50 Then
    
                 I = Instr(1 , Gsm , "49")
    
                       If I > 0 Then
                       I = I - 1                                'feinjustierung der TelNR vom String
                       Nr = Mid(gsm , I , 14)
                       End If
                       I = 0
    
                      I = Instr(1 , Gsm , "Zentral zu")         'kommt in der SMS "Heizung" vor? Rückmeldung Geb Position im String an I
                      If I > 0 Then                             'Wenn je, mach...
                      Status = Mid(gsm , I , 17)
                      End If
                      I = 0
                      If Instr(1 , Status , "zu") > 0 Then
                      Cls
                      Locate 1 , 1
                      Lcd "Wurde gestartet von"
                      Locate 2 , 1
                      Lcd Nr
                      Locate 3 , 1
                      Lcd "Zentral zu "                         'Wenn im FolgeString "an" vorkommt, Schalte Kaffeemaschine an
                      Portd.5 = 0
                      Wait 1
                      Portd.5 = 1
                      Wait 4
                      Status = ""
                      I = 0
                      End If
    
    
    
              End If
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
             If Len(gsm) > 50 Then                       'Alle SMS aus Speicher löschen
    
                Print "AT+CMGD=1"
                Waitms 500
                Print "AT+CMGD=2"
                Waitms 500
                Print "AT+CMGD=3"
                Waitms 500
                Print "AT+CMGD=4"
                Waitms 500
                Print "AT+CMGD=5"
                Waitms 500
                Print "AT+CMGD=6"
                Waitms 500
                Print "AT+CMGD=7"
                Waitms 500
                Print "AT+CMGD=8"
                Waitms 500
                Print "AT+CMGD=9"
                Waitms 500
    
    
    
             End If
    
    
    
    
    
    
    
    
    Goto Main
    
    
    
    
    Onrxd:                                                      'Hier wird jedes ASCII zum String zugeführt
    Gsm = Gsm + Chr(udr)
    Return                                                      'end program
    Diesen Prototyp habe ich bis heute in Verwendung.
    Nicht so schön, aber als abschreckendes Beispiel geeignet

  2. #2
    Platinenputzer Avatar von Sk8erboi
    Registriert seit
    08.11.2016
    Ort
    Koblenz
    Alter
    29
    Beiträge
    31
    Allgemeines zum TC35i:

    Es sind 2 Versionen von Sainsmart auf dem Markt. 5V und 12V Stromversorgung.
    Beide besitzen RS232 und UART (TTL 5V). Mit einem Atmega/Arduino könnt ihr ohne Verwendung eines Pegelwandlers (bekannterster ist der Max232) ausschließlich den UART benutzen.

    Ich erinnere mich, dass die Beschriftung auf der Platine von TX und RX vertauscht waren.

    Achtet bitte darauf, dass Ihr die Leitung kreuzt (RX_MC zu TX_TC35i, TX_MC zu RX_TC35i)
    Verbindet zusätzlich GND miteinander, falls Ihr seperate Netzteile verwendet.Die Datensignale benötigen einen Bezug!

    Wenn ihr bei 9600Bd 8N1 keine Antwort bekommt, liegt dies vermutlich daran, dass Ihr TX an TX und RX an RX anliegen habt.


    Sim-Karte bitte vor dem Verwenden in ein Handy stecken und die PIN-Abfrage unter Sicherheit deaktivieren.

    Das 5V Modul habe ich mit größeren Kondensatoren ausgestattet, da es beim Senden Probleme gab.
    Welches Handyladekabel ich zur Stromversorgung genutzt hatte, weiß ich nicht mehr so genau.
    Um Fehlerquellen auszuschließen, nehmt ein Labornetzteil oder später ein Samsung Smartphone-Ladekabel mit ein bis zwei Ampere.
    Damit habe ich in der Vergangenheit gute Erfahrungen gemacht.
    Auch zu dünne USB-Kabel können bewirken, dass zuviel Spannung abfällt und das Modul nicht richtig senden/empfangen kann.

    Zuletzt ist zu sagen, dass die Module einen Mikrotaster besitzen. der zieht einen Reseteingang beim betätigen auf Masse.
    Dies ist notwenig um das Modul zu initialisieren. Ohne Tastetdruck zu Anfang bleibt das TC35i stumm.

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •