7
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

EnOceanのスイッチストライクエアーでトイレセンサーを作ってみた

Posted at

EnOceanのスイッチストライクエアーという製品を使ってトイレセンサーを作ってみました。
電池不要のIoTデバイスで今後ますます増えていくのではないでしょうか?
今回はNode-REDを使ってセンサー値をFirebaseにアップするところまでを行います。

そもそもEnOceanって?

enocean-logo.jpg

EnOcean(エンオーシャン)はエネルギーハーベスティング無線通信技術のことを指します。
小型ソーラーパネルやスイッチ動作などで得られる様々な微弱エネルギー源から電力を生成し、その電力を用いてセンサーを動作させ、無線通信を行います。 「電池が不要、かつ、配線が不要なセンサー」という事です。免許不要な無線帯域(928MHz帯)を使っています。

スイッチストライクエアー

スイッチストライクエアーは株式会社シブタニの製品です。特徴は、トイレの鍵のスライド動作に反応し、発電します。鍵の部分に小さなスイッチがあり、スライドする毎にスイッチが押されます。
そのスイッチが押されると、センサーが反応し無線通信を行います。

スイッチストライクエアー.jpg

IMG_0732.png

EnOcean受信ゲートウェイ環境

送信されたデータを受信するために必要なゲートウェイ環境は以下の通りです。
基本的に送信された信号を受信するUSBドングルとラズパイで行います。

イメージ図

スイッチストライクエアーが反応したらラズパイで信号を受け取り、Firebaseに情報を保存する形です。
Google Homeと連携して通知することも可能です。
トイレセンサー構成図.png

1: ラズパイにNode-REDをセットアップ

ラズパイのOSを入れるとデフォルトでNode-REDが入ると思います。
node-red-startしてNode-REDを起動しましょう。

2: Node-REDの設定

Node-REDの設定を順番に行っていきます。

2-1: serialノード設定

inputノードにあるserialノードをドラッグアンドドロップしてダブルクリックします。
Serial Portは右側の虫メガネアイコンをクリックして検索します。

ボーレートや各種値は画面のように設定しましょう。
スクリーンショット_2018-10-30_10_57_22.png

2-2: 電文デコーダーダウンロード

serialで受信した電文をデコードします。EnOceanを取り扱っているアーミン株式会社の方が作成したNode-RED用のデコーダーがあるので、ありがたく使わせてもらいます。

2-3: デコーダーをNode-REDへ追加

右上のハンバーガーメニューからImport→Clipboardをクリックし、2-2でダウンロードしたEnOceanTelegramDecoder.jsonの中身をコピペして貼り付けます。右下のImportボタンをクリックすればNodeが追加されます。

トイレセンサー.002.png

2-4: デバッグノードをつないで受信チェック

デバッグノードを設置して各ノードを接続しましょう。スイッチストライクエアーのボタンを押下すると、データが受信できるかと思います。スイッチストライクエアーはドアが閉まっていればData1の値が「00」でドアが空いていれば「80」の信号が来ます。

3: Firebaseプロジェクト作成

Firebaseへアクセスして新規プロジェクト作成してください。

3-1: RealtimeDatabaseの設定

誰でもアクセスできるようにルールの設定を変更します。

ルール
{
  "rules": {
    ".read": true,
    ".write": true
  }
}
スクリーンショット 2018-10-31 17.27.40.png

3-2: Firebaseのデータベースに保存するノードを設置する

再びNode-REDを開いてFirebaseに保存するためのノードを設置します。
まずはアップするためのデータを成形します。templateノードをドラッグアンドドロップして下記コードを入力します。

functionノード
var flg = '空室';

if (msg.payload.Data1 === '00') {
    flg = '使用中'
}
msg.payload = {
    "word": flg
}
return msg;

スクリーンショット_2018-10-31_17_34_50.png

3-3: FirebaseへPUTする

http responseノードをドラッグアンドドロップしてダブルクリックします。
メソッドは必ず「PUT」を選択して、URLにFirebaseのURLを指定します。toilet.jsonに保存したいので、json名を指定しました。

https://<FirebaseのプロジェクトID>.firebaseio.com/toilet.json

トイレセンサー_003.png

3-4: 各ノードをつなげる

各ノードをつないで、スイッチストライクエアーのボタンを押下するとFirebaseはデータがアップされます。

スクリーンショット_2018-10-31_17_52_58.png

まとめ

かなり簡単にEnOceanのデータを受信してFirebaseにデータの可視化をすることができました。
EnOceanは今後ますます増えていくこと間違いなしかと思います。
次回はこのデータを活用してLINE BotやGoogle Homeの連携してトイレが空いているかどうかさらに可視化したいと思います。

システム化のご検討やご相談は弊社までお問い合わせください。
https://i-enter.co.jp/contact/

7
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?