Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам > Проекты

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 04.12.2016, 20:57   #1
Bulatovor
Senior Member
 
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 799
Bulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond repute
По умолчанию GPS треккер для собачек

Собственно появилась необходимость одеть на своих собачек GPS треккер. Перебрав предложения на ali - чет они меня не впечатлили. Собственно решено было попробовать сделать.
Закуплены модули, аккумулятор и разъем


модули доработаны "отрежь все лишнее"



напечатана коробочка


и засунуто все в нее




по железу пока все

написан скетч в настоящее время он в большей мере сырой и отладочный - позволяет понять как работать с GSM и GPS модулями
PHP код:

//Подключение библиотек
#include <SoftwareSerial.h>
SoftwareSerial SerialGPS(1011); // RX, TX

#include <AltSoftSerial.h>
AltSoftSerial SerialGsm;

#include <CyberLib.h>// быстрое управление пинами

//#include <leOS2.h>// многозадачность
//leOS2 myOS;  //создать экземпляр класса 
/**********************Переменные************************/
// Общие
String NumberTelefone="+7хххххххххххх" ;// номер управляющего телефона
int x=0//счетчик для всяких циклов



//UART
String InputUART "";// строка для чтения UART модуля GSM

//GSM
String InputGSM "";// строка для чтения UART модуля GSM

//GPS
String IPTrack "5.9.136.109"// IP для передачи данных
String PortTrack "3355"// порт прередачи данных
String InputGPS "";// строка для чтения UART модуля GPS
String IDDataGPS;//Индетификатор данных
String TimeGPS;//170840.00  Время UTC: 17ч. 08м. 40.00 сек.
String reliabilityGPS;//A Статус достоверности: A – достоверные данные, V – недостоверные данные
String LatitudeData;//5509.68339  Широта: 55 градусов, 09.68339 минут
String LatitudeDir;//N N – северная, S – южная
String LongitudeData;//06125.49498 Долгота: 061 градусов, 25.49498 минут
String LongitudeDir;//E E – восточная, W – западная
String HSpeed;//0.204 Горизонтальная скорость (узлов в час)
String Course;//– Направление курса относительно истинного севера (градусы)
String DataGPS;//311015  Дата: 31 октября 2015 года
String MDeclination;//– Магнитное склонение (градусы)
String MDeclinationDir;//– Направление склонения: E – восточное, W – западное
String ModeGPS;//A Режим: A – автономный, D – дифференциальный, E – аппроксимация, N – недостоверные данные
String ChecksumGPS;//*7D Контрольная сумма


void setup()
{
D12_OutD12_Low// пин перезагрузки GSM
  
//открытие портов
 
Serial.begin(115200);
 

settinggsm(); //настройка GSM модуля// 
settingps(); //  настройка GPS  модуля

// запускаем задачи
//myOS.addTask (battery, myOS.convertMs(10000));// запускаем задачу проверки заряда 16*600 = раз в 10 секунд

Serial.println ("Setup end");
//SmsSend("Zapusk OK", NumberTelefone);
 
}

void loop() 
/*_________________________Проверка буферов UART________________________________________*/

 
if (SerialGPS.available()) { gpsread();};     //если есть данные GPS уходим в подпрограмму чтения
 
if (Serial.available())    { pcread(); };     //если есть данные c компа уходим в подпрограмму чтения
 
if (SerialGsm.available()) { gsmread();};     //если есть данные GSM/GPRS уходим в подпрограмму чтения





и отдельно функции -они на разных вкладках -потому немного отдельно
PHP код:
void settinggsm()
Serial.println("Reset GSM");
  
D12_Highdelay(5000); D12_Lowdelay(5000); //перезагрузка GSM
  
SerialGsm.begin(115200);// поднятие соединения
  //настройка модуля
  
CommandGSMR("AT\r""OK"500); // проверка связи с модемом
  
CommandGSMR("AT+IPR=9600\r""OK"500); //Изменение скорости UART
  
