gps и доступ извне
Модератор: immortal
-
- Сообщения: 395
- Зарегистрирован: Вт май 31, 2016 6:56 pm
- Откуда: Россия Карелия Петрозаводск
- Благодарил (а): 95 раз
- Поблагодарили: 57 раз
Re: Модуль GPS-трекер
Как сделать так:
Я говорю "Где находится Вася"
MD смотрит текущие координаты присланные с трекера.
Узнает адрес этих координат, например улица дом, популярный магазин.
И отвечает в терминал голосом "Вася сейчас на улице Пушкина 11 у магазина Магнит"
???
Я говорю "Где находится Вася"
MD смотрит текущие координаты присланные с трекера.
Узнает адрес этих координат, например улица дом, популярный магазин.
И отвечает в терминал голосом "Вася сейчас на улице Пушкина 11 у магазина Магнит"
???
Сервер МД на x86 micro pc ssd + HDD, OC Debian, терминал Xiaomi Redmi note 7
Мои исходники для мд управляемых устройств https://github.com/vgamaev/ESPMDDEVICE
Мои исходники для мд управляемых устройств https://github.com/vgamaev/ESPMDDEVICE
-
- Сообщения: 295
- Зарегистрирован: Вт апр 23, 2013 5:16 pm
- Откуда: Брянск
- Благодарил (а): 18 раз
- Поблагодарили: 94 раза
Re: Модуль GPS-трекер
Где-то тут на форуме было написано как это сделать, у гугла/яндекса есть такой сервис. Так же можете у меня в коннекте посмотреть.
- За это сообщение автора Dark_Veter поблагодарил:
- VladPTZ (Чт сен 22, 2016 11:15 am)
- Рейтинг: 1.16%
Debian GNU/Linux 7.9 (wheezy), версия 0.9.0b, Connect
-
- Сообщения: 395
- Зарегистрирован: Вт май 31, 2016 6:56 pm
- Откуда: Россия Карелия Петрозаводск
- Благодарил (а): 95 раз
- Поблагодарили: 57 раз
Re: Модуль GPS-трекер
http://majordomo.smartliving.ru/forum/v ... 917#p37917VladPTZ писал(а):Как сделать так:
Я говорю "Где находится Вася"
MD смотрит текущие координаты присланные с трекера.
Узнает адрес этих координат, например улица дом, популярный магазин.
И отвечает в терминал голосом "Вася сейчас на улице Пушкина 11 у магазина Магнит"
???
Сервер МД на x86 micro pc ssd + HDD, OC Debian, терминал Xiaomi Redmi note 7
Мои исходники для мд управляемых устройств https://github.com/vgamaev/ESPMDDEVICE
Мои исходники для мд управляемых устройств https://github.com/vgamaev/ESPMDDEVICE
-
- Сообщения: 39
- Зарегистрирован: Ср сен 21, 2016 9:03 am
- Благодарил (а): 4 раза
- Поблагодарили: 5 раз
Re: Модуль GPS-трекер
Добрый день всем!
Вернусь к вопросу Big Brother GPS для ANdroid:
Как ему указать логин/пароль для заливки данных через CONNECT?
Наружу высовываться не очень хочу (белый IP есть....)...
Через VPN все работает, да не могу android заставить поднимать VPN автоматически... А вручную - неудобно...
К TASKERам и прочим другим механизмам прибегать не хочется...
Запасной вариант держу такой: открыться наружу ТОЛЬКО подсетям моего мобильного оператора, да и то пока не понимаю, как ограничить ВСЕ кроме gps.php....
Вернусь к вопросу Big Brother GPS для ANdroid:
Как ему указать логин/пароль для заливки данных через CONNECT?
Наружу высовываться не очень хочу (белый IP есть....)...
Через VPN все работает, да не могу android заставить поднимать VPN автоматически... А вручную - неудобно...
К TASKERам и прочим другим механизмам прибегать не хочется...
Запасной вариант держу такой: открыться наружу ТОЛЬКО подсетям моего мобильного оператора, да и то пока не понимаю, как ограничить ВСЕ кроме gps.php....
-
- Сообщения: 393
- Зарегистрирован: Чт сен 25, 2014 5:37 pm
- Откуда: Екатеринбург
- Благодарил (а): 25 раз
- Поблагодарили: 52 раза
Re: Модуль GPS-трекер
В поле URL http://connect.smartliving.ru/gps.phpmax37online писал(а):Добрый день всем!
Вернусь к вопросу Big Brother GPS для ANdroid:
Как ему указать логин/пароль для заливки данных через CONNECT?
Наружу высовываться не очень хочу (белый IP есть....)...
Через VPN все работает, да не могу android заставить поднимать VPN автоматически... А вручную - неудобно...
К TASKERам и прочим другим механизмам прибегать не хочется...
Запасной вариант держу такой: открыться наружу ТОЛЬКО подсетям моего мобильного оператора, да и то пока не понимаю, как ограничить ВСЕ кроме gps.php....
В поле secret пишешь в таком формате login:password
Не забываешь в mdm настроить connect
-
- Сообщения: 39
- Зарегистрирован: Ср сен 21, 2016 9:03 am
- Благодарил (а): 4 раза
- Поблагодарили: 5 раз
Re: Модуль GPS-трекер
Мне казалось что я так пробовал....eygen писал(а):
В поле URL http://connect.smartliving.ru/gps.php
В поле secret пишешь в таком формате login:password
Не забываешь в mdm настроить connect
Ладно, спасибо, буду пытаться!
А что в mdm настраивать?
В разделе CONNECT логин/пароль есть, Cloud Sync включено. Это все?
Update: Попробовал, с телефона вроде выгружается. Но в MDM не приходит....
Uddate2: Спасибо! Все вопросы снимаю! Нашел описание модуля, понял что не перезапускал циклы после включения connect! Все работает!!
-
- Сообщения: 395
- Зарегистрирован: Вт май 31, 2016 6:56 pm
- Откуда: Россия Карелия Петрозаводск
- Благодарил (а): 95 раз
- Поблагодарили: 57 раз
Re: Модуль GPS-трекер
Есть у меня трекер TK-102
В итоге удалось кому подружить аппаратные GPS трекеры типа TK-102, TK-103
viewtopic.php?f=5&t=2433&start=10#p24504
В итоге удалось кому подружить аппаратные GPS трекеры типа TK-102, TK-103
viewtopic.php?f=5&t=2433&start=10#p24504
Сервер МД на x86 micro pc ssd + HDD, OC Debian, терминал Xiaomi Redmi note 7
Мои исходники для мд управляемых устройств https://github.com/vgamaev/ESPMDDEVICE
Мои исходники для мд управляемых устройств https://github.com/vgamaev/ESPMDDEVICE
-
- Сообщения: 295
- Зарегистрирован: Вт апр 23, 2013 5:16 pm
- Откуда: Брянск
- Благодарил (а): 18 раз
- Поблагодарили: 94 раза
Re: Модуль GPS-трекер
Подключал через traccar. Настраиваете на работу с mysql, скрипт загрузки координат можете посмотреть у меня в коннекте.
- За это сообщение автора Dark_Veter поблагодарили (всего 2):
- VladPTZ (Чт сен 22, 2016 7:13 pm) • arivano (Ср ноя 09, 2016 4:00 pm)
- Рейтинг: 2.33%
Debian GNU/Linux 7.9 (wheezy), версия 0.9.0b, Connect
-
- Сообщения: 15
- Зарегистрирован: Вс ноя 29, 2015 11:13 pm
- Благодарил (а): 0
- Поблагодарили: 1 раз
Re: Модуль GPS-трекер
Подключал напрямую на RaspberryPi с использованием NodeJSVladPTZ писал(а):Есть у меня трекер TK-102
В итоге удалось кому подружить аппаратные GPS трекеры типа TK-102, TK-103
viewtopic.php?f=5&t=2433&start=10#p24504
В таком трекере есть минимум 2 версии того, как он отдает координаты.
Одна версия расписана на GitHub и можно качать оттуда и сразу будет работать, для второго способа пришлось допиливать исходники.
кодПоказать
Состоит из 2х файлов, я совсем не программист, поэтому правил чужой код методом научного тыка и возможно он совсем не оптимальный.
Файл 1
Файл 2
Файл 1
Код: Выделить всё
//var querystring = require('querystring');
var server = require ('./tk102.js');
var http = require('http');
var host = '127.0.0.1';
var port = 80;
var path = '/gps.php';
function sendGPSData (rHost, rPath, rPort, GPSData) {
rPath = rPath + '?latitude=' + GPSData.geo.latitude + '&longitude=' + GPSData.geo.longitude + '&deviceid=Tracker';
var options = {
host: rHost,
port: rPort,
path: rPath};
var req = http.request(options, function(res) {
var responseString = '';
res.on('data', function(data) {
responseString += data;
});
res.on('end', function() {
console.log('\nHTTP response code:' + res.statusCode);
console.log('\nResponse:' + responseString);
});
});
req.end();
req.on('error', function(e) {
console.log('\nERROR: ' + e.message);
});
}
function output (name, data) {
console.log ('\nEvent: ' + name);
console.dir (data, {
colors: String (process.env.TERM) .match (/color$/)
});
}
server.createServer ({
port: 1336,
timeout: 30
});
//debug log for all events
server.on ('log', output);
// incoming data received
server.on ('track', function (gpsData) {
sendGPSData (host, path, port, gpsData);
});
Код: Выделить всё
/*
Name: tk102
Description: TK102 GPS server for Node.js
Author: Franklin van de Meent (https://frankl.in)
Source: https://github.com/fvdm/nodejs-tk102
Feedback: https://github.com/fvdm/nodejs-tk102/issues
License: Unlicense / Public Domain (see UNLICENSE file)
(https://github.com/fvdm/nodejs-tk102/raw/master/UNLICENSE)
*/
var net = require ('net');
var http = require('http');
var EventEmitter = require ('events') .EventEmitter;
var tk102 = new EventEmitter ();
// HTTP GET settings
var options = {
host: 'www.google.com',
path: '/index.html'
};
// device data
var specs = [
function (raw) {
// 1203292316,0031698765432,GPRMC,211657.000,A,5213.0247,N,00516.7757,E,0.00,273.30,290312,,,A*62,F,imei:123456789012345,123
var result = null;
var lat1 = '';
var lat2 = '';
var lon1 = '';
var lon2 = '';
var gpsMsgType;
try {
result = {gpsMsgType: 'OTHER'};
//raw = raw.trim ().replace(/[)][(]/g,'):(').split(/[:]/);
var cmds = raw.trim ().replace(/[)][(]/g,'):(').split(/[:]/);
console.log('raw:'+raw+'raw.length:'+raw.length);
for (var msg = 0; msg < raw.length; ++msg) {
var command = cmds[msg].substr(13,4);
console.log('command:'+command);
if (command =='BR00') {
gpsMsgType = 'BR00';
lat1 = cmds[msg].substr(24,9);
lat2 = cmds[msg].substr(33,1);
lon1 = cmds[msg].substr(35,9);
lon2 = cmds[msg].substr(44,1);
result = {
raw: cmds[msg],
gpsMsgType: gpsMsgType,
lat1 : lat1,
lat2 : lat2,
lon1 : lon1,
lon2 : lon2,
geo: {
latitude: tk102.fixGeo (lat1, lat2),
longitude: tk102.fixGeo (lon1, lon2),
},
};
break;
}
}
} catch (e) {
result = null;
}
return result;
}
];
// defaults
tk102.settings = {
ip: '0.0.0.0',
port: 0,
connections: 10,
timeout: 10
};
// Emit event
tk102.event = function (name, value) {
tk102.emit (name, value);
tk102.emit ('log', name, value);
};
// Catch uncaught exceptions (server kill)
process.on ('uncaughtException', function (err) {
var error = new Error ('uncaught exception');
error.error = err;
console.log (error);
tk102.event ('error', error);
});
// Create server
tk102.createServer = function (vars) {
var key;
// override settings
if (typeof vars === 'object' && Object.keys (vars) .length >= 1) {
for (key in vars) {
tk102.settings [key] = vars [key];
}
}
// start server
tk102.server = net.createServer ();
// maximum number of slots
tk102.server.maxConnections = tk102.settings.connections;
// server started
tk102.server.on ('listening', function () {
tk102.event ('listening', tk102.server.address ());
});
// inbound connection
tk102.server.on ('connection', function (socket) {
var connection = tk102.server.address ();
connection.remoteAddress = socket.remoteAddress;
connection.remotePort = socket.remotePort;
tk102.event ('connection', connection);
socket.setEncoding ('utf8');
if (tk102.settings.timeout > 0) {
socket.setTimeout (parseInt (tk102.settings.timeout * 1000, 10));
}
socket.on ('timeout', function () {
tk102.event ('timeout', connection);
socket.destroy ();
});
socket.on ('data', function (data) {
var gps = {};
var err = null;
data = data.trim ();
tk102.event ('data', data);
if (data !== '') {
gps = tk102.parse (data);
if ((gps)&&(gps.gpsMsgType == 'BR00')) {
tk102.event ('track', gps);
//Send HTTP GET
} else {
err = new Error ('Cannot parse GPS data from the device');
err.reason = err.message;
err.input = data;
err.connection = connection;
tk102.event ('fail', err);
}
}
});
socket.on ('close', function (hadError) {
connection.hadError = hadError;
tk102.event ('disconnect', connection);
});
// error
socket.on ('error', function (error) {
var err = new Error ('Socket error');
err.reason = error.message;
err.socket = socket;
err.settings = tk102.settings;
tk102.event ('error', err);
});
});
tk102.server.on ('error', function (error) {
var err = new Error ('Server error');
if (error === 'EADDRNOTAVAIL') {
err = new Error ('IP or port not available');
}
err.reason = error.message;
err.input = tk102.settings;
tk102.event ('error', err);
});
// Start listening
tk102.server.listen (tk102.settings.port, tk102.settings.ip);
return tk102;
};
// Parse GPRMC string
tk102.parse = function (raw) {
var data = null;
var i = 0;
while (data === null && i < specs.length) {
data = specs [i] (raw);
i++;
}
return data;
};
// Clean geo positions, with 6 decimals
tk102.fixGeo = function (one, two) {
var minutes = one.substr (-7, 7);
var degrees = parseInt (one.replace (minutes, ''), 10);
one = degrees + (minutes / 60);
one = parseFloat ((two === 'S' || two === 'W' ? '-' : '') + one);
return Math.round (one * 1000000) / 1000000;
};
// Check checksum in raw string
tk102.checksum = function (raw) {
var str = raw.trim () .split (/[,*#]/);
var strsum = parseInt (str [15], 10);
var strchk = str.slice (2, 15) .join (',');
var check = 0;
var i;
for (i = 0; i < strchk.length; i++) {
check ^= strchk.charCodeAt (i);
}
check = parseInt (check.toString (16), 10);
return (check === strsum);
};
// ready
module.exports = tk102;
- Рейтинг: 1.16%
-
- Сообщения: 395
- Зарегистрирован: Вт май 31, 2016 6:56 pm
- Откуда: Россия Карелия Петрозаводск
- Благодарил (а): 95 раз
- Поблагодарили: 57 раз
Re: Модуль GPS-трекер
А можно ссылку пожалуйста?SergNB писал(а):Одна версия расписана на GitHub и можно качать оттуда и сразу будет работать
При использования способа 2 эти 2 скрипта куда в MD прикручиваются?
Сервер МД на x86 micro pc ssd + HDD, OC Debian, терминал Xiaomi Redmi note 7
Мои исходники для мд управляемых устройств https://github.com/vgamaev/ESPMDDEVICE
Мои исходники для мд управляемых устройств https://github.com/vgamaev/ESPMDDEVICE