Мы используем файлы cookie

и системы аналитики для улучшения работы сайта

gps маяк своими руками
Электромонтаж
Электромонтажные работы Красногородск
+7 906 220 1185
Дмитрий
Красногородск
  • Главная
  • Услуги
  • Электрика
  • вольт
  • Контакты
  • Главная
    /
  • вольт
    /
  • /

Электромонтажные работы

      КВАРТИРЫ И СТУДИИ

    ОФИСНЫЕ ПОМЕЩЕНИЯ

        ЧАСТНЫЕ ДОМА

 GPS Маяк своими руками

 GPS маяк с отправкой координат в виде смс на мобилу.

 

 

Сборка GPS маяка своими руками . Данный GPS маяк собран на базе  контроллера  ATMEGA 328 3.3v 8    Mhz Arduino PRO mini.

   GPS маяк отправляет координаты в виде текстового смс сообщение на мобильный номер телефона

 Для того чтобы получить координаты место нахождение маячка нужно позвонить на него.Он сбросит     вызов и отправит координаты .

                                GPS маяк

    Питание  12 вольт

    Ток потребление  55 мА 

    Размер 6 х 4 х 2 см

    Контроллер     Arduino pro mini 3.3v 8mhz

    GSM  модуль    Neoway M590

    GPS модуль     NEO- 6M

    DC-DC преобразователь 20 to 0.5v

 

 

  //      Скетч++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++Код.

 
 #include <TinyGPS++.h>
#include <EEPROM.h>
#include <SoftwareSerial.h>

#define LED 13

boolean GSMSMSflag = 0;           // команда на отправку SMS

TinyGPSPlus gps;


SoftwareSerial ss(11, 12);         //  для GPS приемника
#define gsm Serial                //  для Gsm приемника
 
 

void setup()
{
  delay(1000);
  Serial.begin(9600);         
  ss.begin(9600);                // скорость GPS
  gsm.begin(9600);               // скорость GSM M590
 
  delay(100);
  Serial.println("start");
  pinMode(LED, OUTPUT);

 
  GSMSMSflag = EEPROM.read(0);    //  достаем флаг
 
Serial.println("modem");
            // нужно дождатся включения модема и соединения с сетью
  delay(2000);    
//  while(gsm.find("STARTUP"));          /// ждем команды от модема  
  gsm.println("ATE0");                   // выключаем эхо  
 
  while(1){                              // ждем подключение модема к сети
        gsm.println("AT+COPS?");
        if (gsm.find("+COPS: 0")) break;
           digitalWrite(LED, LOW);               // блымаем светодиодом
           delay(50);  
           digitalWrite(LED, HIGH);  
           delay(500);
   }
    
     gsm.println("AT+CMGF=1");            //настройки для SMS
     delay(100);
     gsm.println("AT+CSCS="GSM"");   
           
Serial.println("Modem OK");
     digitalWrite(LED, LOW);               // блымаем светодиодом
     delay(1500);  
     digitalWrite(LED, HIGH);
     delay(250);
     digitalWrite(LED, LOW);  

}


