?>

Hard Copy World

HCW

Q&A

Home > Forum >

Q&A

질문 | ESP8266 질문드립니다.

페이지 정보

작성자 조선이 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일18-12-19 17:26 조회139회 댓글1건

본문

안녕하세요.
WEMOS D1 R2 & mini 를 사용하고 있습니다.
단순하게 회사에서 사용하고 있는 와이파이와 연결이 잘 되는지 확인할려고 합니다.
그런데 업로딩도 잘되고 Blink도 잘되는데 와이파이와는 계속 접속이 안되고 에러가 발생됩니다.
에러 코드는 아래와 같습니다.
ets Jan  8 2013,rst cause:2, boot mode:(1,7)
ets Jan  8 2013,rst cause:4, boot mode:(1,7)
wdt reset

제가 사용하고 있는 와이파이 코드는 아래와 같습니다.
#include <ArduinoOTA.h>

#include <ESP8266WiFi.h>
#include <ESP8266mDNS.h>
#include <WiFiUdp.h>
#include <ArduinoOTA.h>

const char* ssid = "linkoptics2";
const char* password = "link5664";

void setup() {
  Serial.begin(115200);
  Serial.println("Booting");
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  while (WiFi.waitForConnectResult() != WL_CONNECTED) {
    Serial.println("Connection Failed! Rebooting...");
    delay(5000);
    ESP.restart();
  }

  ArduinoOTA.onStart([]() {
    String type;
    if (ArduinoOTA.getCommand() == U_FLASH) {
      type = "sketch";
    } else { // U_SPIFFS
      type = "filesystem";
    }

    // NOTE: if updating SPIFFS this would be the place to unmount SPIFFS using SPIFFS.end()
    Serial.println("Start updating " + type);
  });
  ArduinoOTA.onEnd([]() {
    Serial.println("\nEnd");
  });
  ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) {
    Serial.printf("Progress: %u%%\r", (progress / (total / 100)));
  });
  ArduinoOTA.onError([](ota_error_t error) {
    Serial.printf("Error[%u]: ", error);
    if (error == OTA_AUTH_ERROR) {
      Serial.println("Auth Failed");
    } else if (error == OTA_BEGIN_ERROR) {
      Serial.println("Begin Failed");
    } else if (error == OTA_CONNECT_ERROR) {
      Serial.println("Connect Failed");
    } else if (error == OTA_RECEIVE_ERROR) {
      Serial.println("Receive Failed");
    } else if (error == OTA_END_ERROR) {
      Serial.println("End Failed");
    }
  });
  ArduinoOTA.begin();
  Serial.println("Ready");
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());
}

void loop() {
  ArduinoOTA.handle();
}

첫번째 코드가 잘 안되서 다른 코드로 실행을 해봤지만 여전히 접속이 안되네요..
두번째 코드의 오류입니다. 아래와 같습니다.
[WiFi-event] event : 1
WiFi lost connection
[WiFi-event] event : 1
WiFi lost connection

두번째 코드는 아래와 같습니다.
#include <ESP8266WiFi.h>

const char *ssid = "linkoptics2";
const char *password = "link5664";


void WiFiEvent(WiFiEvent_t event) {
    Serial.printf("[WiFi-event] event: %d\n", event);

    switch(event) {
        case WIFI_EVENT_STAMODE_GOT_IP:
            Serial.println("WiFi connected");
            Serial.println("IP address: ");
            Serial.println(WiFi.localIP());
            break;
        case WIFI_EVENT_STAMODE_DISCONNECTED:
            Serial.println("WiFi lost connection");
            break;
    }
}

void setup() {
    Serial.begin(115200);

    // delete old config
    WiFi.disconnect(true);

    delay(1000);

    WiFi.onEvent(WiFiEvent);

    WiFi.begin(ssid, password);

    Serial.println();
    Serial.println();
    Serial.println("Wait for WiFi... ");
}
void loop() {
    delay(1000);
}

댓글목록

최고관리자님의 댓글

최고관리자 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 작성일

딱히 코드상의 문제는 안보입니다.. 로그를 봐도 그렇구요.
ESP8266 모듈에 충분히 전원이 공급 되었는지부터 확인하는게 우선일것 같습니다. USB 전원외에 다른 외부 전원을 넣어보세요. USB 케이블도 충분히 전류 공급이 가능한 걸로 바꿔보세요.