مقدمه
برای مسیریابی معمولا از ماژول های GPS استفاده می شود. ولی روش های جایگزینی هم برای مسیریابی وجود دارد.
در این آموزش شما با ساخت یک سیستم مسیریابی با استفاده از ماژول GSM و آردوینو آشنا می شوید.
آنچه در این آموزش یاد میگیرید
- خلاصه ای از استفاده ی GSM با آردوینو
- ساخت یک سیستم مکانیابی با GSM و آردوینو
مسیریابی
لوازمی که به آن احتیاج دارید
سخت افزارهای مورد نیاز
نرم افزارهای مورد نیاز
سیم بندی
کد
- ابتدا باید کتابخانه ی ماژول SIM900 را از لینک زیر دانلود کرده و نصب کنید سپس کد را روی آردوینو آپلود کنید.
- اگر برای اولین بار است که از آردوینو استفاده می کنید، نگران نباشید. کافیست مراحل زیر را دنبال کنید.
- به آدرس www.arduino.cc/en/Main/Software رفته و نرم افزار IDE را متناسب با سیستم عامل خود دانلود و نصب کنید.
نرم افزار Arduino IDE را اجرا کنید. تمام کد های پیش فرض را پاک کرده و کد زیر را به جای آن کپی کنید. - برای نصب کتابخانه ، از پنجره ی Sketch و بخش Include Library، گزینه ی Add .ZIP Library را انتخاب کنید و فایل کتابخانه ای که دانلود کردید را انتخاب کنید.
نوع آردوینو خود را از پنجره ی Tools و قسمت Board انتخاب کنید. - پورتی که (COM) آردوینو به آن متصل است را در پنجره ی Tools انتخاب کنید.
دکمه ی Upload (شکلی که شبیه فلش است) را بزنید تا کد شما روی آردوینو آپلود شود.
شما با موفقیت کد خود را روی آردوینو ریختید.
دانلود کتابخانه ی SIM800:
SIM900 Arduino Shield
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 Commands
برای آماده کردن ماژول 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)
سلام.من نفهمیدم آخرش چهچیز را ردیابی میکند آیا برای ردیابی به قطعه دیگری نیاز داریم؟و میتوان به جای این نوع ماژول نوع های دیگر GSM را جایگزین کنیم چون قیمتش ۹۰۰هزار و نوعهای دیگر GSM از ۲۰۰ هزار هست؟و چه نوع آردوینو UNO استفاده کنیم چون قیمت انواع آن هم تفاوت دارد؛؛؟
با سلام
دلیل استفاده از این مدل ماژول GSM و قیمت بالایش این می باشد که به صورت داخلی دارای GPS هم می باشد و از طریق آن موقعیت را می تواند تشخیص بدهد.
می توانید از مدل های دیگر GSM هم استفاده کنید ولی ماژول GPS جدا هم باید تهیه کنید و کنار آن قرار بدهید تا اطلاعات موقعیت را از آن بخوانید.
در مورد مدل آردوینو هم هر مدلی را استفاده کنید اوکی هست و فرقی ندارند. حتی از مدل های nano یا mega نیز می توانید استفاده کنید.
ماژول GPS موقعیت یاب جغرافیایی NEO 6M محصول GY هم ۲۰۰ هزار هست میتوان با همین سیستم شما کار کنه
کد مربوط به آن را باید جدا بزنید و از لایبراری مربوطه به آن استفاده کنید.
سلام وقتتون بخیر،
ببخشید من ماژول sim800l دارم با gps neo6،
برای راه اندازی میشه کد های برنامه ماژول سیم رو بزنم بعد در ادامه کدهای تابع gps رو بزنم، یا نه باید این کدها با توجه به دستورات باید ادغام بشن؟
با سلام
از آنجایی که هر 2 این ماژول ها از پروتکل سریال برای ارتباط استفاده میکنن.
در نتیجه شما باید هر کدام از این ماژول ها را به یک پورت سریال جدا وصل کنید و هر تابع را بسته به همون ماژول بر همون لاین دیتا ارسال کنید. و درصورتی که میکرو شما مانند ESP32 قدرتمند باشد، می توانید همزمان به هر 2 کامند بدهید و با هم تداخل پیدا نکنند.
این امکان نیز وجود ندارد که این 2 ماژول را بر روی یک لاین دیتا مشترک استفاده کنید.