SerialGsm.begin(9600); delay(2000); // перезапуск соединения
  
CommandGSMR("AT+CMEE=2\r""OK"500); //режим сообщений ошибок
  
CommandGSMR("ate0\r""OK"500); //отключение эха порта
  
CommandGSMR("AT+CREG?\r""+CREG: 1"500); //проверка регистрации в сети
  //CommandGSMR("AT+CREG=0", "OK", 500);// запрет выдачи сообщений о смене регистрации сети

  //настройка СМС
  
CommandGSMR("AT+CMGF=1\r""OK"500); //включение текстового режима СМС
  
CommandGSMR("AT+CSCS=\"GSM\"\r""OK"500); //включение  режима кодировки СМС
  
CommandGSMR("AT+CNMI=2,2\r""OK"500); //включение  режима СМС сразу в монитор

//  ///*+++++++++++++++++++Настройка GPRS++++++++++++++++++++*/
//  //CommandGSM("AT+CIPSHUT\r", "OK",500);//Сброс всех подключений
//CommandGSMR("AT+CSTT= \"internet\", \"gdata\", \"megafon\"\r", "OK", 500); //Настройка точки доступа сети GPRS
//CommandGSMR("AT+CIICR\r", "OK", 5000); //Соединение с точкой доступа GPRS
//CommandGSMR("AT+CGATT?\r", "CGATT:1", 2000); //проверка регистрации в сети GPRS
//CommandGSMR("AT+CIFSR\r", "OK", 500); //Получение IP GPRS


};
void settingps()
SerialGPS.begin(9600); 
uint8_t buf[] = {0xB50x620x060x080x060x000x600xEA0x010x000x010x000x600x8C}; SerialGPS.write(bufsizeof(buf));  // данные 60 сек
delay(1000);
while(
SerialGPS.available()) { delay(2); SerialGPS.read(); };// очищаем буфер

};

void battery(){
Serial.print("Battery=");
Serial.println(A3_Read);
};

void CommandGSMR(String SString S1int t){ 
  
delay(100);// делаем паузу на предудущие всякие
  
while(SerialGsm.available()) { delay(2); SerialGsm.read(); }// очищаем буфер
  
SerialGsm.println(S); // шлем команду
   
delay(t);// пауза на ожидание ответа
  
for (int x 010++) 
  {
   while (
SerialGsm.available() > 0)//если в буфере что есть -читаем
  
char c SerialGsm.read();
    if (
== '\n') { break;} else { InputGSM += c;}}
    if ( 
InputGSM.indexOf(S1) >= ){InputGSM ""Serial.print (S); Serial.println ("-OK"); break; }else {InputGSM "";};
    if (
== 9) {Serial.print (S); Serial.println ("-NO");settinggsm();};
    
delay(300);
    };};
    
void CommandGSM(String SString S1int t){ 
  
delay(100);// делаем паузу на предудущие всякие
  
while(SerialGsm.available()) { delay(2); SerialGsm.read(); }// очищаем буфер
  
SerialGsm.println(S); // шлем команду
   
delay(t);// пауза на ожидание ответа
  
for (int x 010++) 
  {
   while (
SerialGsm.available() > 0)//если в буфере что есть -читаем
  
char c SerialGsm.read();
    if (
== '\n') { break;} else { InputGSM += c;}}
    if ( 
InputGSM.indexOf(S1) >= ){InputGSM ""Serial.print (S); Serial.println ("-OK"); break; }else {InputGSM "";};
    if (
== 9) {Serial.print (S); Serial.println ("-NO");};
    
delay(300);
    };};
    
void UartGsm(){
InputUART InputUART.substring(4);
Serial.print("Command GSM-");

Serial.println(InputUART);delay(300); 
SerialGsm.println(InputUART);
delay(300); 
InputUART "";
};

