레이블이 wlan인 게시물을 표시합니다. 모든 게시물 표시
레이블이 wlan인 게시물을 표시합니다. 모든 게시물 표시

2016년 7월 8일 금요일

IoT 디바이스에 공유기 설정정보를 넘겨주는 방법 3 - 가시광선(빛)

IoT 디바이스에 초기 설정 정보를 넘겨주는 방법으로 이전 포스트들에서 설명한 방법 이외에 다른 방법으로 가시광선(빛)을 사용하는 방법도 있다.

이 방식을 사용하는 제품으로 실제 나와 있는걸로는 Quirky의 Nimbus가 있다.


Nimbus의 뒤쪽에는 빛을 감지하는 광센서가 들어 있어 스마트 폰에서 공유기 정보(SSID, password)를 입력하고 시작 버튼을 누르면 스마트폰 전체 화면이 번쩍이며 SSID와 password 정보를 전송한다. 그러면 Nimbus의 광센서를 통해 데이터를 수신하게 된다.

Nimbus를 연결시킬 공유기의 정보(SSID, password)를 입력한다.


Nimbus의 뒤쪽에 센서가 있어 스마트폰 화면을 저 센서에 가까이 가져다 대 주면 된다.



준비가 다 되었으면 스마트폰 화면의 Start Countdown 버튼을 눌러주면 3초 후 부터 화면이 깜빡이며 데이터 전송을 시작한다.


데이터 전송이 끝나면 스마트폰은 Nimbus가 전송된 정보를 사용해 공유기에 접속한 다음 접속완료 메시지를 보내주길 기다린다.



--

IoT 디바이스에 공유기 설정정보를 넘겨주는 방법 1 - 무선 랜 AP모드 활용 

IoT 디바이스에 공유기 설정정보를 넘겨주는 방법 2 - 초음파

2016년 7월 6일 수요일

IoT 디바이스에 공유기 설정정보를 넘겨주는 방법 2 - 초음파

이전 포스트 (IoT 디바이스에 공유기 설정정보를 넘겨주는 방법 1 - 무선랜 AP 모드 활용)에서 설명했던 것 처럼 IoT 디바이스를 무선랜에 접속하도록 하기 위해서는 접속할 공유기의 SSID, password를 넘겨줘야만 한다.

두번째 방법으로는 초음파를 사용해 SSID, password를 전송하는 것이다. 스마트폰에 있는 스피커는 가청 범위의 주파수 뿐 아니고 사람이 들을 수 없는 초음파도 재생이 가능하다. 그러므로 SSID, password를 FSK등의 방식으로 변조(modulation)하여 스피커로 플레이 하면 된다.

예전에 모뎀을 써 봤거나 팩스를 써 보면 삐~찌지지직~ 하는 소리를 들어 본 적이 있을 것이다. 그렇게 소리를 만드는데 그 소리의 주파수를 좀 더 높게 해서 사람 귀에는 안 들리는 소리로 만들어 플레이하는 것이다.



이 방식을 사용하는 디바이스로 아마존의 Dash 버튼이 있다. 아이폰의 화면에서 dash 버튼을 접속시킬 공유기의 SSID, password를 입력 받은 후 dash 버튼을 설정 모드로 만들어 주면 dash 버튼은 마이크를 통해 초음파 신호를 받아들여 소리를 복조(demodulation)하여 SSID, password를 알아낼 수 있다.

- 스마트 폰에서 공유기 정보를 입력


- Dash 버튼을 설정 모드로 변경한 후 아이폰의 스피커와 dash 버튼의 마이크를 일직선이 되게 가까이 가져다 놓는다. 그러면 아이폰이 스피커를 통해 변조된 신호를 출력하고 dash 버튼은 마이크를 통해 그 소리를 받아 공유기 설정정보를 얻게 된다.

정상적으로 공유기 설정정보를 얻으면 dash 버튼은 그 정보로 공유기에 접속한 다음 아이폰에 성공 메지시를 전송해 준다.

--

IoT 디바이스에 공유기 설정정보를 넘겨주는 방법 1 - 무선 랜 AP모드 활용

IoT 디바이스에 공유기 설정정보를 넘겨주는 방법 3 - 가시광선(빛)

2016년 7월 1일 금요일

IoT 디바이스에 공유기 설정정보를 넘겨주는 방법 1 - 무선랜 AP 모드 활용

무선랜을 사용해야 하는 경우 가장 먼저 해야 할 일은 무선랜 단말기(스마트폰, 노트북 등등)을 무선랜 AP(공유기)에 연결시켜 주는 것이다. 연결을 위해서는 먼저 공유기의 SSID, password를 알아야 한다. 그러면 무선랜 설정 화면으로 가서 자신이 연결하고자 하는 공유기의 SSID를 선택하고, 보안 설정이 되어 있으면 암호를 넣어줘야만 한다.

 그런데 이 과정이 노트북이나 스마트폰같이 화면과 키보드가 있으면 아무 문제가 안되지만 대부분의 IoT 기기들은 화면이나 키보드, 또는 둘 다 없는 경우가 많다.

그래서 장치의 무선랜 설정 UI로 여러가지 방법을 사용하고 있다. 이번에 소개하는 방법은 장치가 먼저 무선랜 공유기가 되어 SSID, password를 받아오는 방식이다.

이 방식을 사용한 샤오미의 스마트 플러그이다.




중국용이다 보니 플러그가 메롱한 모양이라 국내에서 사용하려면 일종의 돼지코(?)가 필요하다.




