「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サイトにログインし、チャネルページを見ると、送られた温度データーが確認できます。
チャネルとグラフのカスタマイズはこちらのページをご覧ください。