ESP8266, ESP32 에 웹 설정 마법사 붙이기
가끔씩 필요에 의해서 만드는 IOT 기기 프로젝트를 진행하면 제일 고민스럽고 귀찮은 것 중에 하나가
WiFi 연결과 서버 연결 설정을 만드는 부분이다. 이 프로젝트를 완성하기 전에는 소스코드 내에 하드코딩으로 무선 AP 의 SSID와 패스워드를 삽입해 버리거나 웹 서버를 동작시켜서 GET 파라미터 값으로 SSID 와 패스워드 그리고 mqtt 서버 주소를 입력하는 방법을 사용해왔다. 하지만, 최종 연결 상태를 확인하거나 추가 옵션을 붙이기가 만만치 않고, 중구난방으로 생겨나는 자작 IOT 기기들의 설정 방법들이 일관되지 않아서 유지 보수가 어렵다는 단점이 있었다.
그래서 일관된 방법으로 설정값을 넣기 위한 웹 설정 마법사 모듈을 단순하게 만들어봤다.
소스코드 및 사용방법: https://github.com/ice3x2/ESP-Web-Configuration-Wizard
최초 connect() 함수를 호출하였을 때, 또는 startConfigurationMode() 함수를 직접 호출하였을 때 동작한다.
주요 기능으로 WiFi AP 의 SSID 와 패스워드를 설정하고, 시간을 동기화하기 위한 NTP 서버, MQTT 접속 정보를 설정할 수 있다. 또 커스텀 옵션을 추가할 수 있으며, 옵션 값 체크를 할 수 있는 API를 제공한다.
코드도 대충 만들고, 설정하는 과정에서 중요하지 않은 버그도 조금 있지만 그럭저럭 잘 동작한다.
그래도 연결이 끊어질 경우 다시 동작하도록 하는 로직 덕분에 한 번 연결되면 안정적으로 커넥션을 유지한다.