2014년 3월 5일 수요일

17. MCU에서 Gainspan 와이파이모듈을 provisioning으로 설정하기


이번 장에서는 MCU에서UART/SPI/SDIO 등의 serial interface를 통한 AT Command 를 사용하여 Gainspan 와이파이모듈을 provisioning  모드로 설정하는 방법에 대하여 설명하도록 하겠습니다.

이 전 장에서 설명드렸듯이 와이파이모듈에서 provisioning을 사용하는 이유는, 제품이 출하시에 각 댁내에 있는 공유기나 WiFi 망의 SSID/패스워드를 설정하여 나갈 수 없기 때문에 제품 설치니 설치기사 나 혹은 사용자가 직접 사용하는 공유기/WiFi 망의 SSID/패스워드를 설정하여 제품이 공유기/WiFi 망에 연결하여 internet에 연결할 수 있도록 하는 것 입니다.

그러면, 각각의 step 별 at command에 대하여 알아보도록 하겠습니다.

1. at+nset=192.168.1.1,255.255.255.0,192.168.1.1 ; WiFi 에 대한 ip address와 subnet를 설정합니다.
2. at+wm=2 ; 와이파이모듈을 AP mode로 설정합니다.
3. at+dhcpsrvr=1 ; DHCP Server를 설정합니다.
4. at+wa=SSID,, ; 와이파이망의 SSID를 설정합니다
5. at+webprov=admin,admin ; 192.168.1.1/gsprov.html로 접속시 id 와 패스워드를 admin, admin으로 설정합니다.

위의 command를 입력 후, smartphone 이나 PC에서 4번함목에서 설정한 SSID를 쉽게 찾을 수 있습니다.
4번항목에서 입력한 SSID를 찾아서 double click하면 Smartphone 혹은 PC가 와이파이 모듈의 공유기에 연결됩니다.

일단 PC 혹은 스마트폰이 공유기에 연결되면, web brower를 open하여 검색창에 192.168.1.1/gsprov.html을 입력하면 Gainspan의 webserver가 나타납니다. (이 webpage는 사용자가 수정할 수도 있습니다)

그리고, 첨부된 Gainspan Webprovision 문서를 참고하여 댁내의 SSID를 찾아서 암호화 방식과 패스워드를 입력하고, DHCP client로 설정하여 저장하면 web provisioning page를 통하여 설정된 값들을 UART로 볼 수 있습니다.
또, MCU는 UART로부터 display되는 값을 읽어 필요한 data만 저장하여 추후 각 댁내의 공유기/WiFi 망 연결시 사용할 수 있습니다.




다음장에서는 Gainspan 와이파이모듈을 사용할 때 와이파이모듈의 firmware를 update하는 방법에 대하여 알아보도록 하겠습니다.

16. WiFi module 의 provisioning에 대하여


이번 장에서는 WiFi solution 의 provisioning에 대하여 설명하도록 하겠습니다.

현재 우리가 생활하고 있는 모든 공간에는 한개, 혹은 다수의 WiFi network 혹은 AP (Access Point), 또는 스마트폰을 통한 테더링 이 가능해, WiFi network의 SSID와 password만 안다면 언제 어디서든지 WiFi 망을 통하여 인터넷에 접속하거나 Server에 접속이 가능합니다.
이는 사물에도 동일하게 적용되어 WiFi 망의 SSID와 password만 안다면 WiFi 망을 통하여Server에 일정한 간격으로 data를 주거나 받을 수 있습니다.

쉽게 풀어서 이야기 하면, 요즈음 대부분의 가정에 AP(공유기) 또는 다른 WiFi network 설치되어 있습니다. 따라서, WiFi 가 가능한 보일러, 온도조절기, Video Phone, 냉장고, 세탁기, door lock 를 사용한다면 언제든지 WiFi망을 통하여 Server로 data 를 전송하고 받을 수 있습니다.
또, 이 때 WiFi가 가능한 보일러, 온도조절기, Video Phone 등에서 WiFi 망에 접속을 위해서는 공유기/WiFi network의 SSID와 password를 알아야 합니다.
물론 때로는 password를 필요치 않는 WiFi 망이 있지만 이 경우에는 예외 입니다.

하지만, WiFi 가 가능한 보일러, 온도조절기, Video Phone 등을 제조하는 회사에서 제품을 출시할 때 댁내에서 사용하는 모든 공유기/WiFi 망의 SSID와 password를 저장하여 댁내 설치시 자동으로 WiFi망에 접속하도록 하기는 불가능합니다.
따라서, 이 때 사용자 혹은 설치기사가 WiFi가 가능한 보일러, 온도조절기, Video Phone 등을 댁내의 공유기/WiFi network 에 쉽게 접속하기 위한 방법이 provisioning  입니다.

WiFi provisioning에는 여러가지 방법이 있으며, 사용자 혹은 설치기사가 좀 더 쉽게 공유기/WiFi network에 연결할 수 있도록 더 많은 방법이 개발되고 있습니다.

그 중 가장 널리 사용되는 방법이 WiFi 제품 출시시 DHCP Server를 설정하여 사용자 또는 설치기사가 PC 혹은 Smartphone으로 WiFi 제품의 webpage에 접속하여 집적 사용하는 공유기/WiFi network의 SSID와 password를 입력하는 방법과 전용 Smartphone App를 통한 방법 이 있습니다.
그 외에도 Smartphone App의 QR code를 통한 인증, RFID 혹은 NFC를 통한 인증 등의 좀 더 쉽게 설정할 수 있는 다양한 방법이 개발되고 있습니다.


다음 장에서는 Gainspan WiFi solution를 사용할 때  Gainspan WiFi solution에 내장된 webpage를 통하여 SSID와 password를 설정하여 댁내의 공유기/WiFi network에 접속하는  방법에 대하여 알아보도록 하겠습니다.

15. MCU에서 Gainspan 와이파이모듈을 SPP WiFi module로 설정하기


이 번 장에서는 Gainspan WiFi 모듈을 마치 Bluetooth 의 SPP mode 처럼 설정하여 MCU의 UART로 나오는 data를 그대로 WiFi 망으로 보낼 수 있는 auto connect 모드 설정 방법에 대하여 설명하도록 하겠습니다.

먼저 WiFi 모듈은 TCP client로 설정하여 auto connect mode 설정하는 방법은 다음과 같습니다.

1. at+ndhcp=1 ; enable DHCP
2. at+wwpa=password ; WPA 방식의 비밀번호 입력
3. at+nauto=0,1,TCP Server ip address, port number ; WiFi module를 TCP client로 설정하고 TCP Server ip adddress에 지정된 port number로 접속
4. at+wauto=0,SSID,,channel number ; Gainspan WiFi module을 연결할 공유기의 SSID와 channel number 입력
5. atc1 ; auto connect mode enable
6. at&w0 ; 위의 1~5 까지의 설정을 profile 0로 저장
7. at&y0 ; 다음 booting 시 profile 0을 default로 profile로 설정하여 실행
8. at+reset ; reset

이렇게 설정한 후 at+reset를 실행하거나 reboot를 하면 1~7까지의 WiFi 설정 사항들은 Gainspan module 내부의 Flash에 저장되어 자동으로 auto connect mode를 실행한다.
따라서, 와이파이 모듈의 serial port로 들어오는 data는 모두 data로 간주되어 그대로 WiFi 망을 통해 TCP Server로 전송된다.
이때, auto connect mode에서 command 를 입력할 수 있는 모드로 전환하기 위해서는 +++ 를 입력한 후 1초후에 command mode로 전환할 수 있다.

이 외에도 Gainspan WiFi module을 TCP Server로 설정하고 auto connect mode를 설정할 수 있으며, UDP 방식에서도 auto connect mode를 지원한다.

단, Gainspan WiFi module을 auto connect mode에서 사용하기 위해서는 사전에 사용중인 공유기의 SSID와 password 을 알아야 하는 문제가 있으나, 이는 다음장에서 설명되는 WiFi module의 provisioning 으로 해결할 수있습니다.




TCP Server 설정시의 ip address  대신에 domain name으로도 설정이 가능합니다.

14. MCU에서 Gainspan 와이파이모듈 설정하기

이 번 장에서는 MCU에서 간단한 at command를 통하여 Gainspan WiFi module을 설정하는 방법에 대하여 알아보도록 하겠습니다.

먼저 가장 많이 사용되는 집이나 사무실에 있는 WiFi 공유기와 연결하여 MCU의 data를 WiFi 를 통하여 Server로 보낼 때의 command에 대하여 알아보도록 하겠습니다.

1. at+ndhcp=1 ; Gainspan WiFi module을 DHCP client로 설정
2. at+wwpa=password ; WiFi 공유기의 비밀번호
3. at+wa=SSDI ; WiFi 공유기의 SSID

WiFi 공유기의 비밀번호와 SSID가 맞다면, 일단 위의 3줄의 command만으로 MCU를 WiFi 공유기에 연결할 수 있습니다. MCU 가 공유기를 통하여 인터넷에 연결이 된 것을 확인하기 위하여 다음의 command를 사용합니다.

