پروژه ردیاب خودرو با ماژول سیم کارت Sim800L و NEO6 GPS
پروژه ردیاب خودرو با ماژول سیمکارت SIM800L و GPS NEO-6M
مقدمه
ردیاب خودرو یکی از پرکاربردترین پروژههای مبتنی بر اینترنت اشیا (IoT) است که برای افزایش امنیت و نظارت بر خودروها استفاده میشود. در این پروژه با استفاده از یک ماژول GPS NEO-6M برای دریافت موقعیت مکانی و یک ماژول GSM/GPRS SIM800L برای ارسال دادهها، میتوان یک ردیاب ساده و کارآمد طراحی کرد. این ردیاب قادر است موقعیت جغرافیایی خودرو را بهصورت پیامک (SMS) به شمارهی تعریفشده ارسال کند یا از طریق شبکه اینترنت به سرور منتقل نماید.
قطعات موردنیاز
برای ساخت یک نمونهی آموزشی ردیاب خودرو، به قطعات زیر نیاز داریم:
-
Arduino Nano یا معادل آن (برای پردازش و مدیریت دادهها).
-
ماژول GPS NEO-6M (برای دریافت طول و عرض جغرافیایی).
-
ماژول GSM SIM800L (برای ارسال داده از طریق پیامک یا اینترنت).
-
ماژول رگولاتور LM2596 (برای کاهش ولتاژ 12 ولت خودرو به 4 ولت موردنیاز SIM800L و 5 ولت آردوینو).
-
خازن الکترولیت 1000µF یا بالاتر (برای جلوگیری از ریست شدن ماژول SIM800L هنگام پیک جریان).
-
بردبُرد یا پِرفبُرد و سیمهای جامپر.
-
آنتن GSM و GPS.
-
سیمکارت فعال با شارژ و قابلیت پیامک/دیتا.
نحوه کارکرد پروژه
-
پس از روشن شدن سیستم، ماژول GPS شروع به دریافت اطلاعات از ماهوارهها میکند.
-
آردوینو دادههای NMEA دریافتی از GPS را پردازش کرده و موقعیت (Latitude, Longitude) را استخراج میکند.
-
کاربر میتواند با ارسال یک پیامک (مثلاً عبارت
loc) به ماژول، موقعیت لحظهای خودرو را دریافت کند. -
آردوینو فرمان را پردازش کرده و از طریق SIM800L یک پیامک شامل لینک Google Maps به شماره کاربر ارسال میکند.
نمونه فرمت پیام دریافتی در موبایل:
Location: https://maps.google.com/?q=35.6892,51.3890
شماتیک اتصال پایهها
-
GPS NEO-6M → Arduino
-
TX → D4 (SoftwareSerial RX)
-
RX → D3 (SoftwareSerial TX)
-
VCC → 3.3V یا 5V (بسته به مدل ماژول)
-
GND → GND
-
-
SIM800L → Arduino
-
TX → D8 (SoftwareSerial RX)
-
RX → D7 (با تقسیم ولتاژ از 5V به 4V)
-
VCC → 4.0V پایدار از LM2596
-
GND → GND مشترک
-
نمونه کد آردوینو (ارسال موقعیت از طریق SMS)
#include <SoftwareSerial.h>
#include <TinyGPS++.h>
SoftwareSerial sim800l(7, 8); // RX, TX برای SIM800L
SoftwareSerial gpsSerial(4, 3); // RX, TX برای GPS
TinyGPSPlus gps;
String smsText;
String phoneNumber = "+98912XXXXXXX"; // شماره مدیر
void setup() {
Serial.begin(9600);
sim800l.begin(9600);
gpsSerial.begin(9600);
delay(2000);
sendCommand("AT");
sendCommand("AT+CMGF=1"); // حالت پیامک متنی
sendCommand("AT+CNMI=1,2,0,0,0"); // دریافت SMS مستقیم
}
void loop() {
// پردازش GPS
while (gpsSerial.available() > 0) {
gps.encode(gpsSerial.read());
}
// بررسی پیامک دریافتی
if (sim800l.available()) {
smsText = sim800l.readString();
if (smsText.indexOf("loc") != -1) {
if (gps.location.isValid()) {
float lat = gps.location.lat();
float lon = gps.location.lng();
String link = "https://maps.google.com/?q=" + String(lat, 6) + "," + String(lon, 6);
sendSMS(phoneNumber, "Car Location:\n" + link);
} else {
sendSMS(phoneNumber, "GPS signal not found!");
}
}
}
}
void sendCommand(String cmd) {
sim800l.println(cmd);
delay(500);
}
void sendSMS(String number, String text) {
sim800l.println("AT+CMGS=\"" + number + "\"");
delay(1000);
sim800l.print(text);
delay(500);
sim800l.write(26); // CTRL+Z
delay(2000);
}
نکات مهم طراحی
-
تغذیه SIM800L: این ماژول به ولتاژ 3.7 تا 4.2 ولت و جریان لحظهای تا 2 آمپر نیاز دارد؛ بنابراین حتماً از ماژول LM2596 و خازن بزرگ استفاده کنید.
-
آنتن GPS: برای دریافت سریعتر موقعیت، آنتن GPS باید در فضای باز قرار گیرد.
-
تست در محیط واقعی: پس از مونتاژ، پروژه را داخل خودرو و در شرایط واقعی تست کنید تا از پایداری ولتاژ و قدرت سیگنال مطمئن شوید.
-
بهینهسازی: در نسخههای پیشرفته میتوان امکان ارسال داده به سرور اینترنتی، ذخیره اطلاعات روی کارت SD، یا اضافه کردن دکمه SOS را پیادهسازی کرد.
جمعبندی
پروژه ردیاب خودرو با استفاده از ماژولهای SIM800L و GPS NEO-6M یک نمونهی آموزشی و کاربردی برای ورود به دنیای اینترنت اشیا و سیستمهای امنیتی خودرو است. این پروژه به کاربران کمک میکند تا بهصورت عملی با مفاهیم ارتباطات GSM، پردازش دادههای GPS و کنترل آردوینو آشنا شوند. اگرچه این نسخه بیشتر برای آموزش طراحی شده، اما میتوان آن را با افزودن امکانات جانبی به یک ردیاب نیمهحرفهای نیز ارتقا داد.