さくら IoT – 温湿度センサー HDC1000


さくら IoT と 温湿度センサー HDC1000 で温湿度を観測する

ハンズオン資料
さくらインターネットから、ハンズオンの資料が公開されています。
http://www.slideshare.net/sakura_pr/ss-64599802

センサーとして HDC1000 を、WebSocket クライアントとして node-red を使っています。
HDC1000 は、秋月電子で販売されています。
HDC1000使用 温湿度センサーモジュール

いくつか気になったことがあります。
(1) HDC1000 の +V を Arduino の 3.3V に接続している。
Arduino は 5V 動作なので、HDC1000 も 5V にすべきでしょう。
(2) node-red のインストールを、すべて root ユーザーで行っている。
yum 以外は、一般ユーザで設定できますね。
(3) node-red での動作確認が WebSocket を受信するところまでです。
これは、時間の関係かもしれないが、もうちょっとやりたいですよね。
WebSocket の受信だけなら、WEBブラウザーでも出来るし。
拙作の javascript 版

今回やったこと
HDC1000 のデータを node-red で受信するところまでは、資料と同じです。
その先として、グラフ表示をしてみました。

環境は、CentOS ではなく、MAC で構築しました。
インストールは、下記を参考にしてください。
brew で node をインストールする
MAC に Node-RED をインストールする
Node-RED でグラフ表示をする

センサ側
HDC1000 を通信モジュールに接続する
20161013_sakura_hdc1000

node-red の処理
WebSocket の受信から、http 出力にする flow がわからなかったので。
いったん、WebSocket で受信したデータをファイルに保存しました。
ファイルを読み出して、http 出力に結びつけました。

Flow
Flow は Github で公開しました。
20161013_sakura_flow

parser
WebSocket で受信したデータを cvs 形式にする
コード parser.js

text
一番新しいデータが、上になるように、逆順に並び替える
コード text.js

temperature、humidity、count
最新の100個のデータを、グラフ形式に変換する
コード temperature.js

結果
20161013_sakura_temperature


さくら IoT で温度・湿度を観測する


20160701_sakura_iot_system

さくらの IoT Platform さくらインターネットが提供するIoTプラットフォームサービスです。
前回 は、基本的な確認ができたので。
今回は、実用的なものを作ってみました。
センサーのデータ (温度・湿度など) を、さくらの IoT を経由して、WEB にてグラフ表示します。
作ったプログラムは Github で公開しました。

まず、センサー部です。
センサーボード として、以前作ったものを使います。
温度、湿度、気圧などが測定できます。
20160701_sakura_iot_sensor_board

Arduino にセンサーボードとIoT通信ボードを接続します。
Arduino のスケッチ を作成します。
Arduino に書き込みます。
Arduino の電源を入れると、さくらの IoT サーバーに送信されます。
データは、さくらの IoT コントロールパネルに表示されます。
これで、センサー部は完成です。

続いて、サーバー部です。
今回のアルファ版では、さくらのクラウド 2万円分チケットも付いていました。
ありがたく使わせて頂き、さくらのクラウドで新規にサーバーを立てました。
サーバーのプログラム を作成します。
主要部は、Python Flask で記述しました。
さくらの IoT Platform から来たデータを、いったんデータベース(MySQL) に格納します。
データベースから読み出し、Google Chart でグラフ表示します。
これで、サーバー部は完成です。

自宅で1日ほど運用したものが、下記に示します。
ここのところ、毎日30度を超えて暑いですね。
寝る前に、クーラーを入れたので、そこだけ温度が下がってます。
20160701_sakura_iot_graph


温度・湿度センサ DTH11 を試す


20140622_dth11_normal

温度・湿度センサ DTH11 を Arduino で試してみた。
DTH11 は 秋月電子 で購入した。
使い方と Arduino Library は、adafruit を参照した。

DTH11 のデータ形式
DTH11 は、校正されたデジタル信号を出力します。
1本の信号線で双方向に通信し、0と1は1ビットの長さで区別します。
一般的には、調歩同期のように1ビットの長さは固定なものが多い。
可変する方式は初めてみた。

Arduino Library でどういう実装をしているのか読解してみた。
信号線の High と Low の変化を見ています。
High の長さをカウントして、0 と 1 を識別しています。
正確なカウントになるように、割り込みを禁止しています。

20140622_dth11_data_timing
20140622_dth11_bit_format

DTH11 の測定方式
温度は、NTCサーミスタ (NTC temperature measurement devices)
湿度は、抵抗変化型有機ポリマー (resistive sense of wet components)

実測する
(1) 室温で計る
(2) ドライヤーで暖める
(3) 冷蔵庫で冷やす
比較として、バイメタル型の温度計を使いました。
DTH11 の方が、反応が早いことが分かった。
20140622_dth11_hot20140622_dth11_cool

温度について
温度 とは、分子運動のエネルギーの統計値。

温度の単位は、物理学的には、ケルビン温度 が使われる。
日常的には、セルシウス度(摂氏)を使う。
これは、水の凝固点を0度とし、沸点を100度とするもの。
米国などでは、ファーレンハイト度(華氏)が使われる。
華氏 = (9/5) * 摂氏 + 32

温度の測定方法は、いろいろある。
(1) 熱電対
(2) 測温抵抗体
(3) サーミスタ
(4) 放射温度計
(5) 液柱温度計
(6) バイメタル式温度計
(7) 赤外線サーモグラフィ

湿度について
湿度 とは、大気中に含まれる水蒸気量

湿度の単位
相対湿度 (%) = 水蒸気の実測値 / 飽和水蒸気量

温度の測定方法
(1) 乾湿計
(2) 伸縮式湿度計
(3) バイメタル式湿度計
(4) 電気式湿度計
(5) 露点計

参考:湿度計はどのようにして測っているんですか

各種の指数
(1) 不快指数
 0.81Td+0.01H(0.99Td-14.3)+46.3
(2) 暑さ指数(WBGT Wet Bulb Globe Temperature)
(3) 熱中症指数
 日常生活における熱中症予防指針 – 日本生気象学会


近接センサ GS-5S を試す


20140601_gs5s_kit

近接センサ SUNX (Panasonic) GSシリーズ を頂いたので、試してみました。

センサ部 GS-5S と アンプ部 GA-2D に分かれています。
金属との距離が 1mm 以下になったことを検出します。
渦電流による磁気を検出する仕組みと思われます。
例えば、歯車の歯数を数えるのに使うらしい。
20140601_gs5s_appication

電源として、DC 10Vから28Vが必要です。
今回は使ってないノートPCの電源 DC12V を流用しました。
電源を繋ぐだけで動作しました。
センサ部に金属片を近づけると、アンプ部のLEDが点灯します。
外部へはリレーで信号を取り出すようですが、今回は見送り。
20140601_gs5s_test

センサ部の電圧・電流を計ってみましたが、デジタルメーターでは測定できませんでした。
アンプ部の中を開けてみたところ、トランジスタによる増幅回路のような感じでした。
20140601_gs5s_front20140601_gs5s_rear

参考
近接センサ 概要 – オムロン
近接センサ 用途 – オムロン