void SmsSend(String textSMSString numberSMS){
SerialGsm.println("AT+CMGS=\""+numberSMS+"\"");
delay(1000);
SerialGsm.print(textSMS);  // отправляем текст
SerialGsm.println((char)26);          // символ завершающий передачу
};

void SmsSend2(){
InputUART InputUART.substring(4);
Serial.println("SMSka");delay(300); 
SerialGsm.println("AT+CMGS=\""+NumberTelefone+"\"");
delay(1000);
SerialGsm.print(InputUART);  // отправляем текст
SerialGsm.print((char)26);          // символ завершающий передачу
Serial.println("ok");
InputUART "";
};
void HttpSend(){
InputUART InputUART.substring(5);
Serial.println("HTTPeshka!!!");delay(300);
CommandGSM("AT+CIPSHUT\r""OK",500);//Сброс всех подключений 
CommandGSM("AT+CIPSTART=\"TCP\",142804.dyn.ufanet.ru,100\r""OK",2000);
SerialGsm.write("AT+CIPSEND");
delay(6000);
SerialGsm.print(InputUART);  // отправляем текст
SerialGsm.print((char)26);          // символ завершающий передачу
Serial.println("ok");
InputUART "";
SerialGsm.write("AT+CIPCLOSE ");
};

void GpsSend(){
Serial.println("GPSka!!!");delay(300);

CommandGSM("AT+CIPSTART=\"TCP\",5.9.136.109,3355\r""CONNECT OK"2000);
SerialGsm.println("AT+CIPSEND");
      
delay(6000);
      
SerialGsm.print("imei:9969609,tracker,1310210424,,F,042445.000,A,5444.3184,N,5601.4117,E,10.00,50,20,20,20,20,20,20,20,20,20");
      
delay(1000);
      
SerialGsm.println((char)26);          // символ завершающий передачу
      
delay(1000);
      
Serial.println("ok GPS");
      
delay(1000);
      
SerialGsm.println("AT+CIPCLOSE");
InputUART "";
};
void gpsread()
{ while (
SerialGPS.available() > 0)
  { 
char d SerialGPS.read();
    if (
== '\n')
    { 
Serial.print("Input_string is: "); Serial.println(InputGPS);
      if ( 
InputGPS.indexOf("GPRMC") >= )
      {
        
char q1 InputGPS.indexOf(",");   char q2 0IDDataGPS InputGPS.substring(0q1);
        
q2 q1 1q1 InputGPS.indexOf(","q2); TimeGPS InputGPS.substring(q2q1);
        
q2 q1 1q1 InputGPS.indexOf(","q2); reliabilityGPS InputGPS.substring(q2q1);
        
q2 q1 1q1 InputGPS.indexOf(","q2); LatitudeData InputGPS.substring(q2q1);
        
q2 q1 1q1 InputGPS.indexOf(","q2); LatitudeDir InputGPS.substring(q2q1);
        
q2 q1 1q1 InputGPS.indexOf(","q2); LongitudeData InputGPS.substring(q2q1);
        
q2 q1 1q1 InputGPS.indexOf(","q2); LongitudeDir InputGPS.substring(q2q1);
        
q2 q1 1q1 InputGPS.indexOf(","q2); HSpeed InputGPS.substring(q2q1);
        
q2 q1 1q1 InputGPS.indexOf(","q2); Course InputGPS.substring(q2q1);
        
q2 q1 1q1 InputGPS.indexOf(","q2); DataGPS InputGPS.substring(q2q1);
        
q2 q1 1q1 InputGPS.indexOf(","q2); MDeclination InputGPS.substring(q2q1);
        
q2 q1 1q1 InputGPS.indexOf(","q2); MDeclinationDir InputGPS.substring(q2q1);
        
q2 q1 1q1 InputGPS.indexOf("*"q2); ModeGPS InputGPS.substring(q2q1);
        
q2 q1 1q1 InputGPS.indexOf("\n"q2); ChecksumGPS InputGPS.substring(q2q1);
        
InputGPS "";
        
        
      
CommandGSM("AT+CIPSTART=\"TCP\","+IPTrack+","+PortTrack+"\r""CONNECT OK"5000);
      
SerialGsm.println("AT+CIPSEND");
      
delay(6000);
      
SerialGsm.print("imei:9969609,tracker,1310210424,,F,"+TimeGPS+","+reliabilityGPS+","+LatitudeData+","+LatitudeDir+","+LongitudeData+","+LongitudeDir+","+HSpeed+","+Course+",1,2,3,4,");
      
delay(1000);
      
SerialGsm.println((char)26);          // символ завершающий передачу
      
delay(1000);
      
Serial.println("ok GPS");
      
delay(1000);
      
SerialGsm.println("AT+CIPCLOSE");
      
Serial.print("Battery=");
Serial.println(A3_Read);
     
      
      
      };
    }
    else {
      
InputGPS += d;
    }
  }

};
void gsmread()
{ while (
SerialGsm.available() > 0)
  { 
char c SerialGsm.read();
    if (
== '\n')
    { 
Serial.println(InputGSM);
      if ( 
InputGSM.indexOf("+CMT") >= ){InputGSM ""smsread();}
      else if ( 
InputGSM.indexOf("+CREG: 2") >= ){InputGSM ""settinggsm();}
      else {
InputGSM "";};
    }
    else { 
InputGSM += c;}
  }
};
void pcread()
{ while (
Serial.available() > 0)
  { 
char d Serial.read();
    if (
== '\r')
    {  
Serial.print("Polucheno-");Serial.println(InputUART);
       if (
InputUART.substring(0,3) == "GSM"){UartGsm();} 
       else if (
InputUART.substring(0,3) == "GPS"){InputUART ""Serial.println("GPSU");GpsSend();}
       else if (
InputUART.substring(0,3) == "SMS"){SmsSend2();} 
       else if (
InputUART.substring(0,4) == "HTTP"){Serial.println("HTTPeshka");HttpSend();}
       else {
InputUART "";};
    }
    else { 
InputUART += d;}
  };
};
void smsread()
{
    
InputGSM "";
    
Serial.println("SMSKA!!!!!!!!");
    
delay(100);
    while (
SerialGsm.available() > 0)
    { 
char c SerialGsm.read();
        if (
== '\n')
        {
            
Serial.print("Text SMS -  ");
            
Serial.print(InputGSM);
            
Serial.println("**");
            if    (
InputGSM.indexOf("fittnes")>= )
                {
uint8_t buf[] = {0xB50x620x060x080x060x000xE80x030x010x000x010x000x010x39}; SerialGPS.write(bufsizeof(buf));}  // данные 1 сек
            
else if(InputGSM.indexOf("beacon")>= ){uint8_t buf[] = {0xB50x620x060x080x060x000x880x130x010x000x010x000xB10x49}; SerialGPS.write(bufsizeof(        buf));}  // данные 5 сек
            
else if(InputGSM.indexOf("tracker")>= 0){uint8_t buf[] = {0xB50x620x060x080x060x000x600xEA0x010x000x010x000x600x8C}; SerialGPS.write(bufsizeof(        buf));}  // данные 60 сек
            
else if(InputGSM.indexOf("location")>= 0){SmsSend(LongitudeDataNumberTelefone);}  // смс с оординатами
            
else if(InputGSM.indexOf("battery")>= 0){SmsSend(String(A3_ReadDEC), NumberTelefone);}  // смс с оординатами
            
else if(InputGSM.indexOf("server")>= 0){GpsSend();}  // координаты на сайт
            
            
else   {SmsSend(InputGSMNumberTelefone);};
        }
        else {
InputGSM += c;};
        };
}; 

