Press "Enter" to skip to content

راه اندازی ماژول جی پی اس GPS با آردوینو

جی پی اس چیست؟

سیستم موقعیت یاب جهانی (GPS) یک سیستم مکان یابی مبتنی بر ماهواره است که از حداقل 24 ماهواره تشکیل شده است. GPS در هر شرایط آب و هوایی، در هر نقطه از جهان، 24 ساعت شبانه روز بدون هزینه اشتراک یا هزینه راه اندازی کار می کند.

GPS چگونه کار می کند؟

ماهواره‌های جی‌پی‌اس دو بار در روز در مداری دقیق دور زمین می‌چرخند. هر ماهواره سیگنال و پارامترهای مداری منحصربه‌فردی را ارسال می‌کند که به دستگاه‌های GPS امکان رمزگشایی و محاسبه مکان دقیق ماهواره را می‌دهد. گیرنده‌های GPS از این اطلاعات و سه لایه برای محاسبه مکان دقیق کاربر استفاده می‌کنند. اساساً گیرنده GPS فاصله تا هر ماهواره را بر اساس مدت زمان دریافت سیگنال ارسالی اندازه گیری می کند. با اندازه گیری فاصله از چند ماهواره دیگر، گیرنده می تواند موقعیت دقیق کاربر را تعیین کرده و آن را نمایش دهد.

برای محاسبه موقعیت 2 بعدی (طول و عرض جغرافیایی) و ردیابی حرکت، یک گیرنده GPS باید روی سیگنال حداقل 3 ماهواره قفل باشد. با اتصال به 4 ماهواره یا بیشتر، گیرنده می تواند موقعیت 3 بعدی شما را تعیین کند یعنی عرض جغرافیایی، طول جغرافیایی و ارتفاع. به طور کلی، یک گیرنده GPS تعداد 8 یا بیشتر ماهواره را ردیابی می کند، اما این بستگی به زمان و مکان شما بر روی زمین دارد.

ماژول GPS NEO-6M

ماژول جی پی اس NEO-6M در شکل زیر نشان داده شده است. این ماژول دارای آنتن خارجی است و پین های هدر ندارد.بنابراین باید آن را لحیم کاری کنید.

ماژول GPS NEO-6M

قلب این ماژول یک تراشه جی‌پی‌اس NEO-6M از u-blox است که می‌تواند تا 22 ماهواره را در 50 کانال ردیابی کند و به بالاترین سطح حساسیت صنعت یعنی ردیابی -161 دسی‌بل دست یابد، در حالی که تنها 45 میلی آمپر جریان مصرف می‌کند. موتور موقعیت یابی Blox 6 همچنین دارای Time-To-First-Fix (TTFF) کمتر از 1 ثانیه است. یکی از بهترین ویژگی هایی که تراشه ارائه می دهد حالت ذخیره انرژی (PSM) است. این امکان کاهش مصرف انرژی سیستم را با سوئیچینگ انتخابی فراهم می کند. این به طور چشمگیری مصرف انرژی ماژول را به تنها 11 میلی آمپر کاهش می‌دهد و آن را برای برنامه‌های حساس به انرژی مانند ساعت مچی GPS مناسب می‌کند. این ماژول از نرخ باود از 4800bps تا 230400bps با باود پیش فرض 9600 پشتیبانی می کند.

یک LED روی ماژول جی‌پی‌اس NEO-6M وجود دارد که وضعیت رفع موقعیت را نشان می‌دهد. بسته به حالتی که در آن باشد با سرعت‌های مختلفی چشمک می‌زند.

ماژول GPS NEO-6M

بدون چشمک زدن ==> به این معنی است که در حال جستجو برای ماهواره است.
هر 1 ثانیه چشمک زدن ==> به این معنی که روی ماهواره ها قفل شده است.

اتصال ماژول GPS به آردوینو

اتصال ماژول جی پی اس و اتصال ال سی دی کاراکتری به آردوینو ساده است. شماتیک مدار در زیر نشان داده شده است.

اتصال ماژول GPS به آردوینو

اتصالات ال سی دی کاراکتری به آردوینو

  • VSS ==> GND
  • VCC ==> 5V
  • VEE ==> 10K Resistor
  • RS ==> A0 (Analog pin)
  • R/W ==> GND
  • E ==> A1
  • D4 ==> A2
  • D5 ==> A3
  • D6 ==> A4
  • D7 ==> A5
  • LED+ ==> VCC
  • LED- ==> GND

پین های ماژول جی پی اس Neo-6M

  • GND پایه زمین است و باید به پایه GND در آردوینو متصل شود.
  • TxD (فرستنده) پین برای ارتباط سریال استفاده می شود.
  • RxD (گیرنده) برای ارتباط سریال استفاده می شود.
  • VCC برق ماژول را تامین می کند. می توانید مستقیماً آن را به پایه 5 ولت آردوینو متصل کنید.

اتصالات ماژول GPS به آردوینو

  • GND ==> GND
  • TX ==> Digital pin (D3)
  • RX ==> Digital pin (D4)
  • Vcc ==> 3.3 V

کد ماژول GPS برای آردوینو

#include <LiquidCrystal.h>
#include <SoftwareSerial.h>
#include <TinyGPS.h>
//long   lat,lon; // متغیر طول و عرض
float lat = 28.5458,lon = 77.1703; //متغیر طول و عرض 
SoftwareSerial gpsSerial(3,4);//rx,tx
LiquidCrystal lcd(A0,A1,A2,A3,A4,A5);
TinyGPS gps; // ایجاد آبجکت از کتابخانه جی پی اس
void setup(){
Serial.begin(9600); // ارتباط سریال
//Serial.println("The GPS Received Signal:");
gpsSerial.begin(9600); // اتصال سنسور
lcd.begin(16,2);
}
 
void loop(){
    while(gpsSerial.available()){ // چک کردن داده ها
    if(gps.encode(gpsSerial.read()))// رمزگشایی داده ها
    { 
    gps.f_get_position(&lat,&lon); //دریافت طول و عرض
    // نمایش موقعیت
    lcd.clear();
    lcd.setCursor(1,0);
    lcd.print("GPS Signal");
    //Serial.print("Position: ");
    //Serial.print("Latitude:");
    //Serial.print(lat,6);
    //Serial.print(";");
    //Serial.print("Longitude:");
    //Serial.println(lon,6); 
    lcd.setCursor(1,0);
    lcd.print("LAT:");
    lcd.setCursor(5,0);
    lcd.print(lat);
    //Serial.print(lat);
    //Serial.print(" ");
    
    lcd.setCursor(0,1);
    lcd.print(",LON:");
    lcd.setCursor(5,1);
    lcd.print(lon);
    
   }
  }
  
  String latitude = String(lat,6);
    String longitude = String(lon,6);
  Serial.println(latitude+";"+longitude);
  delay(1000);
  
}
5/5 - (3 امتیاز)

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد.