SenseCAP & Node-RED を使用して Datacake に接続する方法
この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues
Node-RED を介して SenseCAP を Datacake に接続する
SenseCAP K1100 - センサープロトタイプキットは、Seeed Studio が LoRa® 通信技術とエッジインテリジェンス製品のエッセンスを凝縮し、LoRa® および IoT アプリケーションを最も簡単に展開および習得できるように設計されたものです。

産業用センサーへのアップグレード可能
SenseCAP S2110 コントローラー と S2100 データロガー を使用することで、Grove を簡単に LoRaWAN® センサーに変えることができます。Seeed はプロトタイピングを支援するだけでなく、SenseCAP シリーズの堅牢な産業用センサーを使用してプロジェクトを拡張する可能性も提供します。
IP66 ハウジング、Bluetooth 設定、グローバル LoRaWAN® ネットワークとの互換性、内蔵 19 Ah バッテリー、そして強力な APP サポートにより、SenseCAP S210x は産業用途に最適な選択肢となります。このシリーズには、土壌水分、空気温度と湿度、光強度、CO2、EC、そして 8-in-1 気象ステーション用のセンサーが含まれています。次の成功する産業プロジェクトには最新の SenseCAP S210x を試してみてください。
SenseCAP 産業用センサー | |||
S2100 データロガー | S2101 空気温度 & 湿度 | S2102 光強度 | S2103 空気温度 & 湿度 & CO2 |
S2104 土壌水分 & 温度 | S2105 土壌水分 & 温度 & EC | S2110 LoRaWAN® コントローラー | S2120 8-in-1 気象ステーション |
Datacake
Datacakeは、プログラミングスキルを必要とせず、最小限の時間でカスタムIoTアプリケーションを作成できる多目的なローコードIoTプラットフォームです。
この章の内容では、前述のNode-REDを引き続き使用し、Node-REDを通じてK1100キットをDatacakeで管理する方法を説明します。
もしNode-REDをインストールしていない、またはNode-REDが何かわからない場合は、Node-RED & SenseCAP チュートリアルを参照してください。
MQTTノードの作成
ステップ1. Node-REDを起動する
ターミナルでnode-red
コマンドを入力してNode-REDを起動し、ブラウザを開いてアドレスバーにhttp://localhost:1880を入力してNode-REDのエディタにアクセスします。
ステップ2. MQTTノードを作成する
Network -> mqtt inノードを使用し、前のチュートリアルで説明したSenseCAP APIの形式に従ってmqttを設定します。
サーバー: openstream.api.sensecap.seeed.cc
ポート: 1883
プロトコル: MQTT V3.1.1
クライアントID: フォーマットは
org-<Organization ID>-<Random ID>
<Organization ID>
あなたの組織ID。これはSenseCAP APIを取得するで取得済みです。<Random ID>
自分でランダムに生成した数字または小文字の英字を使用します。
トピック形式:
/device_sensor_data/<OrgID>/<DeviceEUI>/<Channel>/<Reserved>/<MeasurementID>
OrgID | あなたの組織ID。これはSenseCAP APIを取得する際に取得済みです。 |
DevEUI | センサー機器のユニークな識別子。この情報はGrove - Wio E5の背面のステッカーやSenseCAPコンソールデバイスで確認できます。 |
Channel | センサーが接続されているデバイスの物理インターフェース。K1100キットの場合、ここでのデフォルト値は1です。 |
Reserved | 予約フィールド。 |
MeasurementID | 測定値ID。このIDはSenseCAP ドキュメントのMeasurement IDsセクションで確認できます。 |
ステップ3. MQTTノードを検証する
設定が完了したら、右上のDeployボタンをクリックして設定が成功したか確認してください。正しく入力されていれば、Connectedという言葉が表示されます。

Datacakeの設定
ステップ1. Datacakeに登録またはログインする
すでにDatacakeに登録している場合は、Datacakeのウェブサイトでログインしてください。

Datacakeを使用していない、または登録していない場合は、こちらで登録とログインを完了してください。

ステップ2. 新しいワークスペースを作成する
Datacakeにログインしたら、左上のアカウント名をクリックしてAdd Workspaceを選択します。そしてワークスペースの名前を考えます。

ステップ3. 新しいデバイスを作成する
新しく作成したワークスペースに入ったら、新しいデバイスを作成します。

APIを選択します。

New Productを選択します。そして製品に名前を付けます。

このセクションでは、無料オプションを選択して完了します。

ステップ4. デバイスを設定する
作成した新しいデバイスをクリックしてConfigurationを選択します。

「Fields」を見つけてAdd Fieldをクリックします。そしてDatacakeで管理したいデータの名前を入力します。