В общем на настоящий момент мы умеем определять координаты, слать их на треккер сайт(который показывает на карте и строит трек), обмениваться разными смсками.

Все выложено в сыром виде, потому как есть вопросы (ну куда же без них). А самый главный - вообще чего он должен уметь делать -так сказать функционал
Bulatovor вне форума   Ответить с цитированием
Старый 04.12.2016, 21:41   #2
Bulatovor
Senior Member
 
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 799
Bulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond repute
По умолчанию Re: GPS треккер для собачек

Ну а теперь о проблемах. Железо сборное - с питанием бардак. У GPS и GSM модулей уровни сигналов 3.3, но питаются не ниже 4,5 - иначе не заводятся. Аккумулятор на 3,7 вольта( заряжается до 4,2). Соответственно от USB идет на контроллер заряда, от него на аккумулятор и повыситель напряжения. От последнего уже все питаются. Это делает невозможным пока решение проблем по энергопотреблению. Планирую сделать питание модулей от арудуино через транзистор(кстати какой можете порекомендовать - главное миниатюрность, но пишут что GSM модуль способен запросить аж 2 ампера - хотя ни разу не наблюдал). Так же arduino Pro mini перепрошить на 3,3 вольта.
И еще в планах поставить кнопочку или даже 2. Для управления и отключения питания. Подскажите самую миниатюрную кнопку с фиксацией?

