نمایش نتایج: از 1 به 7 از 7
Like Tree1 لایک
  • 1 Post By magmagmary

موضوع: gps

  1. #1
    Member
    تاریخ عضویت
    May 2016
    نوشته ها
    94

    gps

    کد


    #include <SoftwareSerial.h>

    SoftwareSerial gpsSerial(10, 11); // RX, TX (TX not used)
    const int sentenceSize = 80;
    int state;

    long times=0;
    long timer=0;
    long timel=0;
    long timen=0;

    char sentence[sentenceSize];

    void setup()
    {
    Serial.begin(9600);
    pinMode(2,INPUT);
    gpsSerial.begin(9600);
    }

    void loop()
    {
    static int i = 0;
    if (gpsSerial.available())
    {
    state=digitalRead(2);
    char ch = gpsSerial.read();

    if (ch != '\n' && i < sentenceSize)
    {
    sentence[i] = ch;
    i++;
    }
    else
    {
    sentence[i] = '\0';
    timen=millis();
    timel=timer - timen;
    i = 0;
    if(state == HIGH)
    {
    state=0;
    displayGPSemerg();
    }
    if(state==LOW && timel <= 0){
    times = millis();
    timer = times+4000;
    displayGPS();
    }
    }


    }
    }

    void displayGPS()
    {
    char field[20];
    getField(field, 0);
    if (strcmp(field, "$GPRMC") == 0)
    {
    // Set up the SMS
    Serial.println("AT");
    delay(20);
    Serial.println("AT+CMGF=1");
    delay(20);
    Serial.println("AT+CMGS=\"09356256637\""); //CHANGE TO DESTINATION NUMBER
    delay(20);

    // Send the GPS data
    Serial.print("Lat: ");
    getField(field, 3); // number
    Serial.print(field);
    getField(field, 4); // N/S
    Serial.print(field);

    Serial.print(" Long: ");
    getField(field, 5); // number
    Serial.print(field);
    getField(field, 6); // E/W
    Serial.println(field);

    // End the SMS
    Serial.write(26);
    delay(500);
    }
    }

    void displayGPSemerg()
    {
    char field[20];
    getField(field, 0);
    if (strcmp(field, "$GPRMC") == 0)
    {
    // Set up the SMS
    Serial.println("AT");
    delay(20);
    Serial.println("AT+CMGF=1");
    delay(20);
    Serial.println("AT+CMGS=\"09356256637\""); //CHANGE TO DESTINATION NUMBER
    delay(20);

    // Send the GPS data
    Serial.print("Lat: ");
    getField(field, 3); // number
    Serial.print(field);
    getField(field, 4); // N/S
    Serial.print(field);

    Serial.print(" Long: ");
    getField(field, 5); // number
    Serial.print(field);
    getField(field, 6); // E/W
    Serial.println(field);
    Serial.print(" Im not very well !!!! ");
    // End the SMS
    Serial.write(26);
    delay(500);
    }
    }

    void getField(char* buffer, int index)
    {
    int sentencePos = 0;
    int fieldPos = 0;
    int commaCount = 0;
    while (sentencePos < sentenceSize)
    {
    if (sentence[sentencePos] == ',')
    {
    commaCount ++;
    sentencePos ++;
    }
    if (commaCount == index)
    {
    buffer[fieldPos] = sentence[sentencePos];
    fieldPos ++;
    }
    sentencePos ++;
    }
    buffer[fieldPos] = '\0';
    }

    سلام تو این کد من میخوام هر ۲۵ دقیقه موقیعت جغرافیایی رو به موبایل ارسال کنه و همچنین اگه کلید روشن شد دوباره اون اطلاعات رو بفرسته به همراه یک جمله حالا من می خوام اگه کلید ۲ دقیقه خاموش شد اون مختصات با جمله ارسال بشه ( اگه حتی یک دقیقه و سی ثانیه هم خاموش بود اون مختصات ارسال نشه و برنامه به کار خود ادامه بده تا ۲۵ دقیقه طول بکشه تا اطلاعات رو بفرسته و اگه تا قبل از این ۲۵ دقیقه کلید ۲ دقیقه خاموش شد اون مختصات رو با جمله بفرسته و وقتی ۲۵ دقبقه کامل شد مختصات رو بفرسته بدون هیچ جمله ای و برنامه بعد به کار خود ادامه بده ....... بدون هیچ توقفی )


    ممنون میشم کمک کنید فقد سریع چون عجله دارم .....

  2. #2
    Member
    تاریخ عضویت
    May 2016
    نوشته ها
    94
    کسی نیست کمک کنه من واقعا عجله دارم باید تا پس فردا این رو تحویل بدم مشکل من فقط تو این که اگه ممکن هست راهنمایی کنید و اگه می توانید کدش رو برام بفرستید چون من چند بار براش کد رو نوشتم جواب نميده .....

  3. #3
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    3,995
    دوست عزیز بعید میدونم کسی وقت داشته باشه براتون کد رو آماده بنویسه

    شما بفرمایید از کدوم قسمتش جواب نگرفتید؟

  4. #4
    Member
    تاریخ عضویت
    May 2016
    نوشته ها
    94
    اینکه اگه کلید دو دقیقه خاموش بود موقعیت جغرافیایی با جمله فرستاده شه که جمله رو تو کد خودم نوشتم پس فقط اگه کلید دو دقیقه خاموش شد اون جمله رو بفرسته

  5. #5
    Member
    تاریخ عضویت
    May 2016
    نوشته ها
    94
    فقط یک نکته تو کدی که فرستادم دو نوع موقعیت میفرسته یکی به صورت اتوماتیک هر ۲۵ دقیقه و یکی موقیت با یک جمله که اگه کلیدبه مدت ۲ دقهقه خاموش شد موقعیت با جمله ارسال شه که من تو این مشکل دارم .....

  6. #6
    Member
    تاریخ عضویت
    May 2016
    نوشته ها
    94
    کسی نیست کمک کنه .....

  7. #7
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    3,995
    نقل قول نوشته اصلی توسط peyman180 نمایش پست ها
    کسی نیست کمک کنه .....
    ببین من نمیتونم تو کدت دست ببرم ولی برات کدی می نویسم که وصعیت یک پین رو هر 2 دقیقه چک کنه و اگر تو دقیقه خاموش بود بعد از دو دقیقه یه کاری بکنه :
    کد:
    
    const int SWpin =  13;      // the number of the LED pin
    long previousMillis = 0;        // will store last time LED was updated
    long interval = 120000;           // interval at which to blink (milliseconds)
    
    
    void setup() {
      // set the digital pin as output:
      pinMode(SWpin, INPUT);
    }
    
    
    void loop()
    {
      unsigned long currentMillis = millis();
      if ( swState() == LOW) {
        if (currentMillis - previousMillis > interval) {
        previousMillis = currentMillis;
        //send GPS data
      }
    }
    if ( swState() == HIGH) {
        previousMillis = currentMillis;
      }
    }
    
    
    bool swState() {
      int data = digitalRead(SWpin);
      if (data == HIGH) {
        return HIGH;
      }
      if (data == LOW) {
        return LOW;
      }
    }
    روند این کد به این صورت هست که میاد توی لوپ وضعیت پین سوئیچ رو دائم چک می کنه
    اگر LOW بود میاد چک میکنه از آخرین باری که دیتا ارسال شده دو دقه گذشته یا نه
    اگه گذشته باشه دستور ارسال دیتا رو می نویسه
    اگر نگذشته باشه کاری نمی کنه

    اگر هم وضعیت سوئیچ HIGH بود میاد آخرین زمان رو آپدیت می کنه
    لایک کردن

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  

SEO by vBSEO