Arduino Nano Serial을 통해 ESP8266-07과 통신하려고합니다. AT 명령을 사용하여 재설정, wifi 연결, TCP 서버 연결 등. 하나의 기능 스크립트가 있으므로 ESP8266이 올바르게 연결되어 있다는 것을 알고 있습니다. 나는 5V 로직 변환기 3.3V를 사용하고 등등 ...이 이전 기능 스크립트입니다직렬 AT 명령어가있는 ESP8266
void esp_connect() {
Serial.println("AT+RST");
delay(2);
esp_timefuse = millis();
while(Serial.find("ready") == false) {
if(esp_timefuse - millis() >= 5000)
esp_connect();
}
Serial.println("AT+CWMODE=3");
delay(2);
esp_timefuse = millis();
while(Serial.find("OK") == false) {
if(esp_timefuse - millis() >= 2000)
esp_connect();
}
Serial.println("AT+CWJAP=\"WiFi 7-pekiel\",\"43664366\"");
delay(2);
esp_timefuse = millis();
while(Serial.find("OK") == false) {
if(esp_timefuse - millis() >= 2000)
esp_connect();
}
Serial.println("AT+CIPMUX=1");
delay(2);
esp_timefuse = millis();
while(Serial.find("OK") == false) {
if(esp_timefuse - millis() >= 2000)
esp_connect();
}
Serial.println("AT+CIPSTART=0,\"TCP\",\"10.10.10.6\",3600");
delay(2);
esp_timefuse = millis();
while(Serial.find("OK") == false) {
if(esp_timefuse - millis() >= 2000)
esp_connect();
}
}
는하지만 그것으로 만족하지입니다. 나는 최선을 다하려고 노력하고있다. 그래서이 스크립트를 작성했습니다 :
void esp_connect() {
Serial.println("AT+RST");
Serial.flush();
Serial.setTimeout(5000);
if(Serial.find("ready"));
else esp_connect();
Serial.println("AT+CWMODE=3");
Serial.flush();
Serial.setTimeout(2000);
if(Serial.find("OK"));
else esp_connect();
Serial.println("AT+CWJAP=\"WiFi 7-pekiel\",\"43664366\"");
Serial.flush();
if(Serial.find("OK"));
else esp_connect();
Serial.println("AT+CIPMUX=1");
Serial.flush();
if(Serial.find("OK"));
else esp_connect();
Serial.println("AT+CIPSTART=0,\"TCP\",\"10.10.10.6\",3600");
Serial.flush();
if(Serial.find("OK"));
else esp_connect();
}
이 새로운 스크립트를 직렬 모니터로 테스트 할 때 모든 것이 작동합니다. 나는 ESP8266을 시뮬레이션하고 있으므로 ESP8266처럼 "OK"와 "OK"를 입력하면됩니다. 하지만 ESP8266에 연결할 때 아무 것도 작동하지 않습니다. 내 대본에있는 오류는 어디에 있습니까? Serial.find()를 올바르게 사용하고 있습니까?