Что касается программной части. Пока данные передаются на сервер - как его называют -универсальный китайский протокол - не все серверы его понимают. У кого есть протокол от нормальных устройств, желательно без контрольных сумм или примером скетча по их подсчету. Из слов "контрольная сумма определяется шестнадцетибитным сложением от аперасанда до звездочки" я понимаю только где эти самые аперсанд и звездочка.
И еще не смог найти серверы по типу для фитнесс браслетов -чтоб определяли пройденное расстояние, среднюю и максимальную скорость - ну всякие плюшки.

ЗЫ по доработке железа - надо еще выдрать все светодиоы - у меня собакин как нвогодняя ёлка - мигают синенький, зелененький и пара красненьких диодов - думаю на елке на новый год сыкономить - а потом выпаять

Последний раз редактировалось Bulatovor; 04.12.2016 в 22:12.
Bulatovor вне форума   Ответить с цитированием
Старый 04.12.2016, 23:58   #3
paulerr
Senior Member
 
Регистрация: 04.01.2013
Адрес: Москва
Сообщений: 461
Вес репутации: 1152
paulerr has a reputation beyond reputepaulerr has a reputation beyond reputepaulerr has a reputation beyond reputepaulerr has a reputation beyond reputepaulerr has a reputation beyond reputepaulerr has a reputation beyond reputepaulerr has a reputation beyond reputepaulerr has a reputation beyond reputepaulerr has a reputation beyond reputepaulerr has a reputation beyond reputepaulerr has a reputation beyond repute
По умолчанию Re: GPS треккер для собачек

А не смотрели в сторону устройств типа SIM908? Это GPRS+GPS, деталек меньше будет, коробка меньше, легче таскать ...
А светодиоды оставте, в темное время легче животинку искать

Последний раз редактировалось paulerr; 05.12.2016 в 00:01.
paulerr вне форума   Ответить с цитированием
Старый 05.12.2016, 00:04   #4
Bulatovor
Senior Member
 
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 799
Bulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond repute
По умолчанию Re: GPS треккер для собачек

Да псине и так не тяжело, а у 908 ценник выше разумного
Bulatovor вне форума   Ответить с цитированием
Старый 05.12.2016, 14:09   #5
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9820
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Re: GPS треккер для собачек

Для экономии батарейки нужно использовать спящий режим
Я думаю что у GPS и GPRS есть такая команда
Если нет такой команды, то тогда mosfet на питание и управлять питанием периферии с контроллера ардуино
ардуину тоже переводить в sleep
Admin вне форума   Ответить с цитированием
Старый 05.12.2016, 14:21   #6
Bulatovor
Senior Member
 
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 799
Bulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond repute
По умолчанию Re: GPS треккер для собачек

