SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

IoT Starter Studio

話題のIoTプラットフォーム連携デバイスが日本上陸! 「Electric Imp」開発キットを試そう

IoT Starter Studio 第18回

  • X ポスト
  • このエントリーをはてなブックマークに追加

WebからLチカを試してみよう

 Electric Impでは、Agentを使って簡単にデバイスの遠隔制御を行うことができます。公式サイトの図のように、ブラウザからデバイスのLEDをオンオフできるようにしてみましょう。

 IDE上で、「Device」のタブには以下のコードを貼り付けます。

// Import Electric Imp’s WS2812 library
#require "WS2812.class.nut:3.0.0"

// Set up global variables
spi <- null;
led <- null;

// Define the loop flash function
function setLedState(state) {
    local color = state ? [255,0,0] : [0,0,0];
    led.set(0, color).draw();
}

// Set up the SPI bus the RGB LED connects to
spi = hardware.spiAHSR;
spi.configure(MSB_FIRST, 6000);

// Set up the RGB LED
led = WS2812(spi, 1);
hardware.pinH.configure(DIGITAL_OUT, 1);

// Register a handler function for incoming "set.led" messages from the agent
agent.on("set.led", setLedState);

 「Agent」側には以下のコードを貼り付けます。

// Log the URLs we need
server.log("Turn LED On: " + http.agenturl() + "?led=1");
server.log("Turn LED Off: " + http.agenturl() + "?led=0");

function requestHandler(request, response) {
    try {
        // Check if the user sent led as a query parameter
        if ("led" in request.query) {
            // If they did, and led = 1 or 0, set our variable to 1
            if (request.query.led == "1" || request.query.led == "0") {
                // Convert the led query parameter to a Boolean
                local ledState = (request.query.led == "0") ? false : true;

                // Send "set.led" message to device, and send ledState as the data
                device.send("set.led", ledState); 
            }
        }
    
        // Send a response back to the browser saying everything was OK.
        response.send(200, "OK");
    } catch (ex) {
        response.send(500, "Internal Server Error: " + ex);
    }
}

// Register the HTTP handler to begin watching for HTTP requests from your browser
http.onrequest(requestHandler);

 「Build and Run」で実行すると、ログの部分にLEDをオンオフするURLが表示されます。

 「Turn LED On:」に続く~?led=1のURLにアクセスするとLEDが点灯し、「Turn LED Off:」以降の~?led=0というURLにアクセスするとLEDが消えるようになります。

 現在はデバイスの近くで実行しているのであまり実感がありませんが、このURLを使えばどこからでもデバイスのLEDを制御することができます。

おわりに

 ImpExplorer Developer Kitを使って、ウェブからのデバイス制御をかなり簡単に試すことができました。温度、湿度、気圧、3軸加速度の4つのセンサーや刺すだけで使えるGroveセンサーのコネクタも搭載されており、センシングや取得したデータのウェブ連携も容易に行うことができます。

 通常の開発ではハードルの高いWi-Fi接続や開発環境の用意、モジュール拡張などをElectric Impを使うと一挙に解決することができるため、IoTプロダクト開発にはかなりオススメのデバイスです。

 Imp API ReferenceSquirrel Language ReferenceCode Librariesの開発ツール群などを参考に様々なウェブサービスとの連携なども実現できるので、ぜひ試してみてください。

購入はこちら

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
IoT Starter Studio連載記事一覧

もっと読む

この記事の著者

ちゃんとく(dotstudio株式会社)(チャントク)

 大学までは文系で法学を学んでいたが「モノを作れる人」に憧れて知識ゼロからエンジニアに転身。本業ではPHPでWebサーバサイド開発を担う傍ら、テクニカルライターとしてdotstudioに参加している。 Node.jsユーザグループ内の女性コミュニティ「Node Girls」を主催。趣味の電子工作では日本最大のIoTコミュニティ「IoTLT」では体当たり電子工作を発表中。 Twitter: @tokutoku393 URL: dotstudio株式会社

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/10245 2017/06/30 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング