ESP8266 으로 FTP Server를 만들었는데, 장소를 옮겨서 다른 공유기에 연결하려고 할 때,
그 자리에서 SSID 와 Password를 수정하려면, 
펌웨어를 바꿔주거나 외부에서 UART 또는 SD-Card 의 설정 파일의 내용을 바꿔 주는 방법밖에 생각이 안들었다. 

그러니까, 장소가 바뀌면 추가 장비가 없이 8266의 SSID 와 Password를 바꾸기는 거의 힘들다는 것입니다.

이것을 쉽게 할 수 있는 방법이 SmartConfig 기능이다.
먼저 핸드폰의 SmartConfig APP 프로그램이 필요하다.
(Smartconfig APP 은 구글 Play Store에서 smartconfig 로 검색하면 찾을 수 있다.)



이 앱의 기능은 스마트폰이 ESP8266과 접속하면 ESP8266에게 SSID 와 Password를 전달해 준다.
즉, WiFi.begin(ssid, password); 함수를 Smartconfig 기능이 대체해 준다. 

그 다음은, ESP8266 프로그램에서 전달받은 SSID 와 Password 를 사용해서 FTP 를 하든 WEB을 붙이든 하면 된다.

기존의 FTP 나 웹서버 등등의 SSID 와 Password 를 사용해서 연결하는 아두이노 IDE 소스 코드는 다음과 같다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
const char* ssid = "SSID";
const char* password = "PASSWORD";
   ...
 
void setup(void){
  WiFi.begin(ssid, password);
  Serial.println("");
 
  // Wait for connection
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
....
 
}
cs

이것을 다음과 같이 고치고,
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void setup(void){
  WiFi.mode(WIFI_STA);
  delay(500);
  WiFi.beginSmartConfig();
 
  while(WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
    if(WiFi.smartConfigDone()){
      Serial.println("WiFi Smart Config Done.");
    }
 
...
 
  }
cs

SmartConfig APP을 실행해서 접속할 공유기의 SSID 와 Password를 입력해 준다.


그리고 confirm 을 눌러주면 SSID 와 Password가 8266에 전달되고, 
이 후 ESP8266 은 전달 받은 SSID 와 Password로 공유기에 접속하여 IP를 할당받고 SmartConfig App 에게도 알려주고,
ESP8266 에서도 연결된 IP 주소를 알 수 있다.

ESP serial 창에 보면 대기중에 ....... 이 출력되고 SSID 와 PASSWORD가 전달되면 Wifi Smart Config Done. 이 출력된다.




이 이후는, 사용자가 알아서 용도에 맞게 프로그램을 만들면 됩니다.

저도 스마트콘피그가 뭔 내용인지 모르다가, 해 보고서야 이해가 되는데, 참 괜찮은 기능인 것 같습니다. ^^


+ Recent posts