Соответствие спецификации Bluetooth 3.0+ с увеличенной скоростью передачи данных (EDR);
Размеры модуля: 24 мм × 24 мм × 2.6 мм;
Вес: 3.3 г;
Управление посредством AT-команд (3GPP TS 27.007);
Расширенный набор AT-команд 27.005 и SIMCOM;
Диапазон напряжения питания: от 3.4 В до 4.4 В;
Низкая потребляемая мощность;
Диапазон рабочих температур: от -40°C до +85°C.
Спецификации для данных GPRS:
GPRS класс 12: максимальная скорость передачи данных 85.6 Кбит/с (входящее и исходящее соединение);
Поддержка пакетного широковещательного канала управления (PBCCH);
Схемы кодирования: CS 1, 2, 3, 4;
Стек протоколов PPP;
Схема передачи данных с переключением (CSD) со скоростью до 14.4 Кбит/с;
Интерактивный сервис коротких сообщений (USSD)/
Спецификации для передачи сообщений SMS через сети GSM/GPRS
Сервис взимания платы за входящие и исходящие сообщения при соединении "точка-точка";
Передача SMS в рамках соты;
Режим передачи текстовых и пакетных (PDU) данных;
Функции программного обеспечения;
Поддержка протокола 0710 MUX;
Встроенный протокол TCP/UDP;
Функции файловой передачи данных FTP/HTTP;
Передача мультимедийных сообщений (MMS);
Сервис электронной почты E-MAIL;
Функция тонального набора (DTMF);
Функция обнаружения помех;
Аудиозапись;
Опциональная функция голосового чтения сообщений (TTS);
Встроенный модуль обработки AT-команд (опционально)
Спецификации для GPS:
Тип приёмника:
Интерфейсы и периферия: Аналоговый аудиоинтерфейс;
Интерфейс PCM (опционально);
Интерфейс SPI (опционально);
Часы реального времени с работой от резервного источника питания;
Последовательный интерфейс;
Интерфейс USB;
Интерфейс для подключения внешней SIM-карты с напряжением питания 3 В/1.8 В;
Интерфейс клавиатуры;
Линии ввода/вывода общего назначения;
10-битный АЦП;
Разъём для подключения GSM-антенны;
Разъём для подключения антенны Bluetooth;
Разъём для подключения GPS-антенны.
Расположение элементов на плате Переключатель
Power switch используется для включения/выключения входного питания для модуля. Входное питание можно подать через штекер (5-26В), на входы V_IN (5-26В) и на входы LiBattery (3,5 - 4.2В).
Разъемы
GSM anta,
GPS anta и
BT anta служат для подключения антенн для GSM, GPS и Bluetooth.
После подачи питания на плату загорится светодиод PWR. Затем необходимо нажать и удерживать в течении 2 секунд нажатой кнопку
Start button.
Светодиод
STA загорится, а затем светодиод
NET светодиод будет мигать один раз каждые 800 мсек, пока модуль GSM не найдет сеть, после этого он будет мигать один раз каждые три секунды. Светодиод
PPS используется для обозначения GPS фиксируется или нет. Но функция GPS закрыт по умолчанию, так что не будет ничего, пока мы не инициализируем функции GPS.
TTL последовательный интерфейс реализован на контактах
Uart&power. Пины подключения последовательного интерфейса
Контакт VMCU можно использовать для управления высоким уровнем TTL UART подачей на него соответствующего напряжения.
Интерфейс
USB используется для обновления программного обеспечения прошивки SIM808.
Для проверки работоспособности модуля подключим его к компьютеру (через
USB-TTL переходник)
Подключим GPS антену и GSM антенну, подадим питание
и запустим программу
sscom32E_english.exe.
Здесь мы можем управлять модулем с помощью AT- команд.
Для получения GPS данных отправляем следующие команды:
Подключим данный модуль по UART к плате Arduino (контакты 2,3) и напишем скрипт самодельного gps-трекера с отправкой gps-данных на сервер в сети Интернет.
#include
SoftwareSerial GSMport(3, 2); // RX, TX
typedef struct {
String latitude;
String longitude;
String datetime;
} MyDataGPS;
MyDataGPS dataGPS;
void gprs_init(void);
MyDataGPS getGPSLocation(void);
void gprs_send(String dataa, String datab);
String ReadGSM();
unsigned long millisperiod=0;
void setup() {
Serial.begin(9600);
GSMport.begin(9600);
//устанавливаем чтобы номер входящего звонка определялся
GSMport.println("AT+CLIP=1");
delay(300);
GSMport.println("AT+DDET=1"); //устанавливаем прием DTMF
delay(300);
gprs_init();
}
void loop() {
char c;
String str;
// отправка данных каждые 10 сек
if (millis()-millis)periodЮ=10000 {
dataGPS = getGPSLocation();
gprs_send(dataGPS.latitude, dataGPS.longitude);
millisperiod=millis();
}
while (GSMport.available()) {
//отправляем данные с GSM в Serial
c = GSMport.read();
Serial.write(c);
delay(10);
}
}
//функция определения местоположения по GPS
MyDataGPS getGPSLocation(void) {
String v,v1,v2;
String data[5];
MyDataGPS d;
int a = 0,b = 0;
GSMport.println("AT+CGNSPWR=1");
delay(1000);
Serial.println(ReadGSM());
GSMport.println("AT+CGNSINF");
delay(400);
v = ReadGSM();
Serial.println(v);
for(int i=0;i<5;i++) {
//парсинг данных между запятыми в массив строк
a = v.indexOf(",",a);
//первое вхождение запятой
if(a!=-1) {
b = v.indexOf(",",a+1); //второе вхождение запятой
data[i] = v.substring(a+1,b);
Serial.println(String("Data: " + String(i)+" - "+ data[i]));
a = b;
}
}
d.datetime = data[1];
d.latitude = data[2];
d.longitude = data[3];
return d;
}
//Процедура начальной инициализации GSM модуля для GPRS
void gprs_init(void) {
int d = 500;
Serial.println("GPRS init start");
delay(d * 4);
//Установка настроек подключения
GSMport.println("AT+SAPBR=3,1,\"CONTYPE\",\"GPRS\"");
delay(d * 5);
//показываем ответ от GSM модуля
Serial.println(ReadGSM());
delay(d * 5);
//Установка APN
GSMport.println("AT+SAPBR=3,1,\"APN\",\"internet.beeline.ru\"");
delay(d);
Serial.println(ReadGSM());
delay(d * 2);
//Устанавливаем соединение GPRS
GSMport.println("AT+SAPBR=1,1");
delay(d * 2);
Serial.println(ReadGSM());
delay(d * 2);
//Проверяем как настроилось
GSMport.println("AT+SAPBR=2,1");
delay(d);
Serial.println(ReadGSM());
delay(d * 5);
Serial.println("GPRS init complete");
}
//функция чтения данных от GSM модуля
String ReadGSM() {
char c;
String str;
while (GSMport.available()) {
//сохраняем входную строку в переменную
str c = GSMport.read();
str += c;
delay(20);
}
str = "<<< " + str;
return str;
}
//Процедура отправки данных на сервер
void gprs_send(String dataa, String datab) {
//отправка данных на сайт
String tempstr;
Serial.println("Send start");
GSMport.println("AT+HTTPINIT");
delay(1000);
Serial.println(ReadGSM());
GSMport.println("AT+HTTPPARA=\"CID\",1");
delay(1000);
Serial.println(ReadGSM());
Serial.println("setup url");
tempstr = String("AT+HTTPPARA=\"URL\",\"yoursite.ru/gps/write.php?lat=" +
dataa + "&lon=" + datab +"\"");
GSMport.println(tempstr);
Serial.println(tempstr);
delay(4000);
Serial.println(ReadGSM());
Serial.println("GET url");
GSMport.println("AT+HTTPACTION=0");
delay(5000);
Serial.println(ReadGSM());
Serial.println("Send done");
GSMport.println("AT+HTTPTERM");
delay(200);
Serial.println(ReadGSM());
}
На сервере нужен скрипт для сохранения данных в базу mysql, примерно такого содержания
require_once("mybaza.php");
$id_avto=$_GET[id_avto];
$lat=$_GET[lat]/100000;
$lon=$_GET[lon]/100000;
$data=date('Y-m-d H:i:s');
$query1="INSERT into gps_tracker SET
lat=".$lat.",lon=".$lon.",data='".$data."' ";
if(!mysql_query($query1))
echo "error=".$query1;
else
echo "OK";
?>
Теперь можем создать html-страницу, которая будет показывать наше движение с gps-трекером на Яндекс карте.