команда то есть, я только пока не могу придумать логику её применения. Точнее при каких обстоятельствах нужен вывод в спящий режим. Мне ведь нужно чтоб работало на прогулках, а дома можно заряжать. Только если при заряде менее допустим 15% уводить устройство в режим маяка и уж не до треков - а просто чтоб просыпалось и раз в 5 минут сообщало координаты - на случай потери питомца.
Bulatovor вне форума   Ответить с цитированием
Старый 05.12.2016, 14:31   #7
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9820
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Re: GPS треккер для собачек

Можно уводить в сон на 10- 15 сек. потом будить, выполнить требуемые действия и опять в сон на 10-15 сек.
У меня бесконтактные смесители на батарейках. Батареек хватает на 1-2 года
Так на нем контроллер уходит в слип всего на 1 сек. После после просыпания проверяет датчик и опять в сон на 1 сек.
Admin вне форума   Ответить с цитированием
Старый 05.12.2016, 22:19   #8
Bulatovor
Senior Member
 
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 799
Bulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond repute
По умолчанию Re: GPS треккер для собачек

поставил мосфет и емкостную кнопку. Теперь думаю над алгоритмом. Смысла отправлять на короткие в слипы не вижу. Просыпание и настройка gsm модуля занимает секунд 10. А смски, если отправлены когда GSM не в сети оператор повторно отправляет не сразу. Так что по кнопке или низкому заряду - питание модулей отключается, контроллер в спячку - просыпается по прерыванию по кнопке или по времени
Bulatovor вне форума   Ответить с цитированием
Старый 06.12.2016, 00:31   #9
Bulatovor
Senior Member
 
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 799
Bulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond repute
По умолчанию Re: GPS треккер для собачек

По моей просьбе http://livegpstracks.com/ сделал протокол для нужд разработчиков
PHP код:
Облегченный открытый RTT-протокол версии 003

Сервер
srv1.livegpstracks.com или 5.9.136.109
Порт
3359
Устройство для выбора из списка при подключении
RTT Lite

От устройства приходит строка с данными
Пример:
Код:
rtt003,356217625371625,-59.4364251,-129.9839853,0023,0014,123,090,20130618,195430,-11,24,60,A,1
В ответ сервер выдаст 
"\r\n"Под "\r\n" понимается последовательность 0x0D0x0A.

Расшифровка пакета:
Протокол"rtt003", (string) 6 символов
imei
"356217625371625", (string) 15 символов
долгота
"-59.4364251", (float) 11 символов
широта
"-129.9839853", (float) 12 символов
скорость
"23", (int) 2 символа
высота
"14", (int) 2 символа
азимут
"123", (int) 3 символа
заряд батареи
"90"в процентах, (int) 3 символа
дата
"20130618", (string) 8 символов
время
"195430", (string) 6 символов
UTC
"-11", (int) 3 символа
количество спутников
"24", (int) 2 символа
уровень GSM сигнала
"60", (int) 2 символа
признак GPS или LBS
"A" (координаты определены по GPS или "V" по LBS), (string) 1 символ
SOS
"1" (сработала кнопка SOSили "0" (не нажата), (int) 1 символ 
Bulatovor вне форума   Ответить с цитированием
Старый 06.12.2016, 02:13   #10
paulerr
Senior Member
 
Регистрация: 04.01.2013
Адрес: Москва
Сообщений: 461
Вес репутации: 1152
paulerr has a reputation beyond reputepaulerr has a reputation beyond reputepaulerr has a reputation beyond reputepaulerr has a reputation beyond reputepaulerr has a reputation beyond reputepaulerr has a reputation beyond reputepaulerr has a reputation beyond reputepaulerr has a reputation beyond reputepaulerr has a reputation beyond reputepaulerr has a reputation beyond reputepaulerr has a reputation beyond repute
По умолчанию Re: GPS треккер для собачек

на тему экономии элетричества: можно прикрутить аксельрометр, и частоту передачи информации брать от его данных. Например, если есть движение, то чаще, нет - реже.
paulerr вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 23:50. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика