راهنمای ساخت سیستم مکانیابی مختصات جغرافیایی با آردوینو و ماژول GSM

فهرست مطالب

مقدمه

برای مسیریابی معمولا از ماژول های GPS استفاده می شود. ولی روش های جایگزینی هم برای مسیریابی وجود دارد.

در این آموزش شما با ساخت یک سیستم مسیریابی با استفاده از ماژول GSM و آردوینو آشنا می شوید.

آنچه در این آموزش یاد می‌گیرید

مسیریابی

در سیستم های مسیریابی، معمولا ایستگاه رادیویی سیگنال هایی به اطراف خود ارسال می کند. این سیگنال ها شامل مختصات دقیق ایستگاه هستند. مهم نیست که دستگاهی که این سیگنال ها را دریافت می کند ثابت باشد و یا متحرک. دستگاه برای فهمیدن مختصات خود فقط کافیست مختصات ایستگاه ها را در هر لحظه داشته باشد.
در این پروژه از ماژول GSM برای یافتن مختصات استفاده شده است.وقتی ماژول GSM به شبکه متصل می شود، اطلاعاتی راجع به مختصات نیز دریافت می کند.

لوازمی که به آن احتیاج دارید

سخت افزارهای مورد نیاز

آردوینوUNO × 1
ماژول SIM900 × 1

نرم افزارهای مورد نیاز

Arduino IDE

سیم بندی

کد

  1. ابتدا باید کتابخانه ی ماژول SIM900 را از لینک زیر دانلود کرده و نصب کنید سپس کد را روی آردوینو آپلود کنید.
  2. اگر برای اولین بار است که از آردوینو استفاده می کنید، نگران نباشید. کافیست مراحل زیر را دنبال کنید.
  3. به آدرس www.arduino.cc/en/Main/Software رفته و نرم افزار IDE را متناسب با سیستم عامل خود دانلود و نصب کنید.
    نرم افزار Arduino IDE را اجرا کنید. تمام کد های پیش فرض را پاک کرده و کد زیر را به جای آن کپی کنید.
  4. برای نصب کتابخانه ، از پنجره ی Sketch و بخش Include Library، گزینه ی Add .ZIP Library را انتخاب کنید و فایل کتابخانه ای که دانلود کردید را انتخاب کنید.
    نوع آردوینو خود را از پنجره ی Tools و قسمت Board انتخاب کنید.
  5. پورتی که (COM) آردوینو به آن متصل است را در پنجره ی Tools انتخاب کنید.
    دکمه ی Upload (شکلی که شبیه فلش است) را بزنید تا کد شما روی آردوینو آپلود شود.
    شما با موفقیت کد خود را روی آردوینو ریختید.

دانلود کتابخانه ی SIM800:


SIM900 Arduino Shield

#include "SIM900.h"
#include "SoftwareSerial.h"
//#include "inetGSM.h"
//#include "sms.h"
//#include "call.h"

//To change pins for Software Serial, use the two lines in GSM.cpp.

//GSM Shield for Arduino
//this code is based on the example of Arduino Labs.

//Simple sketch to communicate with SIM900 through AT commands.

//InetGSM inet;
//CallGSM call;
//SMSGSM sms;

int numdata;
char inSerial[40];
int i=0;


void setup()
{
     //Serial connection.
     Serial.begin(9600);
     Serial.println("GSM Shield testing.");
     //Start configuration of shield with baudrate.
     //For http uses is raccomanded to use 4800 or slower.
     if (gsm.begin(9600))
          Serial.println("\nstatus=READY");
     else Serial.println("\nstatus=IDLE");
};

void loop()
{
     //Read for new byte on serial hardware,
     //and write them on NewSoftSerial.
     serialhwread();
     //Read for new byte on NewSoftSerial.
     serialswread();
};

void serialhwread()
{
     i=0;
     if (Serial.available() > 0) {
          while (Serial.available() > 0) {
               inSerial[i]=(Serial.read());
               delay(10);
               i++;
          }

          inSerial[i]='\0';
          if(!strcmp(inSerial,"/END")) {
               Serial.println("_");
               inSerial[0]=0x1a;
               inSerial[1]='\0';
               gsm.SimpleWriteln(inSerial);
          }
          //Send a saved AT command using serial port.
          if(!strcmp(inSerial,"TEST")) {
               Serial.println("SIGNAL QUALITY");
               gsm.SimpleWriteln("AT+CSQ");
          } else {
               Serial.println(inSerial);
               gsm.SimpleWriteln(inSerial);
          }
          inSerial[0]='\0';
     }
}