4. at+dnslookup=damain name ; at=dnslookup=www.google.com 를 입력하면 www.google.com의 ip address를 return 합니다.
5. at+ping=ip address,5 ; 4번에서 return된 ip address로 5번 ping을 실행합니다.

일단 ping이 정상적으로 동작한다면 MCU가 인터넷에 정상적으로 연결되어 있음을 의미합니다.
자 그러면, data를 보내기 위하여 TCP Server 와 연결하겠습니다.

6. at+nctcp=tcp server ip address,port number

TCP Server와 연결이 되면, <ESC>S0를 누른후 data를 입력하고 <ESC>E를 치면 원하는 data를 TCP server로 보낼 수 있습니다.


그러면, 다음장에서는 <ESC>S0 를 type 하지 않고도 data를 전송하는 WiFi auto connect mode에 대하여 알아보도록 하겠습니다.

13. MCU에 와이파이모듈 연결하기


이 번 장에서는 MCU에 와이파이모듈을 연결하는 방법에 대하여 알아보도록 하겠습니다.
사용되는 와이파이모듈은 Gainspan의 GS2100M 802.11b/g/n WiFi module 이며 내부에 2MB Flash memory 를 내장하고 있습니다.

기본적으로 MCU와 와이파이모듈간에는 serial interface를 통한 at command를 통하여 모듈을 설정하고, 데이터를 송수신 하고 있기 때문에 전원과 serial interface signals 외에 다른 pin들은 연결할 필요가 없습니다.
하지만, 개발용으로 혹은 양산중에 software upgrade가 필요하기 때문에 GPIO pin 중 하나를 스위치를 통하여 VCC 혹은 NC 로 연결하여 내부 flash에 새로운 code를 download할때에는 program 모드로, 그렇지 않을 경우 run mode로 사용하기를 권장합니다.

GS2100M의 경우 GPIO31 이 VCC로 연결되어 있으면 program mode, 연결이 되지 않으면 run mode로 인식하며 다음의 회로 연결을 참조 부탁드리겠습니다.

MCU 와 와이파이모듈간 serial interface로 UART를 사용하였습니다.






 

12. Gainspan WiFi module 소개


이번장에서는 Gainspan에서 나오는 WiFi module 종류에 대하여 알아보도록 하겠습니다.

3가지 size의 모듈이 있으며 모두 모듈내의 Flash Memory에 binary를 내장하여 외부 CPU에서 UART/SPI/SDIO interface를 통한 at command로 제어하거나, 혹은 standalone으로 동작하고 module의 GPIO/ADC/DAC를 사용하여 sensor로부터의 신호를 받거나 외부 sensor를 제어할 수 있도록 되어 있습니다.

이 중 GS2100MIx series는 가장 저렴한 module type으로 외부에서 전원을 공급하는 application에 아주 쉽게 사용될 수 있습니다.
GS2011MIxx series는 module 내부의 RTC 출력을 사용하여 전원을 좀 더 정교하게 제어할 수 있어 battery를 사용하여 동작하는 application에 많이 고려되고 있습니다.
참고 부탁드리며, 좀 더 자세한 내용은 www.linkcon.co.kr로 문의 바랍니다.

Features GS2100MI
(GS2101MI)*
GS2011MI
(GS2012MI)*
GS2011MIxS
(GS2012MIxS)*
Size(W x L x Height) 18mm x 25mm x 2.5mm 22.8mm x 32.5mm x3.63mm 19.4mm x 28.7mm x 3.35mm
No. of Pins 40 49 37
SMT solder down solder down solder down
RF Output 15dBm (802.11b)
11dBm (802.11n)
15dBm (802.11b)
11dBm (802.11n)
15dBm (802.11b)
11dBm (802.11n)
Antenna Options PCB/Trace - GS2100MIP
External (u.FL) - GS2100MIE
Chip/Ceramic - GS2011MIZ
External (u.FL) - GS2011MIE
PCB/Trace - GS2011MIxS
External (u.FL) - GS2011MIxS
Data Rates 802.11b/g/n 802.11b/g/n 802.11b/g/n
Host Connections UART, SPI, SDIO UART, SPI, SDIO UART, SPI, SDIO
Internal Flash 2MB 4MB 2MB
Operating Voltage 2.7~3.6V 2.7~3.6V 2.7~3.6V
I/O Voltage 2.7~3.6V 1.8V, 3.0V, or 3.3V 1.8V, 3.0V, or 3.3V
Operating Temp -40 ºC to +85 ºC -40 ºC to +85 ºC -40 ºC to +85 ºC
Certifications FCC, ETSI, IC, TELEC, WI-FI, WPS 2.0, WI-FI Direct, SEP 2.0, Zigbee IP/SEP 2.0*

