본문 바로가기
아두이노 통신

[통신/WiFi] WiFi 모든 것을 활용하는 Arduino WiFi Shield (CC3000)

by 작동미학 2015. 3. 24.
반응형

TI CC3000 칩 기반의 Arduino WiFi shield를 사용해본다.

 

▶ 이 가이드를 따라하면

- CC3000칩 기반의 고급기능 WiFi를 아두이노에서 구현한다.

- 웹에 접속하여 요청을 전송하고 응답을 받아오는 기능, 웹 서버 기능 등을 구현한다..

 

▶ 먼저 읽으면 좋은 글

- 라이브러리 설치 방법 : http://bbangpan.tistory.com/1

- Aliexpress에서 부품 저렴하게 구매하는 방법 : http://bbangpan.tistory.com/5

- 저가 WiFi 구현 모듈인 ESP8266 사용법 : http://bbangpan.tistory.com/19

 

▶ 부품 설명 및 회로 구성

Texas Instruments(TI)의 CC3000기반 WiFi Shield는 현재 시중에 나온 WiFi Shield중 가장 저렴한 가격에 사용이 가능하다. 가격이 낮아도, 나름 세라믹 안테나에 필요한 기능들은 대부분 제공한다. ESP8266이 시리얼 통신에 기반하여 간단한 네트워크 접속 기능만 사용 가능한데 반하여, 이 WiFi shield는 DNS등 필요한 대부분의 기능까지 제공된다.

Arduino UNO와 Mega모두에 호환이 가능하며, SPI를 통해 통신하므로 데이터 핀도 최대한 활용할 수 있다.(SPI통신은 중복으로 핀 사용이 가능하므로 못쓰는 핀이 없다)

인텔 에디슨의 WiFi가 AP기능까지 모두 제공함에 비하면 조금 아쉽다고도 볼 수 있으나, 저렴한 가격에($18, 중국산 모듈) 이렇게 안정된 기능을 제공받기가 쉽지 않고, 내장 세라믹 안테나가 커버하는 거리도 작지 않다.

<CC3000 WiFi Shield사진. UNO에 장착한 것으로 전원이 연결되면 LED가 점등된다>

<이렇게 u.FL기반의 2.4Ghz 확장 안테나도 연결하면 거리 커버리지가 커진다>

여기에Arduino의 기본 SD메모리 라이브러리를 통해 SD메모리를 쓸 수도 있는 슬롯도 제공한다. 대개 데이터를 로깅하다가 주기적으로 네트워크로 전달하는 역할을 위해 디자인된 것으로 보인다.

 

▶ 소스 코드 입력 및 구동

여기서는 Adafruit에서 제공하는 CC3000 라이브러리(https://github.com/adafruit/Adafruit_CC3000_Library/archive/master.zip)를 사용하도록 하자. 해당 라이브러리를 Arduino IDE설치폴더/libraries밑에 압축을 풀자. 압축을 푼 후 폴더명인 Adafruit_CC3000_Library-master는 첫번째 강의에서 본 대로 Adafruit_CC3000으로 rename해야 별 이슈없이 사용이 가능하다.

여기서는 웹서버에 접속하여 내용을 받아 출력하는 시연을 하기 위해 WebClient예제를 선택한다. 선택 예제는 아래와 같다.

<예제중에 WebClient선택>

해당 소스 중에 반드시 변경해야 할 것이 접속할 AP의 이름과 암호 변경이 필요하다. 아래 라인을 찾아 바꾸자. SSID에 AP명을, PASS에는 암호를 적어넣으면 된다.

 

#define WLAN_SSID "xxxx" // cannot be longer than 32 characters!

#define WLAN_PASS "xxxxx"

 

기타 접속할 서버 주소와 URL등도 변경 가능하다. DNS기능을 내장하므로 IP가 아니어도 된다.

 

#define WEBSITE "www.adafruit.com"

#define WEBPAGE "/testwifi/index.html"

 

적절한 값으로 변경한 후, 컴파일 및 실행하고 시리얼 모니터를 실행하면 아래 결과 화면을 볼 수 있다. 시리얼 모니터의 통신속도는 115,200bps로 변경하자(시리얼 모니터 화면 오른쪽 하단에서 조절 가능).

<예제 업로드 후 실행 예제>

잘 작동하지 않는다면, 무선AP와의 거리를 가깝게 해본다. 벽 하나 정도는 뚫을 정도의 성능은 충분히 제공하므로 지나치게 가까이할 필요는 없다. 좀더 먼 거리의 접속이 필요하다면 u.FL 2.4Ghz의 안테나를 사서 장착할 수 있다. (다양한 종류의 구매가 가능하다.)

동일한 방법으로 웹서버를 구성할 수 있다. 예제 선택시 WebClient대신에 HTTPServer를 골라 역시 무선 AP명과 암호를 변경한 후 업로드 실행하고 시리얼 모니터를 띄워보자.

<HTTP server를 실행하고 시리얼 모니터로 확인한 화면(요청 하나 응답)>

IP정보를 보고 PC에서 접속을 해보면 이렇게 보인다.

<브라우저로 할당된 IP에 접속해보면 위와 같이 보인다.>

기타 static IP설정, SSID scan 등 다양한 기능을 사용할 수 있다.

▶ 구매 가이드

CC3000 WiFi Shield : http://www.aliexpress.com/w/wholesale-cc3000-wifi-shield.html ($18)

강의 키워드

CC3000 WiFi Shield, TI CC3000, 와이파이 쉴드, 와이파이 shield, WiFi 쉴드, 아두이노 와이파이, Arduino WiFi

 

반응형