Не удается соединиться с сервером. GSM модуль SIM900

angelina_sotnikova
Offline
Зарегистрирован: 27.06.2019

У меня есть два модуля GSM. Они регистрируются в GPRS сети и один модуль GSM отправляет свой IP адресс другому модулю. Второй модуль должен установить соединение с первым по протоколу TCP, но подключение не проходит. Из за чего это может быть?

Скетч второго GSM. Он получает ip адресс первого gsm и пытается установить с ним соединение.

#include <GPRS_Shield_Arduino.h>
#include <SoftwareSerial.h>
 
// длина сообщения
#define MESSAGE_LENGTH 160
// номер сообщения в памяти сим-карты
int messageIndex = 0;
// текст сообщения
char message[MESSAGE_LENGTH];
// номер, с которого пришло сообщение
char phone[16];
// дата отправки сообщения
char datetime[24];
 
char ipAddress;
 
SoftwareSerial mySerial(7,8);
GPRS gprs(mySerial);
 
 
 
String ReadGSM() {  //функция чтения данных от GSM модуля
  int c;
  String v;
  while (mySerial.available()) {  //сохраняем входную строку в переменную v
    c = mySerial.read();
    v += char(c);
    delay(20);
  }
  return v;
}
 
void sendData(){
 
  boolean join = gprs.join("internet","gdata","gdata");
  delay(5000);
  Serial.println(ReadGSM());
  Serial.println(join);
  Serial.print("My ip: ");
  Serial.println(gprs.getIPAddress());
  mySerial.println("AT+CIPSTATUS");
  delay(1000);
  Serial.println(ReadGSM());
  delay(500);
 // const char constMessage[100] = message;
  Protocol protocol = TCP;
  boolean connectGPRS = gprs.connect(protocol, message, 161, 5);
  Serial.print("connect: ");
  Serial.println(connectGPRS);
  while(true){
  mySerial.println("AT+CIPSTATUS");
  delay(1000);
  Serial.println(ReadGSM());
  delay(500);
  }
    int x = gprs.send(gprs.getIPAddress());
    Serial.print("send: ");
    Serial.println(x);
    
  
  delay(2000);
  Serial.println(ReadGSM());
  
}
 
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  Serial.println("Initialization...");
  mySerial.begin(9600);
  while(!gprs.init()){
    delay(1000);
    Serial.print("GPRS Init error\r\n");
  }
  Serial.println("GPRS init success");
  
  
  
}
 
void loop() {
  // put your main code here, to run repeatedly:
  if (gprs.ifSMSNow()) {
    gprs.readSMS(message, phone, datetime);
    Serial.print("IP address: ");
    Serial.println(message);
    sendData();
  }
  
 
}
angelina_sotnikova
Offline
Зарегистрирован: 27.06.2019
После 20 секунд выводит это  
connect fail
TCP CLOSED
 
andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukommentarii

А во вторых: вы уверены что ваш оператор мобильной связи на первом модуле пропускает внешние соединения?

 

angelina_sotnikova
Offline
Зарегистрирован: 27.06.2019

У нас есть 2 ethernet щита подключеных к 2 арудинкам с gsm модулями. Эти щиты нужно как то между собой подключать?

angelina_sotnikova
Offline
Зарегистрирован: 27.06.2019

Незнаю, а как проверить? У меня Мегафон на  2 х gsm

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

angelina_sotnikova пишет:

Незнаю

Начните с попроще...светодиодиками помигать...

т.к.

1. не выложили код как слелует

2. не понятно что вы ходите, Ethernet Или GSM