Features GS2015MExS
(GS2016MExS)
GS1550M/D
Size(W x L x Height) 19.4mm x 28.7mm x 3.35mm 22.8mm x 36.8mm x 3.63mm
No. of Pins 37 48
SMT solder down solder down
RF Output 20dBm (802.11b)
16dBm (802.11n)
14dBm (802.11b)
11dBm (802.11n 2.4GHz)
12dBm (802.11n 5GHz)
Antenna Options PCB/Trace - GS2015MEPS
External (u.FL) - GS2015MEES
Stamped - GS1550M
Dual External (u.FL) - GS1550MD
Data Rates 802.11b/g/n 802.11a/b/g/n
Host Connections UART, SPI, SDIO UART, SPI
Internal Flash 2MB  
Operating Voltage 2.7~3.6V 3.14~3.46V
I/O Voltage 2.7~3.6V  
Operating Temp -40 ºC to +85 ºC -20 ºC to +85 ºC
Certifications FCC, ETSI, IC, WI-FI



 

11. Bluetooth logo / trademark 를 사용하기 위한 EPL 신청 절차 및 비용


이번 장에서는 Bluetooth logo 또는 trademark를 사용하기 위하여 필요한 EPL (End Product Listing) 절차와 비용에 대하여 알아보도록 하겠습니다.

먼저 EPL를 신청하기 위해서는 사용하고자 하는 IC 혹은 모듈이 Bluetooth SIG로부터 BQB 인증을 완료하였는지 확인을 해야 합니다. BQB 인증이 완료된 제품은 보통 2개 이상이 QDID number를 Bluetooth SIG로부터 부여  받습니다.
BQB 인증이 완료되지 않는 모듈 혹은 IC를 사용하는 경우는 TUV 나 SGS 같은 인증 기관에서 모듈 혹은 IC에 대한 test를 진행한 후 인증을 받아야 합니다.
그리고, 그 인증서를 Bluetooth SIG에 제출하고 하나의 QDID를 사야 합니다.
이때 인증기관에서의 인증 비용과 Bluetooth SIG로 부터 한개의 QDID를 사기 위한 비용은 대략 $15,000 (천육백만원) 정도 소요됩니다.
대부분의 출시되고 있는 Bluetooth IC는 Bluetooth SIG로부터 component로 인증을 받고 있기 때문에 EPL을 위해서는 사용될 수 없습니다.
따라서, 수량이 따라 IC를 controller subsystem으로 재인증을 받거나 또는 인증을 완료한 모듈을 사용하기를 권장합니다.

BQB 인증을 완료하고 두개 이상의 QDID number를 가지고 있다면 https://www.bluetooth.org/login/register/ 에 접속하여 member로 먼저 가입을 하여야 합니다.
그리고, 가입이 완료되면 https://www.bluetooth.org/login/register/로 다시 접속하여 login을 하고,
https://www.bluetooth.org/tpg/listings.cfm에 접속하여 가지고 있는 Host Subsystem의 QDID를 입력하고 search하여 display되는 창의 왼쪽의 create new EPL를 클릭하여 EPL 신청을 하실 수 있습니다. 또, EPL 신청을 클릭하여 display되는 화면에서 Link additional QDLs 창에 다른 QDID를 추가하여 신청하시면 됩니다.
이때 반드시 두개 이상의 QDID (one for Host Subsystem and one for Controller subsystem)를 입력해야만 인증을 받을 수 있으며, 한개만 입력해도 다음창으로 넘어는 가나 인증은 무효처리됩니다.
일반적으로 Host Subsystem은 Stack에 대하여 사용하며, Controller Subsystem은 module 이나 IC로 사용합니다.

하나의 EPL당 소요 비용은 보통 $8,000(구백만원) 이며, associated member인 회사는 50% discount 된  $4,000 (사백오십만원) 정도입니다.


두 개 이상의 QDID를 가지고 어떠한 제품에 대하여 EPL를 받았고, Bluetooth hardware 변경이 없는 파생 모델일 경우 이미 받은 EPL를 계속 사용할 수 있으나, Bluetooth hardware 가 변경이 되었거나 제품이 EPL 받은 제품과 아주 다를 경우 또다시 EPL을 신청해야 합니다.