설정 목표는 아래 그림과 같이 스마트 플러그를 NewGateway라는 SSID를 가지고 있는 공유기에 연결시키는 것이다. 하지만 초기에 스마트 플러그는 NewGateway, test12345라는 정보를 모르기에 공유기에 접속할 수가 없다.



이제 이 플러그를 콘센트에 처음 꼽으면 플러그 위쪽면에 노란색 불이 깜빡인다.


노란불이 깜빡인다는건 스마트플러그가 AP모드(공유기처럼 동작)라는 의미이다. 'chuangmi-plug-m1_miapac...'이라는 SSID에 암호는 없다.

스마트폰에서 새오미 앱을 실행시켜 스마트 플러그를 추가하는 메뉴를 선택한다.



친절하게 노란색 불이 깜빡이는지 확인하라고 알려준다. 노란색 불이 깜빡이므로 아래쪽의 'Yellow light flashing'을 체크하면 Next 버튼이 활성화 되므로 버튼을 눌러준다.

여기에서 스마트 플러그를 접속시키고자 하는 공유기의 SSID와 암호를 넣어준다. 위 그림에서 공유기의 SSID는 'NewGateway', 암호는 'test12345'가 된다.




이제 스마트폰을 스마트 플러그 AP에 연결하라는 안내화면이 나온다. 현재 스마트폰 역시 NewGateway 공유기에 연결되어 있는 상태이다. 여기서 아래쪽의 'Go to set Wi-Fi' 버튼을 눌러준다.


무선랜 설정 화면으로 이동하게 된다. 무선 네트웍 목록에 보면 'chuangmi-plug-m1_,iapac...' 이라는 항목이 보일 것이다. 이 무선랜을 선택해 연결해 주면 된다. 아래 그림에서 볼 수 있는것처럼 이름 옆쪽에 자물쇠 그림이 없으므로 보안설정이 따로 되어 있지 않아 암호를 물어보지 않고 바로 연결한다.


연결이 확인 되었으면 다시 MiHome 앱(샤오미 앱)으로 돌아간다.




그러면 화면이 아래와 같이 바뀌고 스마트 플러그는 파란색 불빛이 깜빡인다. 이 단계에서 스마트폰이 스마트 플러그와 통신을 해 공유기의 정보를 넘겨주게 된다.




잠시 기다리면 아래와 같이 연결을 성공했다는 화면이 나오게 된다. 이제 스마트 플러그가 단말기 모드로 공유기에 연결된 것이다.










--

IoT 디바이스에 공유기 설정정보를 넘겨주는 방법 2 - 초음파

IoT 디바이스에 공유기 설정정보를 넘겨주는 방법 3 - 가시광선(빛)






2015년 4월 2일 목요일

라즈베리 파이에서 무선랜 연결이 끊어지면 자동으로 리부팅 시키기

라즈베리 파이를 사용하다 보면 무선랜 연결이 종종 끊어지곤 한다. 네트웍 연결이 끊어져 버리면 원격지에 라즈베리 파이를 놓고 사용하기가 힘들어진다. 그래서 네트웍 연결이 끊어졌는지 확인해서, 끊어진 경우 시스템을 리부팅 시키는 방법을 소개한다.



먼저 아래의 내용을 /usr/local/bin/checkwifi.sh 이라는 이름으로 저장해 준다.

$ cat /usr/local/bin/checkwifi.sh
ping -c4 192.168.1.1 > /dev/null
if [ $? != 0]
then
sudo /sbin/shutdown -r now
fi
$

물론 위에서 노란색 부분의 IP 주소는 자신의 공유기 IP 주소(또는 로컬 네트웍 상에 항상 켜져 있는 장비의 IP주소)로 바꿔줘야 한다.  그리고 저 파일의 퍼미션을 변경해 주는걸 잊으면 안된다.

$ sudo chmod 775 /usr/local/bin/checkwifi.sh
$

이제 checkwifi.sh 스크립트를 실행하면 네트웍 연결을 확인해 끊어졌으면 시스템을 리부팅 시키게 된다.

네트웍 상태를 확인해 시스템을 리부팅 시키는 스크립트는 만들었지만, 시스템에서 주기적으로 저 스크립트를 실행해 주도록 해 줘야 한다. 여기서는 cron 을 이용한다.

crontab을 수정해야 하므로 'crontab -e' 명령을 입력해 crontab 에디터를 연 다음, 아래 줄을 추가하고 저장해준다.

*/5 * * * * /usr/bin/sudo -H /usr/local/bin/checkwifi.sh >> /dev/null 2>&1

위의 줄은 cron이 checkwifi.sh 스크립트를 매 5분마다 sudo로 실행하게 해 설정해주는 것이다.

이제 시스템을 리부팅 한 후 테스트를 위해 일부러 무선랜 연결을 끊어보면 몇분 후 시스템이 리부팅 되는걸 확인할 수 있을 것이다.

리부팅 대신 네트웍만 재시동하기

네트웍 연결이 끊어졌을 때 리부팅은 시간이 많이 걸리기 때문에 단지 네트웍만 재시동하기를 원하는 경우는 checkwifi.sh 파일 내용을 다음과 같이 바꿔주면 된다.

$ cat /usr/local/bin/checkwifi.sh
ping -c4 192.168.1.1 > /dev/null
if [ $? != 0]
then
echo "No network connection, restarting wlan0"
/sbin/ifdown 'wlan0'
sleep 5
/sbin/ifup 'wlan0'
fi
$