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. 이 출력된다.
이 이후는, 사용자가 알아서 용도에 맞게 프로그램을 만들면 됩니다.
저도 스마트콘피그가 뭔 내용인지 모르다가, 해 보고서야 이해가 되는데, 참 괜찮은 기능인 것 같습니다. ^^
'ESP8266' 카테고리의 다른 글
[ESP8266] Wifi FTP Server with SD-Card[2](SPI-mode) (0) | 2017.02.13 |
---|---|
[ESP8266] SD-Card(SPI-mode) 핀/스피드 설정 (0) | 2017.02.13 |
[ESP8266] WiFi FTP Server with SD-Card[5] (속도 개선) (0) | 2017.02.13 |
[ESP8266] WiFi FTP Server with SD-Card[4] (디렉토리 읽기 개선) (0) | 2017.02.13 |
[ESP8266] 아두이노 자주 쓰는 함수 및 문법 링크 (0) | 2017.02.13 |