最後に、センサーと通信モジュールの橋渡しをするArduinoに対してプログラムを書き込みます。他ライブラリの取り込みや諸定義等を最初に指定し、「void setup(void)」にて起動時の処理、「void loop(void)」にてループ処理を記載しています。
#include <SakuraAlpha.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 2
OneWire oneWire(A0);
DallasTemperature sensors(&oneWire);
SakuraAlphaI2C sakura;
int pourPin = 5;
void setup(void)
{
  Serial.begin(9600);
  pinMode(pourPin, INPUT_PULLUP);
  sensors.begin();
  delay(1000);
  sakura.transmit(TRANSMIT_AUTO);
}
void loop(void)
{ 
  float temperature;
  float pour_time = 0;
  sensors.requestTemperatures();
  temperature = sensors.getTempCByIndex(0);
  Serial.println(temperature);
  sakura.writeChannel(11,temperature);
  while( !digitalRead(pourPin) ){
    pour_time += 0.1;
    delay(100);
  }
  Serial.println(pour_time);
  Serial.println("");
  if( pour_time != 0.0f ) sakura.writeChannel(12,pour_time);
  delay(1000);
}
電源に接続するとマイコンおよび通信モジュールが起動します。モバイル網に接続されるまでにおよそ1分少々要します。 D4のLEDおよびCN5付近のLEDが1回点滅する状態になったら準備は完了です。
リンクアップした状態でポットの給湯(モーターの駆動)を行うと、給湯時間(駆動時間)に合わせて変化するメッセージと湯温(今回は外気温に+60度した値)がSlack上のチャンネルに投稿されます。
なお、連携サービスでWebsocketを作成しておくと、受信データを確認することができます。
ご覧いただいた通り、「さくらのIoT Platform α」では簡単かつ安全にデバイスからセンシングされたデータをプラットフォームに送り届けることができます。
「モノづくり」の観点からすれば、IoTの概念を取り入れる際にも従来と同様に開発を行えるだけではなく、ビジネス前提の利用に耐えうる、安全なデータ経路を確保できます。一方でWebサービスやアプリといった「コトづくり」の観点からは、扱いやすいJSON形式でデータを取り出せるため、容易にセンシングデータを扱うことができます。これにより、IoTの両岸にいるプレーヤーの「共創」によるイノベーション創出が容易になると考えています。
α版は目的を「機能開発」にすえて行い、さまざまな実証実験を経て、多くのフィードバックを得ました。そしてこの度、2016年10月5日よりβ版となる「さくらのIoT Platform β」の申込受付を開始しました。提供は11月1日からです。β版においては「さらなる価格追求」「利用者が使いやすいメニュー開発」を目的に、正式サービス版リリースに向けた開発を進めてまいります。さくらのIoT Platformはこちらよりお申し込みを頂けます。みなさまのお申し込みをお待ちしております。
大量生産に向けて、より扱いやすくなった「さくらのIoT Platform β」を是非お試しください。このプラットフォームがみなさまのIoTへ向けた取り組みと、少し先にある未来の一助となることを願っております。
「さくらのIoT Platform」利用のハードウェア事業化支援プログラム
通信料込みで年5000円以下、さくらインターネットがIoTに本気出す
Raspberry PiにAllJoynを移植して、IoTを自作する
「Raspberry Pi Zero」で自分だけのアメダス(的な測定器)を作ろう
WebブラウザからHTTPサーバ経由でESP8266に接続されたセンサーの値を読み出すCopyright © ITmedia, Inc. All Rights Reserved.
組み込み開発の記事ランキング
コーナーリンク
よく読まれている編集記者コラム