Gsm/Gps Tracker


Closed Thread
Results 1 to 40 of 53

Thread: Gsm/Gps Tracker

Hybrid View

  1. #1


    Did you find this post helpful? Yes | No

    Default

    Hi,

    This is for conecting a nokia phone and a pic, you will control the phone from the pic, later i will post a code where you can with a serial gps send a sms with the gps data.

    Xau.

  2. #2


    Did you find this post helpful? Yes | No

    Default

    Here is my full and working code for a gps/alarme/gsm.


    *********************************************
    @ Device HS_OSC
    define OSC 20

    Include "modedefs.bas" ' Include serial modes


    Clear
    sms var byte[10]
    numero VAR BYTE[12]
    Lat var byte[11]
    Long var byte[11]

    TrisB.7=0 ' LIGA GSM
    TrisB.6=1 ' IGNIÇÃO
    TrisB.5=1 ' SENSORES
    TrisB.4=0 ' FEXA PORTAS
    TrisB.3=0 ' PISCAS
    TrisB.2=0 ' IMOBLIZA
    TrisB.1=0 ' ?????????????
    TrisB.0=0 ' LED OK VERDE

    TrisC.4=1 ' RX BT
    TrisC.5=0 ' TX BT
    TrisC.6=0 ' TX GSM
    TrisC.7=1 ' RX GSM

    TrisD.1=1 ' RX GPS

    Low PortB.1
    Low PortB.2
    Low PortB.3

    Inicio:
    Low PortB.0
    Pause 500
    High PortB.0
    Pause 500
    Low PortB.0
    Pause 500
    High PortB.0
    Pause 500
    Low PortB.0
    Pause 500
    High PortB.0
    Pause 500
    Low PortB.0
    Pause 2000

    UM:
    Low PortB.1
    HSEROUT["at",13,10]
    HSERIN 10000,UM,[WAIT("OK")]
    LCDOut $FE, 1,"ON"
    HIGH PortB.0

    DOIS:
    serin2 portD.1, 188, [WAIT("$GPRMC,"),skip 13, STR LAT\11,skip 1, STR Long\12]
    High PortB.1


    HSEROUT["AT+CMGF=1",13,10]' Modo Texto
    HSERIN 10000,UM,[WAIT("OK")]


    HSEROUT["AT+CMGR=1",13,10] ' Ler sms
    HSERIN 5000,UM,[WAIT("REC UNREAD"),skip 3, STR numero\13,skip 27,STR sms\10]


    IF sms[0]="S" and sms[1]="t" and sms[2]="o" and sms[3]="p" Then
    goto Tranca
    Endif

    IF sms[0]="C" and sms[1]="e" and sms[2]="l" and sms[3]="i" and sms[4]="a" Then
    goto Destranca
    Endif

    IF sms[0]="P" and sms[1]="o" and sms[2]="s" Then
    goto PO
    Endif

    Goto APAGA

    Tranca:
    High PortB.3 'Piscas
    Pause 500
    High PortB.2 ' Imobliza
    Goto PO

    Destranca:
    Low PortB.3 'Piscas
    Low PortB.2 ' Imobliza
    Goto APAGA

    Liga: ' LIGA GSM
    High PortB.7
    Pause 20000
    Goto UM

    PO: ' Envia localizacao
    HSEROUT["AT+CMGS=",34,"+351xxxx32xxx", 34,13] ' Phone number to get the gps sms data
    hserin 10000,PO,[WAIT(">")]
    HSEROUT["LAT: ",LAT (10),"-", LAT, lat (1),"'",lat (2),Lat(3),".",lat (5),lat(6),lat (7),lat(8),$fe,$c0,"LON: ", Long(11),"-", Long (1),long (2),"'",Long (3),long (4),".",Long (6),long (7),long(8),long (9),13,10]
    HSEROUT[26]


    APAGA:
    HSerout ["AT+CMGD=1",13,10]' apaga sms 1
    hserin 10000,APAGA,[WAIT("OK")]
    HSerout ["AT+CMGD=2",13,10]
    Pause 5000
    goto Inicio

    End
    ************************************************** ********

    I get sender number (numero VAR BYTE[12]) but cant use it in the HSEROUT["AT+CMGS=",34,"+351xxxx32xxx", 34,13] i try HSEROUT["AT+CMGS=",34,"Str numero", 34,13] but no sucess can the masters give me some hellp?
    Thanks

    Xau
    Last edited by camolas; - 27th October 2008 at 18:28.

  3. #3
    Join Date
    Nov 2003
    Location
    Wellton, U.S.A.
    Posts
    5,924


    Did you find this post helpful? Yes | No

    Default

    I get sender number (numero VAR BYTE[12]) but cant use it in the HSEROUT["AT+CMGS=",34,"+351xxxx32xxx", 34,13] i try HSEROUT["AT+CMGS=",34,"Str numero", 34,13] but no sucess
    Try sending "numero" like you are for "lat" and "Lon", one piece at a time.
    Dave
    Always wear safety glasses while programming.

  4. #4
    Join Date
    May 2008
    Location
    Italy
    Posts
    825


    Did you find this post helpful? Yes | No

    Default

    Camola, try the following:

    Use a larger array in such a way that you can accomodate the calling string in the initial part of the array:

    Arry[0]=65
    Arry[1]=84
    Arry[2]=43
    Arry[3]=67
    Arry[4]=77
    Arry[5]=71
    Arry[6]=83
    ArrY[7]=43

    The above sequence contains the string AT+CMGS=+

    Than you tranfer the sender number (12 bytes) in Arry[8] to Arry[19]. Remember that last byte should always be Arry[20]=13
    At this point you can make the call:


    For A0=0 to 20
    serout Mtx,T9600,[Arry[A0]]
    Next A0

    Immediatly after the call you have to wait the modem acknowledge ">". Here an example of code:

    Flag=0
    WSend:
    Flag=Flag+1
    if Flag>20 then NoSMS
    Serin MRx,T9600,500,WSend,[ ">"] , A0
    If A0=32 then SendTxt
    serout Mtx,T9600,[27]
    pause 5000
    goto NoSMS

    The code above will jump to label "SendTxt" if the modem answer corectly, otherwise it will abort the call with ascii 27 and jump to label "NoSMS"

    At label "SendTxt" you will wite your code to send your string.

    Naturally you should change Serin/Serout to fit your code

    Al.
    Last edited by aratti; - 28th October 2008 at 11:19.

  5. #5


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by aratti View Post
    Camola, try the following:

    Use a larger array in such a way that you can accomodate the calling string in the initial part of the array:

    Arry[0]=65
    Arry[1]=84
    Arry[2]=43
    Arry[3]=67
    Arry[4]=77
    Arry[5]=71
    Arry[6]=83
    ArrY[7]=43

    The above sequence contains the string AT+CMGS=+

    Than you tranfer the sender number (12 bytes) in Arry[8] to Arry[19]. Remember that last byte should always be Arry[20]=13
    At this point you can make the call:


    Al.
    Hi,

    Can you please explain this part i do not now how i will put the numbers that i get from the array "numero" to the "Arry" one in ascii.

    Thanks,

    Xau

  6. #6
    Join Date
    Sep 2004
    Location
    montreal, canada
    Posts
    6,898


    Did you find this post helpful? Yes | No

    Default

    Look the ASCII table

    A=65
    T=84
    and so on

    the above could also be written like...

    Code:
    Arry[0]="A"
    Arry[1]="T"
    // etc etc etc
    Steve

    It's not a bug, it's a random feature.
    There's no problem, only learning opportunities.

  7. #7
    Join Date
    Nov 2003
    Location
    Wellton, U.S.A.
    Posts
    5,924


    Did you find this post helpful? Yes | No

    Default

    Not sure if this will help you now or not, but it might.
    http://www.picbasic.co.uk/forum/showthread.php?t=544
    Dave
    Always wear safety glasses while programming.

  8. #8


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by mackrackit View Post
    Try sending "numero" like you are for "lat" and "Lon", one piece at a time.
    Hi,

    I will try it then i will post the results.

    Thanks,

    Xau

Similar Threads

  1. solar tracker controller
    By CIRE in forum mel PIC BASIC Pro
    Replies: 41
    Last Post: - 15th November 2016, 15:16
  2. Help Idea Off infrared tracker
    By jetpr in forum General
    Replies: 5
    Last Post: - 11th September 2008, 08:22
  3. Replies: 1
    Last Post: - 27th July 2008, 06:14

Members who have read this thread : 1

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts