EspruinoをWiFiに繋ぐ - GETリクエストを投げる


Espruinoを手に取ったからにはIoT的な事がしたいはずです。IoTというからにはネットに繋ぎたいはずです。というわけでwifiに繋いでいきましょう。

目標

EspruinoにCC3000 Wifiモジュールをつなぎ、Wifi経由でGetリクエストを投げます。公式(英語)にあるように、CC3000Wifiモジュールを使います。

必要なもの

  • Espruino
  • CC3000 WiFiモジュール
  • ピンヘッダ (CC3000用)
  • Wifiネットワークの情報 SSID/パスワード

CC3000Wifiモジュールに何を使うかですが、とりあえず公式で勧められているコレか、日本でも買えるコチラが良いかと思います。後者の方も私の手元では動作しています(公式な保証はできませんよww)ので、海外発送の時間とコストが惜しい人にはおすすめです。

Espruino同様、ワイヤで結線するにはピンヘッダが居るので、Espruinoにつけたときの余りを使うと良いと思います。ちなみに私はオスをつけています。

結線

線が多く複雑に見えますが、落ち着いて配線しましょう。
下の図の通り配線します(図のEspruinoのB3~B8は実際の配置とは逆なので気をつけてください。忠実にすると線がクロスしちゃうので...)

プログラム

以下のような感じになります。wifiConfigには環境に応じた値を設定しましょう。実行してしばらく待つと Hello World!とコンソール出力されるはずです。

// wifi接続情報 ssidとパスワード
var wifiConfig = {
  ssid: "",
  key: ""
};

// CC3000Wifiモジュールに繋ぐ
var wlan = require("CC3000").connect();
// wifiネットワークに繋ぐ
wlan.connect( wifiConfig.ssid, wifiConfig.key, function (s) {
  // コネクション確立時のコールバック 
  if (s=="dhcp") {
    // GETリクエストを投げる : 公式の Hello World! と返してくれるURL
    require("http").get("http://www.pur3.co.uk/hello.txt", function(res) {
      var data = "";
      res.on('data', function(chunk) {
        // 細切れのデータを変数に足し込む
        data += chunk;
      });
      res.on('close', function(){
        // レスポンスが全部かえってきたら溜め込んだデータをコンソールに出力
        console.log(data);
      });
    });
  }
});

実行

wifiモジュールにつないで、wifiにつないで、そこからリクエストを投げて、、という流れなのでコレまでと違って少し実行まで時間がかかります(5秒~15秒くらい)。

できました。
多少熱くなりますが、大丈夫です。ただ、配線を悪い感じで間違った場合は、触った瞬間に尋常ではない熱さを感じることができます。すぐに電源を抜きましょう。当然ですが誤配線は故障の原因になりますので、慎重に、落ち着いて結線することが大事です。

次のステップ

ようやくインターネットにつながったので、これからPOSTリクエストを投げたりサーバとして動かしたりしていきます。ようやくIoT的にEspruinoが使えるようになるので、出来る事の幅が広がりますね。

ただ、このCC3000WiFiモジュール、結構電気を使います。PCに繋がず、安定して長時間動かすためには電源的な部分も含めて色々工夫をする必要があるので、それについても触れられたらと思っていたりします。