سیستم ردیابی GPS و SMS یعنی چه؟ (برای مبتدی)
یک سیستم ضدسرقت GPS ترکیبی از دو فناوری است: GPS برای تعیین موقعیت جغرافیایی و GSM/SIM برای ارسال آن موقعیت از طریق پیامک (SMS) به گوشی شما. ماژول SIM800L یک ماژول کوچک GSM/GPRS است که با یک سیمکارت ایرانی (مثل همراه اول یا ایرانسل) کار میکند و میتواند SMS بفرستد.
سیستم کار میکند: وقتی شتابسنج یا سنسور تشخیص داد که UGV حرکت کرده (بدون اجازه)، Arduino GPS Fix میگیرد و یک لینک Google Maps مستقیم به شماره شما SMS میکند. شما لینک را باز میکنید و موقعیت دقیق را روی نقشه میبینید.
محصولی که میسازید
یک ترکر GPS کوچک که هنگام حرکت غیرمجاز موقعیت دقیق را به Google Maps لینک میدهد و SMS میکند.
- زمان ساخت: ۳ تا ۴ ساعت
- هزینه: ۵۰۰ تا ۸۰۰ هزار تومان
- نیاز: سیمکارت فعال با اعتبار SMS
قطعات لازم (BOM)
| قطعه | نقش |
|---|---|
| Arduino Nano | کنترلر اصلی |
| GPS NEO-6M با آنتن | موقعیت دقیق |
| SIM800L با هولدر SIM | ارسال SMS |
| MPU6050 (اختیاری) | تشخیص حرکت |
| باتری LiPo 1000mAh + شارژر TP4056 | منبع قدرت مستقل |
کد Arduino
#include <TinyGPS++.h>
#include <SoftwareSerial.h>
SoftwareSerial gpsSerial(4, 3); // GPS RX,TX
SoftwareSerial simSerial(7, 8); // SIM800L RX,TX
TinyGPSPlus gps;
const String PHONE = "+989123456789"; // شماره شما
const int VIBR_PIN = 2; // سنسور لرزش یا MPU6050 interrupt
bool alarmSent = false;
void sendSMS(String lat, String lon) {
simSerial.println("AT+CMGF=1"); delay(500);
simSerial.println("AT+CMGS=\"" + PHONE + "\""); delay(500);
String msg = "Alert! Location:\nhttps://maps.google.com/?q=" + lat + "," + lon;
simSerial.print(msg);
simSerial.write(26); // Ctrl+Z = ارسال
delay(3000);
}
void setup() {
gpsSerial.begin(9600);
simSerial.begin(9600);
pinMode(VIBR_PIN, INPUT_PULLUP);
Serial.begin(9600);
delay(3000); // SIM800L boot
}
void loop() {
while (gpsSerial.available()) gps.encode(gpsSerial.read());
if (digitalRead(VIBR_PIN) == LOW && !alarmSent) {
// منتظر GPS Fix
unsigned long wait = millis();
while (!gps.location.isValid() && millis()-wait < 30000)
while (gpsSerial.available()) gps.encode(gpsSerial.read());
if (gps.location.isValid()) {
String lat = String(gps.location.lat(), 6);
String lon = String(gps.location.lng(), 6);
sendSMS(lat, lon);
alarmSent = true;
Serial.println("SMS Sent: " + lat + "," + lon);
}
}
// ریست آلارم بعد از ۱۰ دقیقه
static unsigned long lastReset = 0;
if (alarmSent && millis()-lastReset > 600000) { alarmSent=false; lastReset=millis(); }
}
چکلیست تست
| تست | نتیجه |
|---|---|
| AT Command → SIM800L پاسخ OK میدهد؟ | بله — Serial Monitor |
| GPS در فضای باز Fix میگیرد؟ | چراغ چشمک آهسته = Fix |
| SMS با لینک Google Maps رسید؟ | لینک را باز کنید |
| دقت GPS < ۱۰ متر؟ | بله در فضای باز |