Picproje Elektronik Sitesi

DERLEYİCİLER => Proton+ => Konuyu başlatan: elektroacemi - 10 Ocak 2019, 11:28:20

Başlık: Proton ile Sim800L kullanımı ile ilgili
Gönderen: elektroacemi - 10 Ocak 2019, 11:28:20
Merhalar.
Elimde Sim800L modül var. Denemek ve komut yapısını öğrenmek amaçlı Arduino ile kullandım. Bunu PIC ile kullanmak istiyorum. Proton ile bunu kullanmak için seri iletişim konutları kafamı karıştırdı.
Hardware serial mi?
Software serial mi?

Kullanmalıyım, birbirine göre avantaj ve dezavantajları neler. Önerilerinizi bekliyorum.
Başlık: Ynt: Proton ile Sim800L kullanımı ile ilgili
Gönderen: mustafa_cmbz - 10 Ocak 2019, 11:32:30
HARD serial kullanman protonda daha salıklı olur..
Başlık: Ynt: Proton ile Sim800L kullanımı ile ilgili
Gönderen: elektroacemi - 11 Ocak 2019, 12:33:47
Teşekkür ederim.
Hard için aşağıdaki komutlar kullanılıyor diye anladım.

Declare Hserial_Baud = 9600
Declare Hserial_RCSTA = %10010000
Declare Hserial_TXSTA = %00100000
Declare Hserial_Clear = on

Hserial_Clear tam olarak ne için kullanılıyor.
Başlık: Ynt: Proton ile Sim800L kullanımı ile ilgili
Gönderen: t600 - 11 Ocak 2019, 13:23:54
daha önce sim 900a ile yaptım aynı .Bir php saypasına data gönderen program .  proton basic .


Device 16F887

    'Stack_Size = 200 ' Create a small stack capable of holding 20 bytes

     '  Config_Start
  ' CP0 = On ' Code Protection Block 0 Disabled

'CP1 = On ' Code Protection Block 1 Disabled
'CP2 = On ' Code Protection Block 2 Disabled
'CP3 = On ' Code Protection Block 3 Disabled
'CPB = On ' Boot Block Code Protection Disabled
'CPD = On ' Data EEPROM Code Protection Disabled
  'Config_End

  ' CCP1CON = %00001100     ' Set CCP1 to PWM
    'T2CON = %00000101       ' Turn on Timer2, Prescale=4
   ' PR2 = 149               ' Set PR2 to get 1KHz out
    'Duty = 101           ' Set duty cycle to 20%

      ' PR2 = 249              ' Set PR2 to get 1KHz out
   
   ' CCP1CON.5 = Duty.1      ' a 10-bit word

     '  CCPR1L = 255

  '  EWrite 104, [deger]
   '   ssp1 = ERead 54
    ;
; Config
'@CONFIG_REQ
'@__CONFIG _CONFIG1, INTRC_OSC_NOCLKOUT & WDT_OFF & DEBUG_OFF & FCMEN_OFF & IESO_OFF & BOR_OFF & CP_On & MCLRE_ON & PWRTE_ON
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 '@CONFIG_REQ
'@__CONFIG _CONFIG1, WDT_OFF & DEBUG_OFF & FCMEN_ON & IESO_ON & BOR_OFF & CPD_OFF & CP_OFF & MCLRE_ON & PWRTE_OFF & lvp_off 'FOSC1_OFF
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
' 10110011110101
'111

 ; Config
@CONFIG_REQ
'@__CONFIG _CONFIG1, INTRC_OSC_NOCLKOUT & WDT_OFF & DEBUG_OFF & FCMEN_OFF & IESO_OFF & BOR_OFF & CP_On & MCLRE_ON & PWRTE_ON
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 '@CONFIG_REQ
@__CONFIG _CONFIG1, INTRC_OSC_NOCLKOUT & WDT_OFF & DEBUG_OFF & FCMEN_On & IESO_Off & BOR_Off & CPD_off & CP_off & MCLRE_on & PWRTE_OFF & lvp_OFF 'FOSC1_Onn
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
' 10110011110101
'111
'Xtal = 4
'OSCCON = %01110111

  Xtal = 8

 OSCCON = %11111010

