1

Topic: Проблемы с подключением через роутер

Сетап: Arduino UNO, Ethernet W5100 шильд, роутер Tp-Link TL-3420, твердотельное реле SSR-25DA 25А/250В, приложение для iOS.
В роутере зарезервирован ip для ардуино.
Задача всего одна, управлять реле, включать или выключать свет.

Проблема в том, что при подключении в приложении сначала все окей, но через некоторое время перестает подключаться. Долгая загрузка, потом "Connect time out".

Помогите пожалуйста, может быть кто-то с таким уже сталкивался?

2

Re: Проблемы с подключением через роутер

Причин может быть много.
Проверьте что не зависает Arduino.

3

Re: Проблемы с подключением через роутер

Проверил на двух ардуино уно.
Минут десять могу подключиться, потом подключаться перестает. Помогает перезагрузка питания платы.

#include <Dhcp.h>
#include <Dns.h>
#include <Ethernet.h>
#include <EthernetClient.h>
#include <EthernetServer.h>
#include <EthernetUdp.h>


#define REMOTEXY_MODE__W5100_SPI
#include <Ethernet.h>
/* Ethernet shield used pins: 10(SS) */
#include <SPI.h>
/* SPI interface used pins: 11(MOSI), 12(MISO), 13(SCK) */

#include <RemoteXY.h>

// RemoteXY connection settings 
#define REMOTEXY_ETHERNET_MAC "DE:A8:BE:EF:EF:ED"
#define REMOTEXY_SERVER_PORT 6377


// RemoteXY configurate   
#pragma pack(push, 1)
uint8_t RemoteXY_CONF[] =
  { 1,0,17,0,6,5,1,2,0,8
  ,69,44,13,2,79,78,0,79,70,70
  ,0 };
   
// this structure defines all the variables of your control interface 
struct {

    // input variable
  uint8_t switch_1; // =1 if switch ON and =0 if OFF

    // other variable
  uint8_t connect_flag;  // =1 if wire connected, else =0

} RemoteXY;
#pragma pack(pop)

/////////////////////////////////////////////
//           END RemoteXY include          //
/////////////////////////////////////////////

#define PIN_SWITCH_2 7


void setup() 
{
  RemoteXY_Init (); 
   
  pinMode (PIN_SWITCH_2, OUTPUT);
   
  // TODO you setup code
   
}

void loop() 

  RemoteXY_Handler ();
   
  digitalWrite(PIN_SWITCH_2, (RemoteXY.switch_1==0)?LOW:HIGH);
   
  // TODO you loop code
  // use the RemoteXY structure for data transfer


}


ip адрес остается тот же, могу пинговать с компьютера.

4

Re: Проблемы с подключением через роутер

Попробуйте простой скетч для W5100, например с веб-сервером.
Скетч с веб-сервером есть в примерах среды разработки Arduino.
Погоняйте сервер, подключайтесь к нему с компа, с андроида из браузера. Посмотрите что будет через N минут. Будет ли продолжать работать web-server?
Если веб-сервер будет зависать точно так же, значит проблема не в коде Ардуино, который в нее залит.
Напишите о результатах тестирования.

Так же попробуйте подключиться к порту через терминал (телнет, любой), что бы проверить, открыт ли порт на Arduino. Пробуйте подключиться в тот момент, когда андроид уже показывает ошибку.