Wio Terminal上のLoRaノードとAIoTs GPS
はじめに
AIoTs GPS & 状態テスターは、Wio Terminalシャーシ-LoRa-E5およびGNSSを基に開発されています。従来のIoTsと比較して、より簡潔で知的な機能を備えています。従来のIoTsは基本的にデータを受信し、そのデータが正しいかどうかに関係なくコマンドアクションを実行します。一方、AIoTsはニューラルネットワークアルゴリズムを使用して不要なデータをフィルタリングし、正しいデータを取得することができます。
このプロジェクトでは、内蔵された3軸加速度センサーとニューラルネットワークアルゴリズムを使用して、インテリジェントな認識システムを構築します。Wio Terminalの動きに基づいて、リアルタイムでその状態を表示できます。一般的に、この例では3つの訓練された状態が含まれています:停止(WTアイドル状態)、回転(WTデバイスの転倒)、および振る(WTを手で振る)。Edge Impulseのウェブサイトにアクセスして、さらに多くの訓練アクションを追加することをお勧めします。

特徴
- LoRaデバイスは、DevEui、APPEui、Appkeyを最初のページに表示できます。
- ニューラルネットワークアルゴリズムによる正確なデータ取得
- Wio Terminalの状態を高精度で検出
- 経度、緯度、衛星数を表示
- デバイスとTTN接続の状態を表示
始め方
ハードウェア
必要なハードウェア
このデモでは以下のデバイスが必要です:
ハードウェア接続
Type-Cケーブルを使用してコンピュータに接続します。

Wio Terminalでの機械学習
ここでは、Wio Terminalを使用して機械学習モデルを訓練し、使用する方法を紹介します。このプロジェクトはArduinoプラットフォームに基づいており、Arduino IDEとさまざまなArduinoライブラリが必要です。初めてWio Terminalを使用する場合は、Wio Terminalのクイックスタートガイドを参照することをお勧めします。
Arduinoライブラリをダウンロードしてインストールしてください:
Edge Impulseでの訓練開始
まず、Edge Impulseのアカウントを作成し、プロジェクトを作成する必要があります。
- ステップ1. Edge Impulseのウェブサイトを開き、アカウントを登録します。

- ステップ2. 新しいプロジェクトを作成します。


Wio Terminalとのウェブサイト接続
- ステップ3. 接続準備のためにファームウェアwio-terminal-ei-1.4.0.uf2をダウンロードします。
Wio Terminalのクイックスタートガイドの指示に従ってください:
Wio Terminal(すでにPCに接続済み)の左下をダブルクリックすると、コンピュータにドライバ(以下のようなArduino (F:))がポップアップ表示されます。その後、wio-terminal-ei-1.4.0.uf2ファームウェアをドライバにドラッグします。ドライバが消えるのを確認したら、ファームウェアがプログラムされたことを意味します。これでウェブサイトにアクセスしてWio Terminalを接続できます。

- ステップ4. ファームウェアが設定されたら、
connect using WebUSBをクリックしてWio Terminalをウェブサイトに接続します。

以下のようにDevice、Label、Sensorが表示されたら、接続が完了し、データ収集を開始できます。

データ収集
Edge Impulseでデータを収集できます。
-
ステップ5.
Label、Sample length (ms.)を入力し、Start samplingをクリックします。Labelは分類したいカテゴリを意味します。Sample lengthはサンプリングの時間を意味します。
異なるSensorやFrequencyを選択して、結果を確認することもできます。

データを10回以上サンプリングすることを強くお勧めします。

機械学習モデルの生成
データが収集されたら、それを使用してMLモデルを訓練できます。
- ステップ6. データをサンプリングした後、
create impulseをクリックしてデータを処理します。

ここで選択した処理ブロックと学習ブロックはウェブサイトで推奨されているものと同じです。ただし、他のブロックを選択して違いを確認することを強くお勧めします。ブロックが設定されたら、Save Impulseをクリックしてインパルスを保存します。

- ステップ7.
Spectral featuresページに移動し、下部でSave parametersをクリックすると、自動的にGenerate feature側に移動します。

ここがGenerate feature側で、機械学習に必要な特徴にデータを変換するのを助けます。

Generate featureをクリックすると、右側に結果が表示されます:

- ステップ 8.
NN Classifierページに移動し、特徴量を使用して機械学習モデルをトレーニングします。ページの下部にあるStart trainingをクリックしてください。

トレーニングの出力はページの右側に表示されます。出力が表示されたら、モデルが生成されたことを意味します。

機械学習モデルのデプロイ
これで、機械学習モデルを Wio Terminal にデプロイすることができます。
- ステップ 9. 左側の
Deploymentカラムを選択してクリックします。

次に Arduino Library を選択し、下部の build をクリックしてArduinoで必要なライブラリを作成します。これにより、サードパーティライブラリを含むzipファイルが自動的にダウンロードされます。


必要なライブラリの名前はプロジェクトの名前に基づいており、ステップ 2 でプロジェクトに記載した名前がここに表示されます。これにより、必要な正しいファイルを見つけることができます。

- ステップ 10. Githubからコードファイルをダウンロードし、Arduino IDEで開きます。上記のようにサードパーティライブラリを変更し、コードを実行します。

地域による違いのため、ファイル内のコードを少し変更する必要があります:

アメリカのサーバーに接続している場合、例のコードについて心配する必要はありませんが、他の地域では以下のように設定する必要があります(CN_470_510 は中国の場合、値が470から510の範囲であることを意味します):

最終的な結果は以下のようになります:

Edge Impulseについてもっと知りたい場合や、まだ不明な点がある場合は、Wio Terminal Edge Impulse Getting Started を参照してください。
LoRaを使用してTheThingsNetworkにデータを表示する
機械学習モデルをトレーニングし、データを収集した後、データをクラウドに送信することでさらに楽しむことができます。このプロジェクトでは、LoRaを通じてTheThingsNetworkプラットフォーム(クラウド)にデータを表示できるようになります。
必要なハードウェア
- ゲートウェイ
まずゲートウェイを設定する必要があります。これにより、Wio Terminal と TTN(TheThingsNetwork)クラウドを接続できます。
TheThingsNetworkでデータを表示する手順
ステップ 1 TTNウェブサイト にアクセスしてアカウントを作成し、go to gateways をクリックしてデバイスを設定します。

ステップ 2 ゲートウェイページで Add gateway をクリックします。

自分のゲートウェイ情報を追加します:
- オーナー(あなたの名前)
- ゲートウェイID(ゲートウェイに依存)
- ゲートウェイEUI(ゲートウェイに依存、時にはゲートウェイIDと同じ)
- ゲートウェイ名(任意)

LoRaWAN オプションの Frequence plan は居住地に依存します。Add gateway の前に、いくつかのクラスターを含むページが表示される場合があります。Frequence Plan とクラスターの選択は一致している必要があり、居住地に最も近いエリアを選択してください。


ステップ 3 ゲートウェイが設定されたら、Applicationsページで Wio Terminal ノードを追加して接続できます。Add application をクリックします:

以下の情報を任意で入力します:
- オーナー
- アプリケーションID
- アプリケーション名

ステップ 4 アプリケーションを作成すると、右下に Add end device が表示され、Wio Terminal デバイスを追加できます。

BrandをSelect Sense CAPに選択ModelをLoRa-E5に選択- Hardware Ver と Firmware Ver はデフォルトで設定
- Profile(Region) は居住地に基づく(
Frequncy planと同じ地域) - Frequency plan は ステップ 2 で選択したものと同じ
- AppEUI、DevEUI、AppKey は異なる LoRa-E5 デバイスごとにユニークです。これらは、ファームウェア Gateway_Tester.uf2 をデバイスにプログラムすることで簡単に見つけることができます。Edge Impulseのチュートリアルのように、ファームウェアをプログラムするには、Wio Terminal の左ボタンを押しながらuf2ファイルをドライブにドラッグするだけです。

- End Device ID は DevEUI を入力すると自動的に入力されます。

ステップ 5 デバイスを接続した後、Payload formatters を選択し、データをデコードするためのコードを追加する必要があります(フォーマッタータイプを 'Javascript' に選択):

function Decoder(bytes, port) {
var decoded = {};
if (port === 8) {
decoded.Stop = bytes[1];
decoded.Turn = bytes[3];
decoded.Wave = bytes[5];
}
return decoded;
}
ステップ 6 最後にゲートウェイに移動し、Live data をクリックします。結果が表示されるはずです:
