このコード・パターンは 2020 Call for Code Global Challenge の一部です。
2018 Call for Code Global 賞を獲得した Project Owl は、このプロジェクトをデプロイする際に、メッシュ・ネットワークを構築する IoT ハードウェア・ソリューションを実装しました。メッシュ・ネットワーキング・トポロジーは新しいアイデアではありませんが、IoT ハードウェアがますます安価になる中、メッシュ・ネットワークはより実現しやすいモノのインターネット・ソリューションになってきています。
このチュートリアルで大まかに紹介する (ワークショップに基づく) 手順では、まず、Raspberry Pi を使用して Wi-Fi 経由のメッシュ・ネットワークを構築します。次に、作成したメッシュ・ネットワークを使用してセンサーをインターネットに接続し、メッシュ・ネットワークに参加していない他のデバイスでもメッシュ・ネットワークを介してインターネットに接続できるようにします。 以下の図に、このメッシュ・ネットワークのトポロジーを示します。
メッシュ・ネットワークとは何か、そしてなぜメッシュ・ネットワークが IoT ソリューションで役立つかについて詳しく理解するには、ワークショップのセクション「Mesh Networks」を参照してください。
IoT エッジ用のメッシュ・ネットワーキングを構成する手順は、主に 3 つのステップからなります。
前提条件
このメッシュ・ネットワークには、ファイル・システムを格納する SD カードを搭載した 2 台以上の Raspberry Pi と、Raspberry Pi ごとの電源が必要です。 また、温度センサー、湿度センサー、RGB LED も必要になります。 さらにイーサネット接続または Wi-Fi 接続、そしてもちろんインターネット接続も利用できなければなりません。
このチュートリアルに取り組むには、IBM Cloud アカウントを使用できます。
- IBM Cloud アカウントを作成します。
- IBM Cloud にログインします。
前提条件となるハードウェア、ソフトウェア、このプロジェクトに関する知識については、ワークショップのメインの README ファイルにある「Prerequisites」セクションを参照してください。
メッシュ・ネットワークを構築する
ステップ 1 では、Wi-Fi を介してメッシュ・ネットワークを構築するとともに、メッシュ・デバイス用のネットワーク・アクセスをセットアップします。 メッシュ・ネットワークを自宅や職場のネットワークに接続するにはイーサネット接続を使用します。さらに、メッシュ・ネットワークに参加していないデバイスでもこのネットワークを使用してインターネットにアクセスできるようにします。
Wi-Fi 経由のメッシュ・ネットワークを作成する
Raspberry Pi 上にメッシュ・ネットワークを作成するために、batman-adv という標準的な Linux カーネル・モジュールを使用します。 このモジュールにより、Raspberry Pi からメッシュ・ネットワーク経由でネットワーク・トラフィックを送信できるようになります。
ワークショップの「Build a mesh network」セクションで説明している手順に従ってください。
メッシュ・デバイス用のネットワーク・アクセスをセットアップする
メッシュ・ネットワークを作成した後は、メッシュ・ネットワークのノードがインターネットにアクセスできるようにする必要があります。それには、ゲートウェイ・デバイスをメッシュ・ネットワークに追加します。さらに、メッシュ・ネットワークに参加していないデバイスでも、メッシュ・ネットワークを使用してインターネットやメッシュ・ネットワークの他のノードにアクセスできるようにする必要があります。これを可能にするには、ブリッジ・デバイスをメッシュ・ネットワークに追加します。
ワークショップの「Network access」セクションで説明している手順に従ってください。
Wi-Fi を使用してメッシュ・ネットワークを接続する
ステップ 2 は必要に応じて行ってください。このステップでは、(イーサネットではなく) Wi-Fi を使用してゲートウェイ・デバイスを自宅や職場のネットワークに接続します。また、ブリッジ・デバイスを Wi-Fi ホットスポットに変換して、Wi-Fi 接続によるデバイスをメッシュ・ネットワークにつなげられるようにします。以下の図に、Wi-Fi を使用したメッシュ・ネットワークを示します。
Wi-Fi タイプのゲートウェイまたはブリッジ・デバイスが必要ない場合は、このステップをスキップしてステップ 3 に進んでください。
Wi-Fi を介してゲートウェイをネットワークに接続する
ワークショップの「WiFi Gateway」セクションで説明している手順に従って、イーサネット接続を Wi-Fi 接続に変換し、その Wi-Fi 接続でメッシュ・トラフィックを、ゲートウェイ・デバイスを介してルーティングします。
ブリッジ・アクセス・ポイントを作成する
ワークショップの「WiFi Bridge」セクションで説明している手順に従って、ブリッジ・ノードをアクセス・ポイントに変換し、そのアクセス・ポイントから送信されるネットワーク・トラフィックがメッシュ・ネットワークに到達できるようにします。
メッシュ・ネットワークを介してセンサー・データを送信する IoT アプリを作成する
最後のステップ 3 では、センサー・データを収集するモノのインターネット・アプリケーションを構築します。このアプリケーションは収集したセンサー・データを、メッシュ・ネットワークを使用して IBM Cloud に送信します。IBM Cloud アプリがセンサー・データを受信して処理し、Raspberry Pi にコマンドを送信して Raspberry Pi 上の LED ライトの色を設定します。
このステップでは、センサーを接続し、Node-RED といくつかの Node-RED パッケージをインストールして、IBM Cloud 内で IoT アプリを作成した後、メッシュを介して Watson IoT Platform にセンサー・データを送信します。
ワークショップの「Part 3」で説明している手順に従ってください。
まとめと次のステップ
このチュートリアルでは、IoT エッジ用のメッシュ・ネットワーキングを構成するプロセスをできるだけわかりやすく説明しました。 他にもメッシュ・ネットワーキングを利用できる IoT ソリューションを考案してください。