SHOEISHA iD

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

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

IoTをかじってみよう

IoTをかじってみよう(3)
~センサーのデータをWebサーバーに送付するmbedアプリケーションを作成する

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

 前回はIBM Internet of Things Foundation(IoTF)を利用してコードを書かずにIoTの世界を体験しましたが、今回と次回はアプリケーション開発にチャレンジしてみます。具体的には開発したPHPアプリケーションをDocker対応させて、IBM Bluemix上のDockerコンテナ(IBM Containers上)で稼働させてみます。

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

 mbedにはHTTPClientのライブラリがあるため、HTTPプロトコルでPOSTリクエストをWebサーバーに対して送信するアプリケーションの開発が比較的容易にできます。POSTリクエストで送信されたセンサーの情報を受け付けるWebアプリケーションを、IBM Containers上にPHPで作成してみます。つまり、IoTのサーバーといっても、よくあるWebサーバーを構築すればよいのです。

今回のアプリケーションの概要

 mbedのセンサーで測定した温度に簡単なテキストのメモを追加して、サーバーへPOSTリクエストのデータとして送信するアプリケーションを作成します。使用するデバイスは1台ですが、今後追加することを考慮しておきましょう。そのためにデバイスの識別のためのデバイスIDをそれぞれのmbedで持つようにします。

 データ送信時にはデバイスIDを付与して送信してくるものとします。つまり、(1)mbedからの送信データはHTTPのPOSTリクエストで、デバイスID(deviceid)温度(temperature)メモ(memo)の3項目になります。

 また、(2)送られてきたデータを時系列に管理したいので、サーバー側でデータをためる際には日時(datetime)を付与して記録します。

 データベースのテーブルには、デバイスID(deviceid)、温度(temperature)、メモ(memo)に加えて日時(datetime)も持たせることにします。データベースはMySQLを使用して、varchar(8)、float、varchar(20)、timestampのデータ型で実装します。

 (3)最後にデータベースに収集されたデータを表示するPHPアプリケーションも実装します。

 データを受信するサーバーのPHPアプリケーションはwritedb.phpとし、受信したデータを表示するPHPアプリケーションをreaddb.phpとします。

 Webサーバーは、最近利用者の増えている軽量Webサーバーであるnginxを使います。

 以下に構成図を示します。

図1 アプリケーション概要

図1 アプリケーション概要

環境の準備

 mbed用のアプリケーションは、前回までと同様にオンラインのIDEで開発します。サーバー側の開発環境のホストOSは、Linux(Ubuntu 14.04 LTS)を使うことにします。開発環境にはDockerおよびIBM Containers用Cloud Foundryプラグインを導入します。

 サーバー側のアプリケーションとしては、開発環境でPHPアプリケーションと、それを実行するためのMySQL、nginx、PHP関連モジュールを導入したコンテナイメージを作成します。そして完成したコンテナイメージをIBM Containers用Cloud Foundryプラグインで、IBM Bluemix上のIBM Containersにデプロイするという流れになります。

 なお、開発環境のホストOSで実行する場合のプロンプトを$、コンテナ上で実行する場合のプロンプトはContainer>とします。

会員登録無料すると、続きをお読みいただけます

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

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

メールバックナンバー

次のページ
mbedアプリケーションの開発

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

  • このエントリーをはてなブックマークに追加
IoTをかじってみよう連載記事一覧

もっと読む

この記事の著者

谷口 督(日本アイ・ビー・エム株式会社)(タニグチ ススム)

2000年問題対応の時期にIT業界に入り、それ以来UNIX系のインフラ構築を担当。最近の関心事は、そろそろ出てきそうな画期的なテクノロジー探しや世の中が良くなるためのもの作りです。

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

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

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/9162 2016/01/27 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング