Официальный сайт компании Arduino по адресу arduino.cc
Не удается соединиться с сервером. GSM модуль SIM900
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Чт, 27/06/2019 - 15:13
У меня есть два модуля 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();
}
}
http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukommentarii
А во вторых: вы уверены что ваш оператор мобильной связи на первом модуле пропускает внешние соединения?
У нас есть 2 ethernet щита подключеных к 2 арудинкам с gsm модулями. Эти щиты нужно как то между собой подключать?
Незнаю, а как проверить? У меня Мегафон на 2 х gsm
Незнаю
Начните с попроще...светодиодиками помигать...
т.к.
1. не выложили код как слелует
2. не понятно что вы ходите, Ethernet Или GSM