株式会社インデペンデンスシステムズ横浜

システム開発エンジニアの西田五郎が運営しております。新規開発案件のご依頼をお待ちしております。

*

Arduino CC3000 WiFi シールドを使ってみた

      2015/12/01

前回の記事では、Arduino Ethernetシールドの旧製品版を使ってみました。今回は、CC3000 WiFi シールドを使ってみました。以下の製品です。
CC3000 WiFi シールド

以下はArduino UNOに接続した状態です。
wifishld1

上記スイッチサイエンスさんのページからの引用で主な特徴を列挙します。
・CC3000はTI(Texuas Instruments)社のワイヤレスネットワークプロセッサ
・TI社の提供するスマートフォンアプリ「SmartConfig」
・技術基準適合証明済

詳細は上記のページを参照して頂くとしまして、ここでは早速サンプルスケッチを動かしてみたいと思います。前回の記事と全く同じように、http://www.example.comからindex.htmlをGETしてレスポンスを表示するという処理です。メーカ提供のライブラリを使いますので、その準備から始めます。

ライブラリの準備
製品のページのリンクからライブラリをダウンロードします。ダウンロードしたファイルを展開すると、SFE_CC3000_Libraryというフォルダが出来ました。

そのダウンロードしたライブラリフォルダをArduinoのライブラリフォルダへコピーします。私の場合は、Windows環境なので以下のフォルダへコピーしました。
(ユーザフォルダ)\Documents\Arduino\libraries
0010

ライブラリフォルダ配下の構成が以下のようになりました。
0011

以上でライブラリの準備は完了です。

サンプルスケッチの読み込みから実行まで
もちろんですが、実際に接続するWiFiのアクセスポイントが必要です。そのWiFIのアクセスポイントのSSIDとパスワードを確認しておきます。

サンプルスケッチの読み込み
前項のようにライブラリの準備が出来ていれば、Arduino IDEのメニュー → ファイル → スケッチの例 → SFE_CC3000_Library → WebClient を選択することが出来ます。そうすると今回のサンプルスケッチを読み込むことが出来ます。 
0014

アクセスポイントの設定

サンプルスケッチの以下の部分を編集します。”SSID”と”PASSWORD”を編集します。

// 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

これでArduino IDEから「マイコンボードに書き込む」で書き込みます。シリアルモニタを起動して通信速度を115200bpsに設定します。そうすると以下のように実行出来ました。
0015

全文は以下です。


Content-Type: text/html
Date: Thu, 30 Jul 2015 13:11:51 GMT
Etag: "359670651"
Expires: Thu, 06 Aug 2015 13:11:51 GMT
Last-Modified: Fri, 09 Aug 2013 23:54:35 GMT
Server: ECS (rhv/8180)
X-Cache: HIT
x-ec-custom-error: 1
Content-Length: 1270
Connection: close

<!doctype html>
<html>
<head>
    <title>Example Domain</title>

    <meta charset="utf-8" />
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <style type="text/css">
    body {
        background-color: #f0f0f2;
        margin: 0;
        padding: 0;
        font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
        
    }
    div {
        width: 600px;
        margin: 5em auto;
        padding: 50px;
        background-color: #fff;
        border-radius: 1em;
    }
    a:link, a:visited {
        color: #38488f;
        text-decoration: none;
    }
    @media (max-width: 700px) {
        body {
            background-color: #fff;
        }
        div {
            width: auto;
            margin: 0 auto;
            border-radius: 0;
            padding: 1em;
        }
    }
    </style>    
</head>

<body>
<div>
    <h1>Example Domain</h1>

前回の記事と同様のレスポンスが取得出来ました。やはり前回の記事と同様に以下のTCP/IPの階層と対比して考えるのがいいかなと思います。

アプリケーション層 – アプリケーションプロトコル(HTTP、FTP、SMTP等)
トランスポート層 – プログラム間通信、制御(TCP、UDP等)
ネットワーク層 – ネットワーク層(IP4、IP6等)
リンク層 – Ethernet、Wifi等

前回はEthernetシールドで今回はWiFi シールドです。ということは上記の階層ではリンク層の実装方法が違うということになります。そのため前回と使用しているライブラリは違いますし、接続方法の手順も違います。

但し、ネットワーク層は同じIP4で接続しています。このネットワーク層まで確立すれば、TCP通信でHTTPプロトコルのGETを実行するという意味では前回と同じです。

そうしますと、EthernetシールドでもWiFi シールドでもそれぞれのライブラリが利用出来るので、スケッチとしては、トランスポート層とアプリケーション層の処理がメインとなってくると思います。具体的にはTCPを使うのか、UDPを使うのかとその通信でどのようなアプリケーションプロトコルの処理をするかということです。

サンプルスケッチで動作確認をしただけですが、今回はここまでです。また何か書けたら公開したいと思います。

Amazon関連商品


 - Arduino, 通信制御

AdSense

AdSense

  関連記事

無線マイコンTWE-Lite DIPを使ってみた

無線マイコンのTWE-Lite DIPを使ってみました。製品の詳細はメーカのペー …

Arduino互換機の「びんぼうでいいの(S)」を使ってみた

Arduino互換機のびんぼうでいいの(S)という製品を買ってきて使ってみました …

温度センサADT7410(その1)i2C通信とは

温度センサのADT7410を使ってみます。ADT7410はアナログ・デバイセズ社 …

無線マイコン ToCoStick(トコスティック)を使ってみた

無線マイコンの ToCoStick(トコスティック)を使ってみました。 前回のT …

無線マイコン ToCoStickのシリアル通信専用アプリを使ってみた

無線マイコンの ToCoStick(トコスティック)のシリアル通信専用アプリを使 …

Arduino UnoでSPI通信(その2)温度センサADT7310

Arduino UnoでSPI通信の2回目です。前回のArduino UnoでS …

無線マイコン ToCoStick(トコスティック)をAndroidで使ってみた

無線マイコンの ToCoStick(トコスティック)をAndroidスマホで使っ …

Arduino UnoでSPI通信(その1)Arduino Uno2台で通信

ArduinoでのSPI通信についてです。SPI通信(Serail Periph …

温度管理システム的なものを作ってみる(その1)システム概要

「温度管理システム的なものを作ってみる」の1回目です。AndroidでUSBシリ …

AndroidでUSBシリアル通信(その1)ハードウェア・ソフトウェア構成等

Androidスマートフォン、タブレットでUSBシリアル通信を行う方法についてで …