SmartMeshはメッシュネット・トポロジーを自動的に構築することが可能なネットワークです。ところが、実際の多ノード運用では、Managerにトラフィックが集中してパケットをロスしてしまう場合があります。これは、SmartMeshに限った話ではありません。様々なネットワークにおいても同じことが言えます。
実験概要
今回は、SmartMeshのVManagerをベースに、もう1台のAP Moteを追加することで、トラフィック処理を軽減させてみたいと思います。
AP MoteとAP Bridgeの違い
- AP Mote(アクセス・ポイント・モート)とは、アクセスポイントモードにしたUSBのSmartMeshデバイスのことです。
- AP Bridge(アクセス・ポイント・ブリッジ(ゲートウェイとして機能))とは、RPi3とAP Moteを使用したGatawayシステムの総称です。
1台のAP Moteで対応できるトラフィックは、40パケット/secです。これ以上の負荷がかかると取りこぼすことになります。そこで、今回は、Raspberry Pi 3(以下:RPi3)を使用して、2台のAP MoteをVManagerで一元的に管理できる方法をご紹介します。
これをやってみる(実験内容)
- EManagerをAP Moteにする
- VManagerとして動かす
- RPi3をAP Bridgeとして設定する
- 複数のAP MoteをVManagerに統合する
それでは、一つ一つ見ていきましょう。
EManagerをAP Moteにする
EManagerは、DC2274A-AというUSBの青いデバイスです(図1)。このファームウェアを変更することで、DC2274A-Bにすることができます。
まずは、SmartMeshのツールガイドとユーザガイドをダウンロードして、その手順を理解しておきましょう。
SmartMesh IP Tools Guide
SmartMesh IP Users Guide
書き換えに必要なものは、AP Moteにするためのバイナリです。事前に、MyAnalogの登録をしておきましょう。
ファイルのダウンロード
登録後、2つのファイルをダウンロードしてください。
1)SmartMeshのバイナリ SmartMesh_IP.zip
2)プログラマ Download ESP Zip File
現時点のバージョンは、esp_1.1.1.6.zip
です。
この2つのファイルを同じディレクトリに配置しておくと、便利です。
書き換え
必要なファイルは、SmartMeshのバイナリが含まれているディレクトリにあります。「Eterna」-「AP Mote」のディレクトリの中にある、prog_APM_DC2274A-A.bat
を実行します。
このバッチファイルに記載されているファイルは、4つあるフォルダから、コピーしてくる必要があります。
フォルダは、「AP Mote」「FuseTables」「Manager」「Mote」です。バージョンが記載されていますので、基本的には最新のバージョンを選択すればいいでしょう。
今回書き込むファイル群
今回書き込むファイルは、以下の4つのファイルです。図2の緑で囲ってあるのが該当するファイルです。
loader_1_0_6_4_oski.bin
mote_part_r52074.bin
ap_ip_1_4_2_3_oski.bin
FT-DC2274A-A-MEM128K-M4-115K-680-0383-0002REV1.bin
バッチファイルは、1-2分で終了します。図3は、書き込みのログ画面です。
成功すれば、EManagerは、AP Moteに変更されます。
リストア方法
EManagerをVManaerのAP Moteにしたけど、やっぱり戻したい場合は、下記方法でEManagerに戻すことができます。
`ESP –E` `ESP –P fuse_table.bin 0` `ESP –P mgr_part_r52074.bin 800` `ESP –P manager_ip_1_4_2_2_oski.bin 1000`
詳しくは、SmartMesh IP Users Guideの”4.1.6 Restoring Manager Factory Default Settings”を見て下さい。
FullImageでバックアップ
どうしても心配な方は、AP Moteへの変更を行う前に、
ESP -r fullImage.bin
でバックアップを取りましょう。
戻すときは、
ESP -P fullImage.bin
で戻すことができます。
VManagerとして動かす
DC2274A-AをAP Moteに変更したら、VManagerで動くかどうかを確認してみましょう(図4)。
他のMoteもつないで、console
で確認してみます(図5)。
RPi3をAP Bridgeとして設定する
こんどは、あらかじめにAP BridgeのイメージをいれたOSイメージをRPi3に入れて動かしてみましょう(図6)。
RPi3のOSイメージ
VManagerのパッケージには、AP Bridge Software
という名前のOSイメージファイルが同梱されています。
これをSDカードに書き込んで、RPi3をブートさせると、AP Bridge用のソフトウェアが含まれています。RPi2も使用できます。SDカードは、16GB以上のmicroSDカードを用意するといいでしょう。
今回使用しているバージョンは、rev_1_1_0
です。イメージファイルは、raspbian-jessie-lite-dust-11004.img
を使用しています。
RPi3をつないでみる
RPi3は、Ethernetにつないで、HDMIとキーボードを接続し、起動させます。図7のように接続しています。DC2274は、直接USBポートに使用すると、他のポートを塞いでしまいますので、USBの延長コネクタがあると便利です。
RPi3は、VManagerのように起動しますので、ID:dust/PW:dustでログインします。
RPi3のIPアドレスを確認
RPi3のコマンドifconfig
でIPアドレスを確認します。今回割り当てられたアドレスをメモか何かで控えておきます。ここでは、10.0.1.29
としておきましょう。
複数のAP MoteをVManagerに統合する
ここで、VManagerで、RPi3のAP Bridgeを統合します。
Stunnelを使う
Linuxのコマンドプロンプトから、update-apc-config stunnel --host ipaddress
コマンドで、VManagerと接続します。
先ほどのIPアドレスを使用し、update-apc-config stunnel --host 10.0.1.29
と入力します。このコマンドにより、RPi3のAP BridgeがVManagerに統合されます。
consoleで確認
VManagerにSSHでログインして、console
のsm
コマンドでMoteの状態を確認してみました(図8)。
赤い枠で囲んであるところが、追加されたAP Moteです。2つのAP Moteで4台のMoteが接続されていることがわかります。
ローカルに接続されたVManagerは、「Int」で表示されています。Stunnelで接続されたAP Bridgeは、「Net」で表示されています。
まとめ
ノード数が増えてくると、帯域増加は免れません。そんな時に、簡単に追加できるAP Moteで、VManagerのトラフィック負荷の解消を検討して見て下さい。
最新情報をメーカーサイトで見る
こちらも是非
“もっと見る” 実験室
組み込みアプリを止めるな!printfやブレークポイントも使わず内部状態をチェック!
産業機器、オーディオ製品、通信デバイスをはじめとする多くの組み込みアプリケーションは、わずかなタイミングの違いで動きが変化します。そのため、開発・検証のためにprintfなどを仕掛けることが難しく、開発効率が伸び悩むケースも増えています。そこで今回の実験室では、システムを止める事なく内部状態を取得できるデータ計測ツール「EVRICA」を紹介いたします。組み込みアプリケーションの開発や検証に欠かせない、新しい開発ツールです。
IoTエッジコンピューティングをSmartMeshで実践
今回の実験は、Moteに内蔵されている非力なマイコンを使って、振動計測ソリューションのFFTデータをSmartMeshで送信したIoTエッジコンピューティングを実践してみました。
非絶縁型中間バスコンバータ750Wで、48Vと12Vを自由自在
VicorのNBMシリーズの最新デバイスであるNBM2317シリーズは、23×17×7mmという超小型パッケージで最大750W出力、48V→12Vまたは、12V→48Vの双方向において98%のピーク効率を実現した非絶縁型中間バスコンバータ。今回の実験室は、実際に動かしつつ、その性能とメリットを解説している。その様子は、是非動画で見て欲しい。