Fogコンピューティングのネットワーク層の実現方法について、調査した内容を順次記していく。(2017/11/02)
調査しながらなので、間違いがあるかもしれない。また、もっといいやり方があるよ、というのをご存じの方がいらっしゃったらぜひご教授下さい。
Fogにおけるネットワーク層の必要機能(要件)
* ノード間でのメッセージ交換
* ノードの発見
* 複数ノード間でのメッセージのルーティング
全部が最初から必須なのではなく、やりたいことに合わせて揃えていく、という想定。まずは最も基本的なメッセージ交換から調査に着手する。
前提とする条件
基本的には以下を想定する。ノウハウあるしLinuxベースOSが動くので。
- ハードウエア : ラズパイ(Raspberry Pi3 or Raspberry Pi Zero W) (WiFi/Bluetoothがビルトインなので)
- OS : Raspbian or Ubuntu
- OS Version : Raspbian Jessie
ノード間でのメッセージ交換方法
BLEのアドバタイズメントを利用する方法(iBeacon)
iBeaconは、ビーコンの名前の通り、基本的にはペリフェラル側からセントラル側に向けてアドバタイズメントを送りつける一方向通信だが、短時間でペリフェラルとセントラルを切り替えれば擬似的には双方向でのメッセージ交換が可能になるのではないか(仮説)。
この記事が参考になる。
Raspberry PiでiBeaconを検知する
およびその記事内で参照されている
Raspberry Pi で iBeacon を試してみよう!
こちらも参考になる。内容は上記とほぼ同じ。
Raspberry Pi 3に Bluetooth BlueZ Version 5.42 BLE
記事ではbluez(フリーののBluetoothプロトコルスタック実装)をインストールする様に書いてあるが、raspy3/jessieではフルパッケージを手動で入れる必要はなく、
$ sudo apt-get install bluetooth libbluetooth-dev libudev-dev
でOK。
ペリフェラルになる場合(コマンドライン実行)
ペリフェラル(電波吹く方)になるには「bluez-ibeacon」というソフトウエアを入れる、ということ。
セントラルになる場合(コマンドライン実行)
セントラル(受信する方)になるのは、「hcidump -R」を起動したまま「hcitool lescan」を実行すれば見られる。hcidumpはsudoしないと受信したメッセージが見えないので注意。
Pythonから制御する
これから、Pythonから制御する方法を調査する。Pybluezか?
BLEでちゃんと通信する場合
参考URL。
Check! Raspberry Pi で Bluetooth 経由のセンサーデータを取得する 〜 準備編
6LoWPANとか
Bluetooth 5とか
Bluetooth全般の基礎知識
【BLEを使う】GAP(Generic Access Profile)概要
Bluetooth Low Energy リンクレイヤの解説
Bluetoothl-Low-Energy入門講座-part1
20140922 ble bootcamp