void serialswread()
{
     gsm.SimpleRead();
}

ماژول های GSM مثل SIM900 از دستورات AT command پشتیبانی می کنند. به همین دلیل راه اندازی آن ها بسیار ساده است.

برای آشنایی با AT command های SIM900 می توانید فایل زیر را دانلود کنید.

دستورات SIM900:

برای آماده کردن ماژول SIM900 برای دریافت مختصات جعرافیایی به دستورات زیر نیاز دارید:

AT+CGATT =1 

این دستور GPRS را فعال می کند.

AT+SAPBR =3,1,"CONTYPE","GPRS"
AT+SAPBR =3,1,"APN","RCMNET"
AT+SAPBR=1,1
AT+SAPBR=2,1
AT+CIPGSMLOC=1,1
در انتها، این دستور مختصات جغرافیایی، تاریخ و زمان را دریافت می کند.
توجه

برای مشاهده ی مختصات جغرافیایی روی نقشه ی Google، باید ترتیب مختصات x و y را که به دست آوردید به y و x تغییر دهید (برای جزئیات بیشتر به GIF مراجعه کنید).

از این مطلب خوشتان آمد؟

آخرین مطالت و آموزش ها را در ایمیلتان دریافت کنید:

مطالب بیشتر

Comments (6)

  • مصطفی Reply

    سلام.من نفهمیدم آخرش چهچیز را ردیابی میکند آیا برای ردیابی به قطعه دیگری نیاز داریم؟و میتوان به جای این نوع ماژول نوع های دیگر GSM را جایگزین کنیم چون قیمتش ۹۰۰هزار و نوعهای دیگر GSM از ۲۰۰ هزار هست؟و چه نوع آردوینو UNO استفاده کنیم چون قیمت انواع آن هم تفاوت دارد؛؛؟

    آگوست 3, 2023 at 6:24 ق.ظ
    • محمد دمیرچی Reply

      با سلام
      دلیل استفاده از این مدل ماژول GSM و قیمت بالایش این می باشد که به صورت داخلی دارای GPS هم می باشد و از طریق آن موقعیت را می تواند تشخیص بدهد.
      می توانید از مدل های دیگر GSM هم استفاده کنید ولی ماژول GPS جدا هم باید تهیه کنید و کنار آن قرار بدهید تا اطلاعات موقعیت را از آن بخوانید.
      در مورد مدل آردوینو هم هر مدلی را استفاده کنید اوکی هست و فرقی ندارند. حتی از مدل های nano یا mega نیز می توانید استفاده کنید.

      آگوست 5, 2023 at 12:31 ب.ظ
  • مصطفی Reply

    ماژول GPS موقعیت یاب جغرافیایی NEO 6M محصول GY هم ۲۰۰ هزار هست میتوان با همین سیستم شما کار کنه

    آگوست 3, 2023 at 6:30 ق.ظ
    • محمد دمیرچی Reply

      کد مربوط به آن را باید جدا بزنید و از لایبراری مربوطه به آن استفاده کنید.

      آگوست 5, 2023 at 12:32 ب.ظ
      • MTA Reply

        سلام وقتتون بخیر،
        ببخشید من ماژول sim800l دارم با gps neo6،
        برای راه اندازی میشه کد های برنامه ماژول سیم رو بزنم بعد در ادامه کدهای تابع gps رو بزنم، یا نه باید این کدها با توجه به دستورات باید ادغام بشن؟

        دسامبر 7, 2023 at 10:11 ب.ظ
        • محمد دمیرچی Reply

          با سلام
          از آنجایی که هر 2 این ماژول ها از پروتکل سریال برای ارتباط استفاده میکنن.
          در نتیجه شما باید هر کدام از این ماژول ها را به یک پورت سریال جدا وصل کنید و هر تابع را بسته به همون ماژول بر همون لاین دیتا ارسال کنید. و درصورتی که میکرو شما مانند ESP32 قدرتمند باشد، می توانید همزمان به هر 2 کامند بدهید و با هم تداخل پیدا نکنند.
          این امکان نیز وجود ندارد که این 2 ماژول را بر روی یک لاین دیتا مشترک استفاده کنید.

          دسامبر 9, 2023 at 10:58 ق.ظ

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

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