void loop(){

  if (GSMSMSflag == 0){                     // если флаг ожидания команды от модема
  // ищим RING   
    while(gsm.find("RING")){                    // если нашли RING
      gsm.println("AT+CLIP=1");              // включаем АОН,
            
      while(1){                              // в цикле
       if (gsm.find("79#########")){            // ищим номер телефона, если нашли
         GSMSMSflag = 1;                     // меняем режим  
         EEPROM.write(0, GSMSMSflag);        // пишим его в еепром
         break;                              // и выходим
       }  
       else{                                 // иначе
         gsm.println("AT+CPAS");             // спрашиваем состояние модема   
         delay(100);
         if (gsm.find("+CPAS: 0")) break;    // и если он в "готовности", выходим из цикла
       }                                     // если звонок в процессе, возвращает +CPAS: 3
      }                                      // и крутимся дальше
       
        gsm.println("AT+CLIP=0");            // выключаем АОН,
        delay(500);
        gsm.println("ATH0");                 // сбрасываем вызов

         digitalWrite(LED, LOW);             // сигнализируем об этом
         delay(500);  
         digitalWrite(LED, HIGH);
         delay(250);
         digitalWrite(LED, LOW);   
      delay(1500);
    Serial.print(" AT+CMGD=1,4");
    }
  }
 
  if (GSMSMSflag == 1){                               //  если сменился режим
    do{          
      do{                                             //  в цикле забераем данные от GPS
         while (ss.available() > 0) gps.encode(ss.read());
       Serial.print(F("Location: "));
  if (gps.location.isValid())
  {
    Serial.print(gps.location.lat(), 6);
    Serial.print(F(","));
    Serial.print(gps.location.lng(), 6);
  }
  else
  {
    Serial.print(F("INVALID"));
  }

  Serial.print(F("  Date/Time: "));
  if (gps.date.isValid())
  {
    Serial.print(gps.date.month());
    Serial.print(F("/"));
    Serial.print(gps.date.day());
    Serial.print(F("/"));
    Serial.print(gps.date.year());
  }
  else
  {
    Serial.print(F("INVALID"));
  }

  Serial.print(F(" "));
  if (gps.time.isValid())
  {
    if (gps.time.hour() < 10) Serial.print(F("0"));
    Serial.print(gps.time.hour());
    Serial.print(F(":"));
    if (gps.time.minute() < 10) Serial.print(F("0"));
    Serial.print(gps.time.minute());
    Serial.print(F(":"));
    if (gps.time.second() < 10) Serial.print(F("0"));
    Serial.print(gps.time.second());
    Serial.print(F("."));
    if (gps.time.centisecond() < 10) Serial.print(F("0"));
    Serial.print(gps.time.centisecond());
  }
  else
  {
    Serial.print(F("INVALID"));
  }
 
  Serial.print(F(" "));
  if (gps.speed.isValid())  {
    Serial.print(gps.speed.kmph());
  }
 
  Serial.println();

    }while (!gps.location.isUpdated() && gps.location.age() >1500);   
    }while (!gps.location.isValid());                  //  циклЫ крутим пока не убедимся что получили свежие данные  
Serial.println("ok");                           // отправляем SMS
     delay(5000);
  Serial.print("AT+CMGS="); // отправляем смс
    Serial.print((char)34);
    Serial.print("89#########"); // номер получателя
 Serial.print((char)34); // символ кавычки "
   Serial.print((char)13); // символ (ASCII character 13)
    delay(1500);
    Serial.print(gps.location.lat(), 6);     // передаем координаты
   Serial.print(",");
    Serial.print(gps.location.lng(), 6);

   Serial.print(" S:");                     // передаем скорость движения
   Serial.print(gps.speed.kmph());

 Serial.print(" T:");                     // передаем время с GPS
      if (gps.time.hour() < 10) gsm.print("0");
 Serial.print(gps.time.hour());
  Serial.print(":");
//    
 Serial.print(gps.time.minute());
 Serial.print((char)26);                 // символ завершающий передачу
       delay(5000);   
 GSMSMSflag = 0;                         // меняем режим  
      EEPROM.write(0, GSMSMSflag);            // пишим его в еепром
      
  }
   
}

///+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++////

Схема GPS маячка.

GPS на Arduino pro mini

    Добавить комментарий
    Введите код с картинки
    Необходимо согласие на обработку персональных данных
    Повторная отправка формы через:
    • Главная
    • Услуги
    • Электрика
    • вольт
    • Контакты
    ×Убрать копирайт

    Сайт создан на 1C-UMI

    Работает на UMI.CMS

    Сайт создан с помощью 1C-UMI. Создайте свой сайт или интернет-магазин бесплатно >>
    Политика конфиденциальности

    Поделиться с друзьями: