無線センサーEnOceanとRaspberryPiを使って安く簡単に見守りIoTシステムを実現

This entry was posted in IoT, お知らせ, ナレッジ and tagged , , on by .

無線センサー「EnOcean」と「Raspberry Pi 2 Model B」もしくは「Raspberry Pi 3 Model B」を使って、安価かつ簡単に見守りIoTを実現する方法をご紹介します。

enocean-raspberrypi-fanbright-saas

ご自身で導入を進める場合の必要な金額は、初期費用として約20,000円~25,000円、月額料金は必要ありません(無料メニューの場合)。

Linuxの操作スキルがあれば、簡単に Raspberry Pi で EnOceanを使う事ができ、ブラウザを用いてセンサー値を可視化する事ができます。

センサー値を可視化する部分は、クラウドサービス「ファンブライトIoTサービス」SaaSプランの、無料で使える無料メニューを利用します。

SaaSプランは、本来EnOceanセンサーを導入する際に技術面や料金面で敷居が高くなりがちな点を解決できるサービスとなっています。

plan1-flow

 

1.はじめに

今回利用するEnOcean(エンオーシャン)とは、エナジーハーベスト技術の事で、「電池が不要、配線が不要なセンサー」を利用できます。

エナジーハーベスト技術として注目されており、微弱なエネルギーで動作する無線センサーです。EnOceanセンサーはすぐに使える状態で販売されています。

enocean-sensor

Raspberry Pi とは、ARMプロセッサを搭載した手のひらサイズの安価なマイクロコンピュータです。LinuxなどのOSを動かす事ができ、主に教育用途で開発されていますが、さまざまな用途で利用できます。

ファンブライトIoTサービスとは、「EnOceanセンサーを容易に使いこなせる事」をコンセプトとして、当社が開発・運営しているEnOceanに特化したIoTサービスです。

fanbright_iot

 

今回は、無線センサーであるEnOceanのドア開閉センサーを生活導線上にあるドアに設置し、ドアの開閉状態を可視化できるようにします。

stm429j-open-closed

 

2.機器の入手

まずは、必要なハードウェア類を入手します。

EnOceanを利用する上で必要となる構成の概要は下記のようになります。

構成 説明 利用機器
EnOceanセンサー 電池が不要、かつ、配線が不要なセンサー 今回はドアの開閉センサー「STM429J」を利用
EnOcean受信モジュール EnOceanセンサーから無線送信されるデータを受信するモジュール 今回はUSBドングル「USB400J」を利用
ゲートウェイ機器 EnOcean受信モジュールとEthernetを接続するゲートウェイ機器 今回は「Raspberry Pi 2 Model B」を利用

enocean-basic-system

なお、各機器の役割に関する情報は「2. EnOceanを利用するには?」でもご確認いただけます。

以下が必要となるハードウェアです。すべてオンラインで購入できます。

ハードウェア 料金 備考
Raspberry Pi 本体 約5,940円 Raspberry Pi 2 Model B (Pi 3 Model B も OK)
microSD 約1,000円 8GB
Raspberry Pi 用ケース 約1,000円 Raspberry Pi 2 Model B 用 ファン付
USB ACアダプター 約1,000円 5V/2Aだと余裕あり
USBケーブル 約500円 1.2m 超スリムタイプ
LANケーブル 約1,000円 写真では巻き取り式
EnOcean 受信モジュール 約3,780円 USB400J
EnOcean マグネットセンサー 約3,780円 STM429J
EnOceanマグネットセンサー用ケース 約4,800円 CS-ENCASE-TEMP/MAG、CS-ENOCEAN-MAG-01

総額 20,000円~25,000円で機器が揃うと思います。

なお、Raspberry Pi のセットアップ時に使う、HDMIモニターとキーボードは、手持ちの物を使う事として計算からは除外しています。

購入した機器一式は以下になります。

enocean-raspberrypi-set

 

Raspberry Pi は、ファン付のケースに入れています。microSDカードは装着してあります。実際はヒートシンクも付けているのですが、ファンがあればヒートシンクは無くても良いです。

 

3.Raspberry Pi セットアップ

まずは、作業用のWindows端末で、microSDカードに Raspberry Pi 用のOSを書き込みます。

今回は、Raspbian JessieのZIPファイルを、Download Raspbian for Raspberry Pi ページからダウンロードします。ダウンロードしたZIPファイルを解凍すると「2016-03-18-raspbian-jessie.img」ファイルを取り出せます。

microSDカードにRaspbianイメージファイルを書き込む為に「DD for Windows」を使います。DDWin.exeを「管理者として実行」で起動し、イメージファイルをmicroSDカードに書き込みます。

raspbian-dd-for-windows

Raspbianイメージを書き込んだmicroSDカードを Raspberry Pi の microSDスロットに差し込み、HDMIモニターとUSBキーボードを接続後、Raspberry Pi を起動させます。

Raspberry Pi が起動したら、デフォルトで用意されている「pi」アカウントでログインし、「$ sudo raspi-config」コマンドで「1 Expand Filesystem」や「2 Change User Password」、「4 Internationalisation Options」等の設定を必要に応じて行います。

raspi-config

設定が終わったら、「Finish」ボタンを押下し、Raspberry Pi を再起動します。

続けて、最新にする為に以下を実行しておきます。

$ sudo apt-get update
$ sudo apt-get upgrade

実行後は再起動を行います。

次に、Raspberry Pi からインターネットに接続ができるように、Raspberry Pi のネットワーク設定を行ってください。なお、IPアドレスの割り当ては、今後リモートからSSHでアクセスする事を想定すると、DHCPではなく固定割り当てが良いです。

詳細は割愛しますが、ここでは最終的にRaspberry Pi からインターネットに接続できるようになればOKです。

 

4.EnOcean受信モジュールの接続

次に、EnOcean受信モジュール「USB400J」をRaspberry Pi のUSBポートに接続します。(もちろん、Raspberry Pi の電源を入れる前にUSB400Jを接続しておいても問題ありません。)

Linuxコマンドの「lsusb」コマンドで、USB400JがOSに認識されている事を確認します。以下の「Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC」が表示されれば、USB400Jが認識されています。

pi@raspberrypi ~ $ lsusb
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 005: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
pi@raspberrypi ~ $

次に、dmesgコマンドの出力結果で、USB400Jがどのデバイスで認識されたか確認します。

pi@raspberrypi ~ $ dmesg
(省略)
[ 1554.414446] usb 1-1.4: new full-speed USB device number 5 using dwc_otg
[ 1554.546046] usb 1-1.4: New USB device found, idVendor=0403, idProduct=6001
[ 1554.546072] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 1554.546090] usb 1-1.4: Product: EnOcean USB 400J DA
[ 1554.546107] usb 1-1.4: Manufacturer: EnOcean GmbH
[ 1554.546123] usb 1-1.4: SerialNumber: FTXII6VG
[ 1554.589333] usbcore: registered new interface driver usbserial
[ 1554.589491] usbcore: registered new interface driver usbserial_generic
[ 1554.589621] usbserial: USB Serial support registered for generic
[ 1554.600591] usbcore: registered new interface driver ftdi_sio
[ 1554.600769] usbserial: USB Serial support registered for FTDI USB Serial Device
[ 1554.601107] ftdi_sio 1-1.4:1.0: FTDI USB Serial Device converter detected
[ 1554.601339] usb 1-1.4: Detected FT232RL
[ 1554.602499] usb 1-1.4: FTDI USB Serial Device converter now attached to ttyUSB0
pi@raspberrypi ~ $

最終行にある「ttyUSB0」がUSB400Jになります。ここでのデバイスファイルのパスは「/dev/ttyUSB0」になります。USB400Jのデバイスファイルパスはあとで利用しますので、メモしておいてください。

 

5.ファンブライトIoTサービスに登録

ファンブライトIoTサービスの「お申込み」画面から、SaaSプランのアカウントを登録いただきます。

Webフォームで仮アカウントを作成後に、URLが記載されたメールが送信されます。

2時間以内にURLにアクセスすると正式アカウントが登録され、Webサービス画面にログインできるようになります。

 

6.登録したアカウントでログイン後に、SaaSプランでのご利用メニューを選定

作成した正式アカウントで、ログイン画面からWebサイトにログインします。

「SaaSプランのご利用メニュー」が選択できるようになっています。

1_SaaS_Free

無料メニューか有料メニューを選択し、「利用メニューの登録」ボタンをクリックするとメニューが登録されます。今回は無料メニューを選択してください。

 

7.IoTゲートウェイ機器に設定する情報を取得

利用メニューの選定後、次は以下の赤枠箇所「ゲートウェイ認証キーの登録」ボタンをクリックして「ゲートウェイ認証キー」を生成してください。

2_SaaS_GatewayKey

以下の赤枠部分、「顧客ID」と生成された「ゲートウェイ認証キー」をメモしておいてください。