All_Digital = TRUE
 
   TRISA = %11110111
   TRISB = %11111110
   TRISC = %10111111
   TRISD = %00000000
    TRISE = %1110   
      ' PORTA = 0
  ' PORTB = 0
  ' PORTC = 0
   'PORTD = 0
  ' PORTE = 0

 
     ' Symbol buz = PORTC.4

     
     ' ADCON0= %00001011 
     ' ADCON1 = %10001000
   
         ' ADCON0= %00001011 
      'ADCON1 = %10001111
 
    Hserial_Baud = 9600 ' Set baud rate to 9600
 'Hserial_RCSTA = %10010000 ' Enable serial port and continuous receive
'Hserial_TXSTA = %00100000 ' Enable transmit and asynchronous mode
  Hserial_RCSTA = %10010000 ' Enable serial port and continuous receive
Hserial_TXSTA = %00100000 ' Enable transmit and asynchronous mode
Hserial_Clear = On ' Optionally clear the buffer before receiving
   
      'ADCON2 = %10010111   
LCD_DTPin = PORTD.4
LCD_RSPin = PORTD.0
LCD_ENPin = PORTD.2
LCD_Interface = 4
LCD_Lines = 2
LCD_Type = 0
All_Digital = True   

      PORTD.1 = 0     ' ekran

   Dim SerData[100] As Byte       
  Dim a As Byte
   Dim gel[60] As Byte
   Dim say As Byte
  'Declare CCP2_a PORTB.3
   
       ' Print At 1,1,  "devrtronik "
       
         bas:
     
                  Print At 2,1,  " Gcam control   "
        Print At 1,1,  "    T17-cont    "
             DelayMS 500
       
       
   
  '   GoTo gg
       
               Cls
               
               
               
               hh:
     
          '        SerOut PORTE.0, 813, ["AT",13]
                 
 
             
                        '    cls
                      '  SerOut PORTE.0, 813, ["AT+CIPCLOSE=0",13]
                        '      DELAYMS 500
                         'gosub yaz
                         
                       
                         
                         
                                Cls
                           SerOut PORTE.0, 813, ["AT",13]
                               SerIn PORTE.1, 813, 5000, TimeoutError, [Wait("OK")]
                               Cls
                               Print "GSM BASARILI"
                                DelayMS 500
                         
                                     Cls
                           SerOut PORTE.0, 813, ["AT+CPIN?",13]
                         '  GOSUB YAZ
                               SerIn PORTE.1, 813, 5000, TimeoutError, [Wait("+CPIN: READY")]
                               Cls
                               Print "SIM BULUNDU"
                                DelayMS 500
                         
                                       Cls
                          SerOut PORTE.0, 813, ["AT+CIPSHUT",13]
                               SerIn PORTE.1, 813, 5000, TimeoutError, [Wait("SHUT OK")]
             
                               Cls
                               Print "CIP KAPATILDI"
                               DelayMS 2000
                         
                              Cls
                             SerOut PORTE.0, 813, ["AT+CGATT?",13]
                           
                              SerIn PORTE.1, 813, 5000, TimeoutError, [Wait("+CGATT: 1")]
                             
                              Cls
                               Print "GPRS BAGLI"
                       
                                DelayMS 500
                       
                                 Cls
                              SerOut PORTE.0, 813, ["AT+CIPMUX=0",13]
                           
                              SerIn PORTE.1, 813, 5000, TimeoutError, [Wait("OK")]
                             
                              Cls
                               Print "MUX"
                       
                                DelayMS 500
                       
                                       Cls
                           SerOut PORTE.0, 813, ["AT+CIPRXGET=1",13]
                           
                              SerIn PORTE.1, 813, 5000, TimeoutError, [Wait("OK")]
                             
                              Cls
                               Print "MANUEL DATA ALIMI"
                       
                                DelayMS 500
                   
                         

                                            Cls
                             SerOut PORTE.0, 813, ["AT+CSTT=",34,"internet",34,44,34,34,44,34,34,13]
                     
                              'SerIn PORTE.1, 813, 5000, TimeoutError, [Wait("OK")]
                             
                              Cls
                               Print "INTERNET OTURUMU"
                       
                                DelayMS 2000
                       
                                                 Cls
                                         
                             SerOut PORTE.0, 813, ["AT+CIICR",13]
                                 '  SerIn PORTE.1, 813, 10000, TimeoutError, [Wait("+CIICR OK")]
                                    ' GOSUB YAZ
                            SerIn PORTE.1, 813, 10000, TimeoutError, [Wait("OK")]
                             
                              Cls
                               Print "GPRS OTURUMU"
                       
                                DelayMS 2000
                       
                                                         Cls
                                  SerOut PORTE.0, 813, ["AT+CIFSR",13]
                               GoSub yaz
                                 
                               DelayMS 2000
                              Cls
                               Print At 2,1, "IP ALINDI"
                       
                                DelayMS 1000
                       
                                       Cls
                               
               SerOut PORTE.0, 813, ["AT+CIPSTART=",34,"TCP",34,44,34,"www.gokdua.com",34,44,34,"80",34,13]
                             
                                 GoSub yazz 
                              ' SerIn PORTE.1, 813, 20000, TimeoutError, [Wait("CONNECT")]
                                      Cls
                               Print "BAGLANILDI"
                               
                               
                               DelayMS 500
                              '' GoTo hh
                               
                                 SerOut PORTE.0, 813, ["AT+CIPSEND",13]
                                      SerIn PORTE.1, 813, 10000, TimeoutError, [Wait(">")]
                                     Print "gidiiiiI"
                             SerOut PORTE.0, 813, ["GET /defter.php?isim=picccccc HTTP/1.1",13,10]
                       
                       
                                 SerOut PORTE.0, 813, ["Host: www.gokdua.com",13,10]
                                 DelayMS 500
                                    SerOut PORTE.0, 813, [13,10]
                                     DelayMS 500
                                      SerOut PORTE.0, 813, [13,10]
                                       DelayMS 500
                                        SerOut PORTE.0, 813, [26]
                                         Cls
                                        Print "olduuuuu"
                                            DelayMS 3000
                              GoTo hh
                       
                       
                          Cls
                         
                           SerOut PORTE.0, 813, ["AT+CIPMUX=1",13]
                         
                         GoSub yaz
                          Cls
                               
                              SerOut PORTE.0, 813, ["AT+CIPRXGET=1",13]
                             
                         GoSub yaz
                          Cls
                           SerOut PORTE.0, 813, ["AT+CSTT=",34,"internet",34,44,34,34,44,34,34,13]
                              SerOut PORTE.0, 813, ["AT+CSTT=",34,"internet",34,44,34,34,44,34,34,13]
                         GoSub yaz       
                          Cls
                       
                              SerOut PORTE.0, 813, ["AT+CIICR",13]
                             
                         GoSub yaz
                          Cls
                           SerOut PORTE.0, 813, ["AT+CIFSR",13]
                               
                         GoSub yaz
                         
                                   
                               yyy:
                               
                              Cls
                           
                             SerOut PORTE.0, 813, ["AT+CIPSTART=",34,"TCP",34,",",34,"www.gokdua.com",34,",",34,"80",34,13]
 
                         GoSub yazz 
                               
                             
                               
                               
                              SerOut PORTE.0, 813, ["AT+CIPSEND",13]
                               
                         SerIn PORTE.1, 813, 20000, TimeoutError, [SerData[1]]
           Print  SerData[1]
                         DelayMS 2000     
                               
                          Cls
                           
                             SerOut PORTE.0, 813, ["GET /defter.php?isim=pıcccccc HTTP/1.1",13]
                                   SerOut PORTE.0, 813, ["Host: www.gokdua.com",13,13,13,13,26]
                         GoSub yaz
                         
                                   DelayMS 3000           
                           GoTo hh
                       
             
     
                   
       
                       
                    GoTo hh
                   
                   
                   
                   
                   
                   
                   
                   
                   
                       DelayMS 3000
           
                   
                       
                                       Cls   
                                           
                                   
                                     
                       
                       
                       
                       
                       
                       
                       
                       DelayMS 3000
               GoTo hh
               
               
               
                     SerOut PORTE.0, 813, ["AT+CPIN?"]
                                     DelayMS 100
                                     cpin:
                                     For say = 0 To 50
                                           SerIn PORTE.1, 813, 5000, TimeoutError, [SerData[say]]
                                          Print SerData[a]   
                                         
                                     Next
                               
                                     Cls
                                     
                                   
               
               
               
               
               
               
               
               
               
               
               
               
                      sim:
       
       
         SerOut PORTE.0, 813, ["OK"]
         SerIn PORTE.1, 813, 2000, TimeoutError, [SerData[1]]
                               SerIn PORTE.1, 813, 2000, TimeoutError, [SerData[1]]
           Print  SerData[1]
              Print  SerData[2]
           DelayMS 3000
             Cls
        GoTo sim       
               
               
               
               
               
               
                  simm:
                             SerIn PORTE.1, 813, 2000, TimeoutError, [SerData[1]]
                               SerIn PORTE.1, 813, 2000, TimeoutError, [SerData[1]]
                                 
           Print  SerData[1]
             Print  SerData[2]
           DelayMS 500
          Cls
              DelayMS 500
         
               GoTo simm   
               
               
         
               
     
               
               
         
         
         
   
         
         
               
       
   
   okuma:
      a = HRSIn, {2000, Timeout} ' Receive a byte serially into Var1
   If a = "$" Then
         
                       a = HRSIn, {1000, Timeout} ' Receive a byte serially into Var1
   If a = "G" Then
        a = HRSIn, {1000, Timeout} ' Receive a byte serially into Var1
   If a = "P" Then
        a = HRSIn, {1000, Timeout} ' Receive a byte serially into Var1
   If a = "R" Then
        a = HRSIn, {1000, Timeout} ' Receive a byte serially into Var1
   If a = "M" Then
        a = HRSIn, {1000, Timeout} ' Receive a byte serially into Var1
   If a = "C" Then
         a = HRSIn, {1000, Timeout} ' Receive a byte serially into Var1
  If a = "," Then
       For say=0 To 59
          gel[say] = HRSIn, {1000, Timeout}
         ' if   gel[say] ="," then
          'say = say - 1
          'end if
         ' gel[say] = a
       Next
 
   
   
    For a= 0 To 16
   Print gel[a]
     ' Print At  1,a+1,  gel[a]
    Next
     ' For a= 16 To 31
   ' Print gel[a]
      'Print At 2,a+1,   gel[a]
   ' Next

          DelayMS 2000
              Cls
      End If
            End If 
          End If 
            End If 
              End If 
                End If 
                End If

   GoTo okuma
   
   
        yazz:
       yazxx:             
      '  SerIn PORTE.1, 813,6000, TimeoutError, [a]
       '  if a= 13 or a=10 or a= 32 then
        ' goto yazx
         'end if
                 SerIn PORTE.1, 813, 20000, TimeoutError, [a]
                   SerIn PORTE.1, 813, 20000, TimeoutError, [a]
                     SerIn PORTE.1, 813, 20000, TimeoutError, [a]
                       SerIn PORTE.1, 813, 20000, TimeoutError, [a]
                         SerIn PORTE.1, 813, 20000, TimeoutError, [a]
                           SerIn PORTE.1, 813, 20000, TimeoutError, [a]
                             SerIn PORTE.1, 813, 20000, TimeoutError, [a]
                               SerIn PORTE.1, 813, 20000, TimeoutError, [a]
                                 SerIn PORTE.1, 813, 20000, TimeoutError, [a]
                                   SerIn PORTE.1, 813, 20000, TimeoutError, [a]
                                     SerIn PORTE.1, 813, 20000, TimeoutError, [a]
                                       SerIn PORTE.1, 813, 20000, TimeoutError, [a]
                                         SerIn PORTE.1, 813, 20000, TimeoutError, [a]
                                           SerIn PORTE.1, 813, 20000, TimeoutError, [a]
                                             SerIn PORTE.1, 813, 20000, TimeoutError, [a]
                                               SerIn PORTE.1, 813, 20000, TimeoutError, [a]
                                                 SerIn PORTE.1, 813, 20000, TimeoutError, [a]
                                                  SerIn PORTE.1, 813, 20000, TimeoutError, [a]
                           SerIn PORTE.1, 813, 20000, TimeoutError, [a]
                             SerIn PORTE.1, 813, 20000, TimeoutError, [a]
                               SerIn PORTE.1, 813, 20000, TimeoutError, [a]
                                 SerIn PORTE.1, 813, 20000, TimeoutError, [a]
                                   SerIn PORTE.1, 813, 20000, TimeoutError, [a]
                                     SerIn PORTE.1, 813, 20000, TimeoutError, [a]
                                       SerIn PORTE.1, 813, 20000, TimeoutError, [a]
                                         SerIn PORTE.1, 813, 20000, TimeoutError, [a]
                                           SerIn PORTE.1, 813, 20000, TimeoutError, [a]
                                             SerIn PORTE.1, 813, 20000, TimeoutError, [a]
                       
                     
               
              For say=0 To 15
                  SerIn PORTE.1, 813, 2000, TimeoutError, [a]
         If a= 13 Or a=10 Or a= 32 Then
         Dec say
         GoTo rrr
         End If
              Print At 1,say,  a
              rrr:
            Next         
                     
                              DelayMS 2000
                                 Return
   
   
   
   
     
       yaz:
       yazx:             
      '  SerIn PORTE.1, 813,6000, TimeoutError, [a]
       '  if a= 13 or a=10 or a= 32 then
        ' goto yazx
         'end if
                 SerIn PORTE.1, 813, 20000, TimeoutError, [a]
           
               
              For say=0 To 15
                  SerIn PORTE.1, 813, 2000, TimeoutError, [a]
         If a= 13 Or a=10 Or a= 32 Then
         Dec say
         GoTo rr
         End If
              Print At 1,say,  a
              rr:
            Next         
                     
                              DelayMS 2000
                                 Return
                                  TimeoutError:
