TOPへ

さくらのIoT版 空気線図リアルタイム観測システム

さくらの通信モジュールを使用した、温湿度センサ測定データを空気線図でリアルタイムに観測するシステムの構築

○必要なもの
さくらインターネットより購入
・さくらの通信モジュール(LTE)・・・1台(私はさくらの通信モジュール(β版)を使用しています)
・Arduinoシールドボード・・・1台

秋月電子通商より購入
・AM2302温湿度センサ・・・今回は2個
・Arduino Uno Rev 3・・・1台

その他
・抵抗5.1[kΩ]・・・2本
・ブレットボード・・・1台
・ケーブル・・・適宜

○必要な知識
・Arduinoを使用した簡単なマイコンプログラミングができる
・C言語をコードを多少改造できるレベルは知っている
・JavaScriptのコードを多少改造できるレベルは知っている

―ダウンロードファイル・リンク一覧―
1.SakuraIoTArduinoCode.zip
今回作成したArduino Unoのソースコードです。(当HPで配布しています)

2.さくらのIoT版空気線図リアルタイム観測ツール(Vectorのページに飛びます)
JavaScriptで作成した空気線図観測ソフトのダウンロード版です。カスタマイズにどうぞ。

3.さくらIoT版 リアルタイム観測用空気線図ページ
JavaScriptで作成した空気線図観測ソフトを当HPでもアップしています。
テストで使いたい方・どんな画面か見たい方は上記のリンクをどうぞ。


―システム構築方法―
○概要
「空気線図プロッタを使用したリアルタイム観測システムの構築」と似ていますが、AM2302の温湿度測定データを空気線図上でリアルタイムに観測するシステムを「さくらの通信モジュール」を使用して構築します。いわば、「さくらのIoT版空気線図リアルタイム観測システム」です。 (さくらインターネットでは「さくらのIoT」から「sakura.io」に名称変更していますが、ここでの説明は「さくらのIoT」と表記します)

○システム構成図
構成は以下の図のようになります。
システム構成図
ハードウェアに通信モジュールを接続し、通信モジュールがデータをさくらインターネットのデータセンターに送信し、PCやスマホ等のソフトウェア上でデータを受信するのが大まかな流れになります。

○製作概要
製作段階は以下の2段階で、ハードウェア・ソフトウェア(モノ・コト)を実装していきます。
1.ハードウェア側(モノの側)
→ここで、AM2302の温湿度測定データをさくらの通信モジュールで送信するところまでを作ります。
Arduino Unoへの組み込みプログラミングで実装します。

2.ソフトウェア側(コトの側)
→さくらインターネットのデータセンターに送られたAM2302の温湿度測定データをPCで受信して、空気線図上にプロットします。今回はJavaScriptで作成しました。

○製作
画像と共に紹介していきます。
ハードウェア側
使用する基板
今回使用する基板です。2枚に見えますがArduinoシールドボードにさくらの通信モジュールを接続しているので3枚の基板が必要です。

基板組み立て写真
ArduinoUnoとArduinoシールドボードを接続し、Arduinoシールドボードにさくらの通信モジュールを接続します。 基板が3枚重ねになる形になります。アンテナなどはさくらインターネットで配布しているマニュアルにしたがって取り付けてください。

使用するセンサー&部品
今回使用するAM2302センサと接続に必要なコネクタ・抵抗(5.1[kΩ])の写真です。

センサケーブル作成
Arduinoシールドボードに取り付けられるようにケーブルを作成します。

センサ取り付け状況
Arduinoシールドボードにセンサを取り付けました。テスト用なのでケーブルの長さもこれくらいでよいです。

回路図
回路図的にはこの図のようになります。センサの信号線は2番ピンと3番ピンに信号線を取り付けます。5Vピンが一つしかないので分岐して2つのセンサに給電できるようにしています。

プログラミング中
プログラムを作成し、Arduinoに書き込みます。
さくらインターネットで用意しているライブラリがあるのでそれを適用するのをお忘れなく。
ここまでくると、ハードウェアの構築というよりかは、"ハードウェアをソフトウェアとして扱う段階"という感じがします。

ここまで出来たら、ハードウェア側は終わりです。

ソフトウェア側
データセンターに送信された温湿度データをソフトウェア側で取り出すのにWebSocketを使用します。WebSocketが一番簡単に実装できそうなのがJavaScriptでしたので、JavaScriptで
・データの受信
・空気線図の描画
・測定データのプロット
を行うソフトウェアの開発を行います。
空気線図の描画処理のプログラムは空気線図プロッタとほとんど同じ流れで書いています。

プログラミング中
実際の観測状況のスクリーンショットです。

○使い方
ハードウェア側
・回路図どおりに結線し、電源を入れます。
・プログラムどおりですと、3秒に1回温湿度データをデータセンターに送ります。

ソフトウェア側
・「さくらのIoT版 空気線図観測システム」のページを開きます。
・WebSocketの「接続先URI」にWebSocketのURLを入力します。(さくらインターネットのWebSocketの設定ページからそのままコピペします)
・「接続」ボタンを押し、接続が確立されるとデータセンターから温湿度測定データを受信し、空気線図上にプロットしていきます。
※「切断」ボタンを押すとWebSocketを切断しますが、当然ですがハードウェア側からの送信は続いています。


○まとめ
・システムとしては非常に小規模な実験作ですが、ハードウェア側(モノ側)・ソフトウェア側(コト側)を構築さえ出来ればIoTシステムが構築できます。

・データの通信の部分はさくらのIoT通信モジュールと、そのバックグラウンドのさくらインターネットのシステムが全て受け持ってくれるので、 上記ハードウェア・ソフトウェアの製作のみを考えれば良いのも大きなメリットです。

・IEEE1888学習キットを使用した場合と似てますが、通信関係の処理はさくらのIoTの方がわかりやすいです。・・・というか、ほぼ考えなくて良いです。 IEEE1888学習キットの方は通信(データの送信・受信共に)のためのプログラミングを理解する必要があります。

・真面目な使い方を考えますと、(ハードウェア側)例えば自宅の各部屋に温湿度センサーを取り付けてさくらの通信モジュールと接続し、 (ソフトウェア側)例えば自宅平面図の画像データを用意して、温湿度センサを取り付けた各部屋の画像上に温湿度の値を表示するようなソフトを作れば、自宅の温湿度管理IoTシステムを作ることができそうです。

・今回さくらのIoTに触れて感じたこととしては、ソフトウェア側でソフトをいかにユーザーに優しく作るかが大事なのはもちろんとして、 ハードウェア側にどんなセンサー類を搭載して、そのハードウェアをソフトウェアとしてどのように扱いたいのか(ハードウェアの ソフトウェア定義化とでも言いましょうか)を決めることがIoTでは肝となるのではないかなと感じます。


2017/4/25(Tue) 記

(C)2017 Iseba's Labo