ArduinoのWiFiシールド(CC3000)でWiFiのセットアップ

ArduinoWiFiが使える、かつTELEC取得済みのCC3000 WiFiシールドを入手したので、セットアップしてみました。

まずはハンダ付け

スイッチサイエンスから購入したのですが、ブツがビニールに入ってるだけで特に説明書らしきものはありません。Arduinoシールドとはいえ、ピンソケットも付属していないので、一緒にピンソケットも購入しておいたほうがいいでしょう。

このようなWiFiシールドだとさらに重ねる可能性があるので、ピンソケットをこのようにハンダ付けしておきます。なおこのシールドはSPIを使用していますので、重ねる場合は注意して下さい。

f:id:tomo_watanabe:20140510204418p:plain

WiFiのセットアップ

WiFiのセットアップはsparkfunのページのCC3000 Hookup Guideを見ながら行えば問題ありません。

CC3000のライブラリのダウンロード

ライブラリのコードはGithubにありますが、リポジトリのmasterをココからzipファイルで落としてきて展開した方が楽です。落として展開したフォルダを「SFE_CC3000_Library-master」→「SFE_CC3000_Library」のようにちょっと修正して、ライブラリフォルダの中に放り込みます。Macだと~/Documents/Arduino/librariesになると思います。

WebClientで動作確認

ライブラリにファイルを置いたら、ArduinoIDEを起動します。動作確認はArduino Uno R3で行いました。

f:id:tomo_watanabe:20140510210119p:plain

ファイル→スケッチの例→SFE_CC3000_Library→WebClientでサンプルスケッチをオープンします(※Macの場合)

// Constants
char ap_ssid[] = "SSID";                  // SSID of network
char ap_password[] = "PASSWORD";          // Password of network
unsigned int ap_security = WLAN_SEC_WPA2; // Security of network
unsigned int timeout = 30000;             // Milliseconds
char server[] = "www.example.com";        // Remote host site

SSIDとPASSWORDの部分を、接続したいSSID名とパスワードに変更するだけです。serverは接続確認を行う先のURLです。このスケッチは起動時にクライアントのIPアドレスを設定して、"http://www.example.com/index.html"をGETで取ってくるようになっています。書き換えたらArduinoに書き込みます。書き込みが終ったらシリアルモニタを起動します。この時通信速度は115200に設定します。

正常にIPアドレスを取得し、www.example.comからデータを取得できると下記のようにGETで取得したログが流れます。

f:id:tomo_watanabe:20140510210750p:plain

このスケッチをベースにスケッチを書けば通常のEthernetと同じように使えるようになります。

SmartConfigを使ったセットアップ

このCC3000のウリは、スマートフォンSSIDとパスワードを設定できることのようなので、そちらも試してみます。

ファイル→スケッチの例→SFE_CC3000_Library→SmartConfigでサンプルスケッチをオープンします(※Macの場合)

ここでスマートフォンアプリを用意しておきます。iOS版とAndroid版があるのですが、iOS版はiTunesからダウンロードできるのに対し、Android版はなぜかTIにアカウントを登録してapkを自分でインストールする必要があります。今回はapkインストールするのが面倒だったので、iOS版でセットアップしましたが基本的には同じようです。

iPhone

  • SSID : 接続するアクセスポイント
  • Password : パスワード
  • Key : オプションなので特に設定する必要はありません

ここまで設定を入力したら、Aeduinoにスケッチを書き込んでシリアルモニタを起動します。Arduinoが起動すると"Starting SmartConfig"とメッセージが出たら、スマートフォンの"start"ボタンをタップします。成功すると、下記のようにsparkfunのサイトにpingを打って動作確認してくれます。

f:id:tomo_watanabe:20140510212737p:plain

うまく設定ができない(Arduinoタイムアウトする)と下記のようになります。スマートフォンのアプリの"start"のタイミングに気をつけてください

f:id:tomo_watanabe:20140510212928p:plain

FastConnect

SmartConfigでの設定は、毎回起動時にSSIDの設定しなければならず面倒ですが、実は一度SmartConfigでSSIDとパスワードを設定しておけば、CC3000内部に記憶されるので、このFastConnetが利用できるようになります。(電源を外しても記憶しているようなので、内部Flashに記憶しているのかな)

ファイル→スケッチの例→SFE_CC3000_Library→FastConnetでサンプルスケッチをオープンします(※Macの場合)

SmartConfigで設定済みなら、何の問題もなく下記のように動作するはずです。

f:id:tomo_watanabe:20140510213758p:plain

このSmartConfigは結構便利ですね。