Print At 2,1,  "Timed Out"
DelayMS 500   
Return
GoTo bas
                             
                             
                             
                              Cls
                             
                             
                         
   
   


Timeout:
'Cls
Print "TIMED OUT" ' Display an error if Hrsin timed out
'Print At 2,1,  " Gcam control   "
DelayMS 1000
     Cls
   GoTo okuma
   Return
   
     
   End
Başlık: Ynt: Proton ile Sim800L kullanımı ile ilgili
Gönderen: mustafa_cmbz - 11 Ocak 2019, 19:53:39
bunu böyle yapana kadar bi txt dosyası olarak paylaşaydın keşke..Program başında maşallah kaç kez konfig yazmışsınız..
Başlık: Ynt: Proton ile Sim800L kullanımı ile ilgili
Gönderen: elektroacemi - 17 Ocak 2019, 10:05:56
Merhabalar.
Bir sorunum var. Gelen verimin uzunluğunu sürekli değişiyor.
Dim SerData[10] As Byte  '*** Örneğin burasını 10 karakter alacak şekilde tanımlıyorum

Again:
LEDS=0: LEDK=0
HSerIn 1000, TimeoutError, [Str SerData] '*** Başka cihazdan 6 karakter yollayınca veriyi alıp ATLA kısmına
GoTo ATLA                                  '*** geçmiyor, 7 karakter yollarsam geçiyor. Ne kadar karakter
                                          '*** gelirse o kadarını alıp diziye atmayı nasıl yapabilirim.
TimeoutError:
LEDS=1
Call  BEKLE
GoTo Again

ATLA:
Başlık: Ynt: Proton ile Sim800L kullanımı ile ilgili
Gönderen: elektroacemi - 17 Ocak 2019, 12:05:21
Aşağıdaki gibi çözdüm ama ne kadar sağlıklı olur bilmiyorum
Dim SerData[250] As Byte
Dim SerData2[250] As Byte

Again:
LEDS=1
Call   BEKLE
LEDS=0: LEDK=0

SerData[0]="*"

HSerIn 1000 , TimeoutError ,[Str SerData, Str SerData2]

GoTo ATLA
TimeoutError:
LEDS=1
Call   BEKLE
If SerData[0]="*" Then Again

ATLA: