아두이노 우노에 사용중이고 노트북을 AP로 사용하여 센서의 신호값을 WIZFI210을 이용하여 전송하고 있습니다.
AT+WSTATUS
AT+NSTAT=?
AT&F RESTORE PROFILE TO FACTORY DEFAULT VALUES
AT+WD
AT+WM=0 STATION MODE
AT+WRXPS=0 POWER SAVE MODE DISABLE
ATB=9600
AT+WWPA=13791379 Set WPA passphrase
AT+NDHCP=1 Enable
AT+WAUTO=0,ARDUINO Set WiFi Configuration, <MODE,SSID,[BSSID,CHANNEL]>
AT+NAUTO=0,1,192.168.123.1,80 <CLIENT, TCP, IP, PORT>
ATC1 Auto connection next reboot
AT+XDUM=1 Disable UART Message
AT&Y0 Set Default Profile
AT&W0 Save Profile
AT+XAR=10 Auto reconnect interval
ATA Start Auto Connect, including association.
위와 같이 접속하였고 ATA 입력후 서버와의 통신은 잘됩니다. 하지만 서버의 80번 포트를 닫았다가 다시 열면 AP(노트북)에는 접속중이지만 보내고자하는 데이터를 보내주지 못합니다.
포트가 닫기면 데이터 모드에서 커맨드 모드로 다시 돌아오는 이유때문에 재접속이 안되는거 같은데 ATA를 입력해주면 다시 접속은 가능하구 통신도 됩니다.
저의 능력 부족때문인지 아두이노로 커맨드 모드로 돌아왔을때 다시 ATA를 명령해 주면 될것 같은데 하는 방법을 잘 모르겠습니다.
혹시 설정으로 포트가 닫기더라도 커맨드 모드로 돌아오지 않고 데이터 모드를 유지하는 설정이 없는지 궁금하여 질문 드립니다.
++++++++++아두이노 명령으로 재접속 가능하게 수정하였습니다.+++++++++++++
코드는
const int TrigPin = 2;
const int EchoPin = 3;
float m;
void setup()
{
Serial.begin(9600);
pinMode(TrigPin, OUTPUT);
pinMode(EchoPin, INPUT);
}
void loop()
{
digitalWrite(TrigPin, LOW);
delayMicroseconds(2);
digitalWrite(TrigPin, HIGH);
delayMicroseconds(10);
digitalWrite(TrigPin, LOW);
m = pulseIn(EchoPin, HIGH) / 58.0 / 100;
Serial.print(“B”);
Serial.print(" ");
Serial.println(m);
delay(3000);
//Serial.print(“AT\r\n”);
//delay(1000);
Serial.print(“ATA\r\n”);
}
이렇게 되어있는건데…
시리엏 모니터 상에도…
B 0.03
ATA
B 0.02
ATA
B 0.12
ATA
B 0.12
ATA
B 0.12
ATA
B 0.12
ATA
B 0.12
ATA
B 0.12
ATA
B 0.12
ATA
B 0.12
ATA
B 0.12
ATA
B 0.12
ATA
이러한 형태로 출력이 되어버리는 군요…
질문의 요지는
-
서버의 포트가 닫기더라도 커맨드모드로 돌아오지 않게 할수 있는 방법이 있는지???
-
아니면 아두이노 코드를 수정하여 센서값 사이에 ATA가 출력되지 않게 할수있는 방법이 있는지 궁금합니다.ㅠㅠ
되도록이면 커맨드 모드로 돌아가지 않고 데이터 모드를 유지할수 있는 방법이 있는지가 궁금합니다.