요즘 제가 살고 있는 동네의 학교 대부분은 교실마다 AP가 달려있다.
하지만 이를 그냥 놓치면 내가 아니지!!
이미 있는 기능이지만, 내 손으로 구현한다는 것과는 다르다는 생각으로 한번 만들어 볼까 생각한다.
스마트폰 기능 중 Wifi Scan 기능이 있다. 주변에 있는 무선 라우터를 찾는 기능이긴 한데..
기능에 대해 알기 쉽게 설명하자면 스마트폰에서 와이파이를 연결하려고 설정에 들어가면 와이파이 이름이 자동으로 뜨는 기능이다. 이 기능이 없다면 직접 와이파이의 이름을 치고 들어가야 할 수도 있다.
안드로이드 기준 와이파이 설정에서는 와이파이의 SSID와 신호세기 등만 보이고 나머지는 보이지 않는다. 또한 학교 와이파이는 SSID가 하나로 통일되어있다. 따라서 여러 개의 AP도 하나로 뜸.. 하지만 애플리케이션을 깔면 추가 정보가 보인다!! 이 얼마나 위대한 애플리케이션인가! 거기다가 신호세기를 응용하면 공유기와의 거리도 대충이나마 추측이 가능!
하지만 안드로이드 스마트폰에는 백그라운드 와이파이 스캔이 제한이 걸려있다.
물론 개발자 모드에서 백그라운드 와이파이 스캔 제한을 풀고 몇초마다 스캔이 가능하다!ㅎㅎ
그리고 혹시나 "제한을 풀면 공유기에도 영향이 가서 학생들이 인터넷 못쓰거나 속도가 느려지는거 아니에욧?!"할까봐 말하지만, wifi scan은 당연히 AP에 직접 데이터를 보내는 것이 아니라 AP가 보내는 신호를 받기만 할 뿐이다. 따라서 그 걱정은 0에 수렴한다.
기능 구현 상상도
다음 그림중 빨간색은 무선라우터, 파란색은 와이파이 스캐너, 보라색은 측정된 위치, 점선은 신호세기이다.
단, 다음 그림중 무선라우터의 신호는 벽을 통과할 수 없다고 가정한다.
그림1은 학교 교실을 예로 든 사진이다.
그림2는 사용자가 A반에 있을때의 신호이다.
+ G로 연결해야 할 점선이 E로 잘못 연결 되었습니다!
그림3은 A,D,E를 중심으로 신호 범위를 측정한다.
A,D,E를 중심으로 3개의 점이 충첩되는 구간은 보라색 원 안이다.
그림4는 사용자가 F복도에 있을때의 가정이다.
그림5는 F,C,J,I,E의 신호세기를 기준으로 가장 중첩되는 구간을 측정한다.
이 주제에 관심이 있으시거나 피드백을 주시고 싶으신 분들은
makerzip@hanmail.net으로 보내주시기 바랍니다!
부족한 부분이나 피드백은 언제나 환영합니다!!