IDENTIFIERフィールドはすべて大文字であることに注意してください。また、後で設定するNode-REDの関数ノードでも、渡される内容は大文字である必要があります。
ステップ5. APIトークンを取得する
左上のアカウント名をクリックしてEdit Profileを選択します。

その後、APIでAPIトークンを保存します。このトークンは後ほどNode-REDで使用します。

Node-RED の設定
ステップ 1. Datacake パレットをダウンロード
右上のメニューバーをクリックし、設定を選択します。

Paletts -> Install で node-red-contrib-datacake を検索してインストールします。

左側のストレージバーから datacake - out を追加し、それをダブルクリックして設定ページに入り、編集ボタンをクリックして datacake - out ノードを編集します。

ステップ 2. datacake - out ノードを編集
API Token には、Datacake の前回の設定で取得した API トークンを入力してください。その後、右上の追加ボタンをクリックします。
次に、以前作成したワークスペースの名前を選択します。

デバイスは自動的に新しく作成されたデバイスに更新され、フィールドのドロップダウンボックスには新しく作成されたフィールドが表示されます。ここでフィールドを設定したくない場合は、ペイロードの fieldName を変更してコードでフィールドを設定することもできます。

ステップ 3. 関数ノードを設定
Datacake にデータを報告するには特定のデータ形式に従う必要があるため、データ形式を処理する関数ノードを追加する必要があります。

左側の関数バーから関数ノードをドラッグして、ダブルクリックして編集ページに入り、コードを On Message にコピーします。

{
var payload = msg.payload;
var topic = msg.topic;
var strs = topic.split("/");
var length = strs.length
if (length >= 2) {
var measurementId = strs[length - 1]
msg.payload = payload.value
if (measurementId == 4150) {
msg.fieldName = "ACCELX"
} else if (measurementId == 4151) {
msg.fieldName = "ACCELY"
} else if (measurementId == 4152) {
msg.fieldName = "ACCELZ"
} else if (measurementId == 4192) {
msg.fieldName = "VOLUME"
} else if (measurementId == 4193) {
msg.fieldName = "LIGHTINTENSITY"
} else if (measurementId == 4103) {
msg.fieldName = "SOILMOISTURE"
} else if (measurementId == 4195) {
msg.fieldName = "TVOC"
} else if (measurementId == 4100) {
msg.fieldName = "CO2"
} else if (measurementId == 4097) {
msg.fieldName = "AIRTEMPERATURE"
} else if (measurementId == 4098) {
msg.fieldName = "AIRHUMIDITY"
} else if (measurementId == 4175) {
msg.fieldName = "AIDETECTION1"
} else if (measurementId == 4176) {
msg.fieldName = "AIDETECTION2"
} else if (measurementId == 4177) {
msg.fieldName = "AIDETECTION3"
} else if (measurementId == 4178) {
msg.fieldName = "AIDETECTION4"
} else if (measurementId == 4179) {
msg.fieldName = "AIDETECTION5"
} else if (measurementId == 4180) {
msg.fieldName = "AIDETECTION6"
} else if (measurementId == 4181) {
msg.fieldName = "AIDETECTION7"
} else if (measurementId == 4182) {
msg.fieldName = "AIDETECTION8"
} else if (measurementId == 4183) {
msg.fieldName = "AIDETECTION9"
} else if (measurementId == 4184) {
msg.fieldName = "AIDETECTION10"
}
}
return msg;
}
ステップ 4. デプロイ
次に、すべてのノードを接続し、Deploy ボタンをクリックします。すべてが正しく設定されていれば、mqtt in ノードが接続されていることを確認できます。
データのログ情報を確認したい場合は、関数ノードの後にデバッグノードを追加することができます。

Wio Terminal が電源を入れて動作を開始し、SenseCAP PaaS サーバーにデータを送信し始めると、Node-RED のデバッグログでデータを確認できます。

Datacake ダッシュボードに戻ると、このデバイスの History セクションですべてのデータ情報を確認できます。

トラブルシューティング
Q1: Node-REDでパレットが見つからないのはなぜですか?
A: 設定でパレットが見つからない場合、Node-REDを起動した際にターミナルにエラーメッセージが表示されていないか確認してください。

最も一般的な原因は、npmのバージョンが古すぎてパレットエディタを起動できないことです。
上記の状況に該当する場合は、管理者としてPowershellを実行し、以下のコマンドを入力してnpmをアップグレードしてください。
npm install -g npm
その後、Node-REDを再起動するだけです。
技術サポート & 製品ディスカッション
弊社製品をお選びいただきありがとうございます!製品をご利用いただく際の体験がスムーズになるよう、さまざまなサポートを提供しています。お客様の好みやニーズに応じた複数のコミュニケーションチャネルをご用意しています。