Simple IoT Boardファーストタッチ

Simple IoT Boardファーストタッチ

じぇーけーそふと
じぇーけーそふと (ID1705) 公認maker 2015/12/03
0

Webブラウザでプログラム開発ができるマイコンボードであるmbedプラットフォーム。その中の一つのmbed LPC1114FN28にWi-FiとGroveコネクタを拡張できるSimple IoT Boardを使ったワークショップを11/14(1114の日)に開催しました。
mbedを初めて触った方も含め20名ほどの方に参加いただきました。
ワークショップの内容はmbedのファーストタッチからSimple IoT Boardに温度センサを繋げて、Webサービスにアップロードするというところまでという内容で行いました。

Simple IoT Boardについては以下の記事も参考にしてください。
https://media.dmm-make.com/item/3499/

会場の都合上、募集20名という人数でしたが、キャンセル待ちの登録も多く頂きました。
そのため、同じ内容でもう一度ワークショップを予定しています。
ワークショップに関する情報はmbed祭りのDoorkeeperグループでお知らせするので、是非グループに登録下さい。

↑ワークショップの様子 mbed LPC1114FN28に搭載されているCPUのメーカーであるNXPセミコンダクターズさんの会議室をお借りしました。

本記事ではmbed Advent Calendar 2015の3日目の記事としてワークショップでも行ったSimple IoT Boardのファーストタッチを紹介します。

Simple IoT Board ファーストタッチ

Simple IoT Boardはソケットやコネクタが実装されていないので、初めにそれらをハンダ付けする必要があります。
とりあえず動かすにはピンヘッダと必要な数だけのGroveコネクタを取り付ければOKです。

ハンダ付けが終わったら、mbed LPC1114FN28を取り付けます。

mbed LPC1114FN28のUSBコネクタをパソコンに繋げればUSBドライブとして認識されるので、ここにmbedオンラインコンパイラからダウンロードしたbinファイルを入れて、USBコネクタの真横のボタンを押せばプログラムが動き出します。

すぐに動かせる様にSimple IoT Board用のサンプルプログラムを公開しています。
サンプルプログラムはmbedサイトのコンポーネンツページにあります。
ComponentsExpansion boardsSimple IoT Board です。

HTTP GETでHTTPサーバから情報を取得して、その情報を表示するプログラムとIFTTTのMakerチャンネルにPUSHするプログラムをサンプルとして用意しています。

ここではHTTP GETのサンプルの動かし方を紹介します。
このサンプルはWebサーバから情報をGETとして、その内容をシリアルで出力するプログラムになっています。

まずは、「SITB_HttpGetSample」のImport Program(青いボタン)をクリックしてコンパイラのワークスペースに追加します。

Simple IoT Board用のライブラリを含んだワークスペースが追加されます。
Wi-Fi環境に合わせてmain.cppの内容を変更する必要があるので、開いてください。

main.cppのコードは次の様になっています。

#include "mbed.h"
#include "HTTPClient.h"
#include "ESP8266Interface.h"
#include "TCPSocketConnection.h"
#include "SoftSerialSendOnry.h"

ESP8266Interface wifi(dp16,dp15,dp4,"SSID","Password",115200); // TX,RX,Reset,SSID,Password,Baud

SoftSerialSendOnry pc(dp10);
int main()
{
    HTTPClient http;
    char str[512];

    pc.baud(9600);

    wifi.init(); //Reset
    wifi.connect(); //Use DHCP
    pc.printf("IP Address is %s\n", wifi.getIPAddress());

    //GET
    pc.printf("\nTrying to fetch page using GET...\n\r");
    int ret = http.get("http://jksoft.cocolog-nifty.com/msg.txt", str, 512);//IP address is httpbin.org/get
    
    if (ret == 0) {
        pc.printf("Page fetched successfully - read %d characters\n\r", strlen(str));
        pc.printf("Result: %s\n\r", str);
    } else {
        pc.printf("Error - ret = %d - HTTP return code = %d\n\r", ret, http.getHTTPResponseCode());
    }
}

次の部分のSSIDとPasswordを使用するWi-Fi環境に合わせて書き換えます。

ESP8266Interface wifi(dp16,dp15,dp4,"SSID","Password",115200);

書き換えたらCompleをして、mbed LPC1114FN28に書き込みます。
HTTP GETで取得した情報を表示するにはmbed用のシリアルドライバTeraTermCoolTermなどのシリアルコンソールソフトが必要です。
また、Simple IoT BoardのUSBコネクタの方もパソコンに接続してください。(mbed LPC1114FN28のUSBと付け替えてもOKです。)

シリアルコンソールソフトを起動して、シリアルポートの設定をしたらmbed LPC1114FN28のボタンを押してプログラムを動かせばHTTP GETで取得した情報がシリアルコンソールに表示されます。

「Result:」のあとがHTTP GETして取得したデータの内容です。

サンプルで表示させてるのは、私が事前に用意したテキストファイルです。

ほかURLの情報を取得したい場合は、以下の部分を変更すればURLを変更できます。

int ret = http.get("http://jksoft.cocolog-nifty.com/msg.txt", str, 512);

XMLやJSONのパーサを組み込めばWebサービスの情報を取得して、"何か"を連動させることも可能です。
是非、いろいろ試してみてください。
Groveコネクタにつながるモジュールを使えば、簡単にLCDディスプレイやLED、センサ等を繋げることもできます。

のちの記事でIFTTTのサンプルやサンプルベースで私が試した例も紹介します。

次のmbed Advent Calendar 2015の4日目の記事では、Simple IoT BoardのGroveコネクタの使い方やmbedのオフラインデバッグ方法を紹介します。

違反について