Sim808 + Adruino Pro mini + 2xаккумулятора по 3,7 = глюки

chiffa
Offline
Зарегистрирован: 30.04.2014

Всем добрый день. такой вопрос: собираю схему sim808 + Adruino Pro mini (фотки прилагаются), цель: получения GPS и дальнейшая отправка на сервер. Все собрал, написал, подключил к USB, залил - данные полетели (AT CGNSINF CGNSINF:1,0,19800106004030.000,,,,0.00,0.0,0,,,,,,0,0,,,,,), качество определения не радует (очень долго летят нули) и раздупляется через раз. Стал думать, что дело в помещении и решил потестить на улице, для этого нужна автономность.

Соеденил 2 аккумулятора по 3,7в последовательно = 7,4в т.к. на 3,7 sim808 даже не хотел мигать диодом сети (что вообщем тоже есть странным т.к. в документации писалось 3,3-4,4). Подключил аккум к Adruino, все завелось, адруинка постоянно шлет пустоту, то есть диод мигает учещенно (отправка данных), данные прилетают на сервак в размере одного байта - пробела, если подключить к ЮСБ - все норм.

Может кто подскажет, в чем может быть проблема?... Заранее благодарен за любую подсказку! Прикладываю код:

#include <SoftwareSerial.h>
#include<stdio.h>
#include<string.h>
#define DEBUG true


SoftwareSerial mySerial(7,8); 
        
void setup()
{
  Serial.begin(9600);
 mySerial.begin(9600); 

 
        
}
String Serialread;
void loop()
{

StartGPRS ();
String GetData;
mySerial.println("AT+CGNSPWR=1");
GetData = mySerial.readString();
mySerial.println("AT+CGNSSEQ=RMC");
GetData = mySerial.readString();
mySerial.println("AT+CGNSINF");
GetData = mySerial.readString();
        delay(1000);

  GetData.replace("\n", "");
  GetData.replace("\r", "");
  GetData.replace(" ", "");
Serial.println(GetData);
SendData (GetData);

CloseGPRS ();


delay (10000);

}

void StartGPRS (void)
{

mySerial.println("AT+CMGF=1");
Serial.println(mySerial.readString());
mySerial.println("AT+CGATT=1");
Serial.println(mySerial.readString());
mySerial.println("AT+SAPBR=3,1,\"CONTYPE\",\"GPRS\"");
Serial.println(mySerial.readString());
mySerial.println("AT+SAPBR=3,1,\"APN\",\"internet\"");
Serial.println(mySerial.readString());
mySerial.println("AT+SAPBR=1,1");
Serial.println(mySerial.readString());
  
}

void SendData (String DataForUrl)
{


  
mySerial.println("AT+HTTPINIT");
Serial.println(mySerial.readString());
mySerial.println("AT+HTTPPARA=\"CID\",1");
Serial.println(mySerial.readString());


mySerial.println("AT+HTTPPARA=\"URL\",\"http://*******/sim808/index.php?gps_data="+DataForUrl+"\"");
Serial.println(mySerial.readString());
delay (3000);

mySerial.println("AT+HTTPACTION=0");
Serial.println(mySerial.readString());
mySerial.println("AT+HTTPREAD");
Serial.println(mySerial.readString());
}

void CloseGPRS (void)
{
mySerial.println("AT+HTTPTERM");
Serial.println(mySerial.readString());
mySerial.println("AT+SAPBR=0,1");
Serial.println(mySerial.readString());
}

 

 

 

cslash
Offline
Зарегистрирован: 19.07.2016

День добрый!
Скорее всего не хватает силы тока.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

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

2. Если при одном питании схема работает, а прир другом - нет, очевидно, проблема в питании.

alfik777
alfik777 аватар
Offline
Зарегистрирован: 29.06.2015

Приобрел такой же модуль SIM800. Уровень сигнала GPS -0 . Заказал антенну ( активную )  с разъемом  как на плате - IPEX, но непонятно как  же подавать на неё питание. У Вас от USB вообще без антенны работает?