3_SaaS_GatewayAuthKey

メモした内容は、この後、Raspberry Pi に設置するスクリプトに設定値として利用します。

 

8.Raspberry Pi にプログラムを実装

次に、まずゲートウェイ機器であるRaspberry Pi に設定するプログラムを入手します。

enocean-basic-system-program

このプログラムは、EnOcean受信モジュールからUART(Universal Asynchronous Receiver Transmitter)でシリアル通信データを取得し、クラウドへデータをアップするシンプルなプログラムとなります。

そのまま利用できる簡単なサンプルRubyプログラムは公開しております。

詳細はEnOceanゲートウェイ用プログラムページに記載していますので、参照いただき、プログラムを設置してください。なお、先ほど取得しメモしておいた顧客IDとゲートウェイ認証キー、USB400Jのデバイスファイルパス(例:/dev/ttyUSB0)は、ここでスクリプトの設定値として利用します。

ここで、プログラムの起動まで実施してください。プログラムを起動すると、EnOceanセンサーが検知した値がRaspberry Pi で受信でき、ファンブライトIoTサービスのクラウドサーバに送信されるようになります。

 

enocean_network_201510

 

9.ファンブライトIoTサービスにEnOceanセンサー登録

次は、ファンブライト IoTサービスサイトにログインし、「EnOceanセンサー登録」画面を表示します。

ログイン後の左メニュー「基本画面」の「EnOcean画面」リンクをクリックすると、EnOcean用画面が表示されます。EnOcean用画面で「EnOceanセンサー登録」リンクをクリックします。

4_SaaS_EnOcean_Display

EnOceanセンサー登録画面が表示されます。

まず、「サーバ接続状態」が「接続中です」と表示される事を確認してください。

Raspberry Pi に接続している USB400J がEnOceanセンサーのテレグラムを受信した時に、以下の赤枠箇所にEnOceanセンサー登録画面へのリンクが表示されます。

5_SaaS_EnOcean_Check

今回利用しているEnOceanマグネットセンサー「STM429J」の場合、次のいずれかの操作をすると画面上にセンサー登録画面へのリンクが表示されます。

  • センサーを機能させた時点(マグネットとSTM429Jを近づけたり離したりした時点)
  • STM429Jに付いている小さな「LRN」ボタンを押下した時点(STM429Jに付いているボタンを、ケース横の穴から針金などで押下できます。STM429Jを傷つけないように注意してください。)
  • HeartBeatのテレグラムが送信された時点(約20分間ぐらいの間隔でHeartBeatのテレグラムが自動送信されます。)

以下のようにリンクが表示された際には、クリックしてください。

6_SaaS_EnOcean_ReceiveTelegram

クリック後の画面では、EnOceanセンサーの登録画面が表示されます。

7_SaaS_EnOcean_Form

SensorType で「STM429J」(マグネットセンサー)を選択し、センサーの名前や設置場所を登録してください。

 

10.可視化が実現

EnOceanセンサーが登録されると、ファンブライトIoTサービスの各機能を利用できるようになります。

以下は、EnOceanの「状態一覧」画面です。センサーが1つ登録されています。

8_SaaS_EnOcean_List

以下は、ドアが開いている時の画面表示です。(状態がopen、ドアアイコンが開いています。)

demo-enocean-list-open

以下は、ドアが閉じた時の画面表示です。(状態がclosed、ドアアイコンが閉じています。)

demo-enocean-list-closed

次は、EnOceanの「選択センサー」画面です。

 

以下は、ドアが閉じている時の画面です。

demo-enocean-select-closed

以下は、ドアが開いた時の画面です。

demo-enocean-select-open

これらの機能が、ファンブライトIoTサービス「SaaS」プランの無料メニューでご利用できます。

過去24時間までのセンサー状態を、(小さい)グラフやデータ表示(ページネーション)で確認できます。

 

11.もっと有効にEnOcean無線センサーを使いたい場合

今回は、SaaSプランの無料メニューを利用して、EnOceanの無線センサーを活用する方法をご紹介しました。

有料メニューを利用すると、以下のような多くの機能を利用できるようになります。

  • データ参照期間が2年間に増加
  • メール通知機能
  • 期間指定が可能なグラフ機能、CSVダウンロード
  • さまざまなアドオン機能

SaaS_Menu

無料メニューから有料メニューへの変更はいつでも可能です。期間は1ヶ月毎のご契約でご利用可能です。詳細な条件はSaaSプランを参照ください。

ぜひご検討のほど、よろしくお願いいたします。