「Simple IoT Board」はその名の通り簡単にIoTが始められるワンボードマイコンです。 LPC1114FN28というARMアーキテクチャーのマイコンを搭載し、 mbedというWebベースの開発環境でプログラムが作れます。
以下のような特長があり、非常によく考えられたボードだと思います。
- プログラム開発時にはmbed LPC1114FN28を挿し、開発が終わればLPC1114FN28単体で動かすことができる
- ボード上にGroveコネクターが5個ついており、Grove社の豊富なセンサーが使える
- Wi-FiモジュールのESP-WROOM-02が載っていて、無線LAN経由でデーターをインターネットに送れる
- ソフトシリアルがついていて、print文でデバッグができる
このボードだけでセンサーを制御し、データーをインターネットに送信するIoT端末が作れます。
このSimple IoT Boardを使って温度を測定し、Ambientに送ってグラフ化するサンプルプログラムを作ってみました。
ハードウェアの準備
プログラム開発中のSimple IoT Boardです。mbed LPC1114FN28の上にゼロプレッシャーICソケットを載せています。 ICの抜き挿しに力がかからないので、開発中は便利です。 温度の測定にはGroveのTemperature Sensor v1.2を使い、 Simple IoT BoardのアナログのGroveコネクターにつないでいます。

開発が終わるとmbed LPC1114FN28を外して、LPC1114FN28単体で動作させることができます。 写真は左から直接LPC1114FN28を載せたSimple IoT Board、 mbed LPC1114FN28、ゼロプレッシャーICソケットです。

プログラム
プログラムはこんな感じです。
#include "mbed.h"
#include "math.h"
#include "ESP8266Interface.h"
#include "TCPSocketConnection.h"
#include "SoftSerialSendOnry.h"
#include "Ambient.h"
ESP8266Interface wifi(dp16,dp15,dp4,"SSID","Password",115200); // TX,RX,Reset,SSID,Password,Baud
unsigned int channelId = チャネルID; // Ambientのご自分のチャネルID
const char* writeKey = "ライトキー"; // チャネルIDに対応したライトキー
AMBIENT ambient; // Ambientのインスタンス
AnalogIn thermistor(dp13);
const int B=4275; // B value of the thermistor
SoftSerialSendOnry pc(dp10);
int main()
{
TCPSocketConnection socket;
pc.baud(9600);
wifi.init(); // Reset
wifi.connect(); // Use DHCP
pc.printf("IP Address is %s\r\n", wifi.getIPAddress());
ambient.init(channelId, writeKey, &socket);
while (true) {
float temp;
char tempbuf[12];
int a = thermistor.read_u16();
float R = 65535.0/((float)a)-1.0;
R = 100000.0*R;
//convert to temperature via datasheet ;
temp = 1.0/(log(R/100000.0)/B+1/298.15)-273.15;
pc.printf("%4.2f\r\n", temp);
sprintf(tempbuf, "%2.1f", temp); // Ambientに送るにはデーターを文字列にします
ambient.set(1, tempbuf); // 温度をパケットにセット
ambient.send(); // Ambientにデーターを送信
wait(30.0);
}
}
サンプルプログラムとライブラリーをmbedサイトに公開しました 。 このページで「Import this program」をクリックすれば、 自分の開発環境にサンプルプログラムと必要なライブラリーがまとめてインポートされます。

インポートしたらSSIDとPasswordをお使いのWi-Fiのものに変更し、 チャネルIDとライトキーをご自分のAmbientのものに変更します。 コンパイルして、できたバイナリーをダウンロードすると、 プログラムが動き、温度を測定してAmbientに送り始めます。
Ambientサイトにログインし、チャネルページを見ると、送られた温度データーが確認できます。

チャネルとグラフのカスタマイズはこちらのページをご覧ください。