ラズベリーパイでIoTのゲートウェイ その1 セットアップ
- 1台のラズパイに温度センサをつないでクラウドにMQTTで温度データを送ることは可能
- 1台のArduino YUNに温度センサをつないでクラウドにMQTTで温度データを送ることは可能
- 1台のESP8266に温度センサをつないでクラウドにMQTTで温度データを送ることは可能
いずれも実験レベルでは可能ですが、メインテナンスを考えると得策ではありません。機材は故障しますし、電源は交換時期が来ます。
●ゲートウェイが便利
デバイスの通信能力がインターネットをアクセスできない場合、逆に小さなマイコンを使うのであれば、途中にゲートウェイがデータを中継すれば、
- 全体のコストが抑えられ
- デバイスの故障時の変更などが単純に交換だけで済む
かもしれません。
さらに、デバイス間の通信プロトコルの変換ができれば、いろいろなメーカのデバイスに対応ができます。
●Mozillaによるプロジェクト
Mozillaは、Web of ThingsというIoTのソリューションを2017年6月に発表しました。具体的なツール類は、2018年2月6日に、バージョン0.3として公開されました。プラットホームはラズパイです。ラズパイをゲートウェイとして使い、IoTデバイスへのアクセスは、
- Zigbeeメッシュ
- Z-Wave
- ラズパイのGPIO直接
の3種類の方法を通じて行います。Z-Waveは920MHz帯の規格ですが、検索した限り、日本では単独の製品が購入できないようです。Zigbeeメッシュに使えるのを探すと、DIGI-XU-Z11Jが見つかりました。
DIGI-XU-Z11Jを使うと、ZigBee Light Linkプロトコルが利用できるので、PhilipsのHUE電球やIKEAのTRÅDFRI電球(2018年2月現在、カタログに掲載されているが販売はされていない思われる)が制御できます。PhilipsのHUE電球は専用のZigbee-Wi-Fiゲートウェイが入手できます。IKEAのゲーウェイは日本では販売されていません。
●できること その1 ホーム・オートメーション
ZigBee Light Linkプロトコルに対応した電球などを制御できます。ただし、PhilipsやIKEAのゲートウェイの情報を初期化した後でしか使えないので、共存ができるかは不明です。単独で明るさを変えたり、Aという電球をつけるとBの電球も明るくするというルールを定義できます。
調べてもはっきりしないのですが、日本では暖房器具のON/OFFはやってはならないようですし、ガスや煙検知は消防法の範疇なので、利用は簡単ではないようです。電球の操作以外では用途が見つからないので、日本では普及していない規格だといえます。
●できること その2 GPIO
デフォルトではGPIO18端子をON/OFFできます。複数の端子の制御もJSONで記述を追加すれば可能です。開発は多くの言語に対応しています。将来I2CやSPIに対応するかもしれません。すでにこのあたりの機能はNode-REDが実現しています。
バージョン0.3で利用可能なのはこの2種類と思われます。Mozillaでは、IoTデバイスをThingsと呼びます。ゲートウェイだけでなく、将来クラウド側のソリューションも出てくる予定です。
●利用する手順
ラズパイはRaspberry Pi 2 model Bを利用しました。Raspbianをインストールするのと同じ手順で、ゲートウェイがセットアップできます。こちらからimgファイルをダウンロードします。
Windowsでは、Win32 Disk Imager1.0を使って解凍したimgファイルをマイクロSDメモリに書き込み、ラズパイのSDスロットに挿し込みます。HDMIコネクタにディスプレイを、DIGI-XU-Z11J、キーボード、マウスをUSBコネクタに挿し、LANをつないだ後電源を入れます。画面には立ち上がりの状況が表示されます。30秒ほどでログイン・プロンプトが出ます。ユーザ名pi、パスワードraspberryで入れますが、そのままにしておきます。
PCのブラウザから、URLの欄にhttp://gateway.local/でアクセスします。ラズパイで名前解決のavahiが動いているのでアクセスできるはずですが、先ほどの画面にDHCPからふられたIPアドレスが表示されているので、そのアドレスを直接入れてもかまいません。
サブドメイン名とメール・アドレスを入力します。
Createボタンをクリックします。
少し時間がかかっています。
これから使っていくユーザのアカウントを登録します。
入力が終われば、Nextボタンをクリックします。
右下の+をクリックするようにメッセージが出ています。
必要と思われるものの+Addをクリックします。
ZigbeeとPhilips-HUEの二つを利用することにしました。
思い直してGPIOも追加しました。
+を押すと、ledを見つけてきました。
操作画面です。アイコンを押すとON/OFFができます。ラズパイ上の何も変化しません。
一度終了します。次のようにLEDと電流制限用抵抗を配線します。LEDの色は何でもかまいません。抵抗の値は300Ω~1kΩを使います。
電源を入れなおして、ブラウザで操作画面を出します。画面のON/OFFに合わせてLEDが点灯します。
こちらのページに解説されているのと少し異なります。
画面左上にある3本線の設定メニューを押すと次のようなメニューが出て、Settingsをクリックすると、設定の変更・追加ができます。