اطلاعیه

Collapse
No announcement yet.

تابع دریافت موقعیت GPS در SIM808

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    تابع دریافت موقعیت GPS در SIM808

    سلام
    خیلی وقته با ماژول SIM808 کار میکنم و همه جور مشکلات رو تونستم یاد بگیرم باهاش به دوزبان
    در زبان بسکام همه کار کاردن رو باهاش یاد گرفتم الان در کدویژن اطلاعات جی پی اس رو چطوری بخونم ؟
    مثلا یه تابعی مثل این نمونه پایین باشه که هروقت فراخوانی کردمش مختصات رو بگیرم یا سرعت رو بگیرم
    این تابع برای دریافت اس ام اس هست
    کد:
    void ATCMGR_send(void){
    
    
       int count2 = 0,count_s = 0; //count_s for count the  
     
        for(count = 0;buffer[count]!='\0';count ++)
        {
            buffer[count] ='\0';
        }
        lcd_clear();
        lcd_putsf("CMGR ");
        printf("AT+CMGR=1%c",ENT);
        for(count=0;(buffer[count-2]!='O' && buffer[count]!=ENT);count ++) buffer[count]=getchar(); 
        lcd_putsf("--> OK");
        delay_ms(2000);
         
        for(count=0,count2=0,count_s=0;buffer[count]!='\0';count ++)
        {
            if(buffer[count]==J_COT) count_s ++;
            if(count_s == 3)
            {
                if(buffer[count]!= J_COT)
                {
                    number_txt[count2]=buffer[count];
                    count2++;
                }
            }
            if(count_s== 4) count2 = 0;
            if(count_s== 8)
            {
                if(buffer[count]!= J_COT && buffer[count]!=ENT && buffer[count]!=LINE_FEED && buffer[count]!= 'O' && buffer[count]!='K')
                {
                    sms_txt[count2]=buffer[count];
                    count2 ++;
                }
            }
        }
        delay_ms(500);
        lcd_clear();
        lcd_puts(number_txt);
        lcd_gotoxy(0,1);
        lcd_puts(sms_txt);
        delay_ms(2000);
        //lcd_clear();
    }//ATCMGR_send
    یا راهی داره که بشه همین تابع رو تغییر داد که مختصات رو بگیره
    یعنی بعد از روشن کردن جی پی اس با این فرمان AT+CGPSINF=0 مقدار X,Y رو بگیرم ؟
    جدیدترین ویرایش توسط abbasalifix; ۲۱:۰۷ ۱۳۹۶/۰۵/۰۲.
    مدت هاست نیستم

    #2
    پاسخ : تابع دریافت موقعیت GPS در SIM808

    شما باید ابتدا بایستی موتور GNSS رو فعال کنید.
    AT+CGNSPWR=1
    بعد از اون می تونید با دستور AT+CGNSINF و در صورت fix شدن موقعیتتون اطلاعات ارسالی از ماهواره رو دریافت کنید.

    دیدگاه


      #3
      پاسخ : تابع دریافت موقعیت GPS در SIM808

      نوشته اصلی توسط jafarhabibi نمایش پست ها
      شما باید ابتدا بایستی موتور GNSS رو فعال کنید.
      AT+CGNSPWR=1
      بعد از اون می تونید با دستور AT+CGNSINF و در صورت fix شدن موقعیتتون اطلاعات ارسالی از ماهواره رو دریافت کنید.
      این رو که خودمم میدونم
      میگم در زبان بسکام 100 درصد انجام دادم یا بلوتوث و ترمینال هم انجام دادم الان در کدویژن میخوام یاد بگیرم که چطور دیتای دریافتی رو با تغییرات در این تابع دریافت کنم
      مدت هاست نیستم

      دیدگاه


        #4
        پاسخ : تابع دریافت موقعیت GPS در SIM808

        سلام دوستان
        برای اینکه اطاعات بدست اومده از gps رو جدا جدا داخل رشته قرار بدم و بعدا هر کدوم که خواستم استفاده کنم باید چی کار کنم.؟؟؟

        مثلا:
        اطلاعات گرفته شده از GPS
        کد:
        +CGNSINF: 1,1,20160501124254.000,47.199897,9.442750,473.500,0.35,36.8,1,,1.1,1.9,1.6,,13,7,,,39,, OK
        حالا من میخوام اطلاعاتی که بین کاراکتر (,) کاما قرار داره رو جدا جداد کنم
        اینطوری:
        TIMEDATE = 20160501124254.000
        A=
        ,47.199897,9
        B=
        ,9.442750,473

        لطفا راهنمایی کنید
        ممنون

        دیدگاه


          #5
          پاسخ : تابع دریافت موقعیت GPS در SIM808

          چه زبانی ؟
          مدت هاست نیستم

          دیدگاه


            #6
            پاسخ : تابع دریافت موقعیت GPS در SIM808

            نوشته اصلی توسط abbasalifix نمایش پست ها
            چه زبانی ؟
            سلام
            زبان سی
            ممنون

            دیدگاه


              #7
              پاسخ : تابع دریافت موقعیت GPS در SIM808

              اطلاعات گرفته شده از GPS +CGNSINF: 1,1,20160501124254.000,47.199897,9.442750,473.500, 0.35,36.8,1,,1.1,1.9,1.6,,13,7,,,39,, OK


              سلام
              برا جداسازی کار خاصی نمیخواد بکنی.
              اگه توجه کنی تمام رشته ها با + شروع میشن.وبعدش هر رشته ای که ذخیره کردی تو at command ها مشخصه که چی فرستاده .
              فقط باید در نظر بگیری که چه رشته ای رو گرفتی .بعدش به هر ویرگولی که بخوای میتونی با یه برنامه ساده برسی.نکته این کار هم همینه که تو هر رشته تعداد ویرگول ها و جایگاهشون همیشه ثابته و امکان اشتباه فرستادن نیست.پس باخیال راحت رشته ای که سیو کردی رو میتونی تفکیک کنی.مثلا َA که خواستی رو دربیارم.اول میرم میبینم که بعد ویرگول سوم هست حالا کافیه تو رشتم مکان ویرگول سوم رو پیدا کنم :
              for(i=0;i<sizeof(reshte);i++)
              {
              if(reshte[i]== ',')
              j++;
              if(j=='3')
              j=i;i=100;//jaye sevomin virgol moshakhas shod i=100 ya bishtar mi****m ke az halghe biron byayad
              }


              دیدگاه


                #8
                پاسخ : تابع دریافت موقعیت GPS در SIM808

                سلام
                خیلی ممنون بابت توضیح خوبتون
                ولی اگه ممکنه خیلی بیشتر توضیح بدید و مثال های دیگه هم بزنید خیلی ممنون
                من خیلی به این موضوع احتیاج دارم

                دیدگاه

                لطفا صبر کنید...
                X