LoginSignup
1
5

More than 5 years have passed since last update.

Sens'it V3のデータをAWS IoTからDynamoDBV2に書き込む

Last updated at Posted at 2018-10-15

AWS IoTのルールエンジンで"DynamoDBテーブルにメッセージを挿入する"場合は、
image.png
こちら"Sigfox CallbackとAWS IoT連携"を見てください。
ここでは、元となるペイロード(JSON)が下記のような構成になっているが、

sensit.json
{
  "device":"B42XXX",
  "time":"1539592634",
  "data":"fe0da56c",
  "battery_level":31,
  "mode":1,
  "button_alert":"true",
  "temperature":421,
  "humidity":108
}

各値を計算してからデータベース(DynamoDB)に挿入したい場合です。
例えば、battery_levelは
バッテリー電圧 = (battery x 0.05) + 2.7
のような場合です。
この場合は、"データベーステーブル(DynamoDBv2)の複数列にメッセージを分割する"をアクションとして選択することとなります。
image.png

DynamoDBv2に挿入する方法

こちら"Sigfox CallbackとAWS IoT連携"で、まずは一連の流れを作っていただいて結構です。それを下記の通り修正していきます。
AWS IoTのACTルールを作成します。ルール名は適当につけてもらえれば結構です。ルールクエリステートメントで下図のようなクエリを作ります。
image.png

SELECT 
 (battery_level * 0.05) + 2.7 AS battery_voltage, * 
FROM 'sigfox'

ここでは、'sigfox'トピックからとってきたJSONから"(battery_level * 0.05) + 2.7"した値を"battery_voltage"カラムに、その他すべて()をDynamoDBに挿入します。ということを意味します。
アクションは、
"データベーステーブル(DynamoDBv2)の複数列にメッセージを分割する"*を選択し、挿入先のテーブル名、ロールを設定します。
image.png

ルールのテスト

AWS IoTのテストメニューから"sigfox"トピックにサブスクライブし、Sigfox Callbackで転送されるJSONサンプルを下図のように記載し、[トピックに発行]ボタンを押します。
image.png

すると、DynamoDBのテーブルを見ると下図のように"battery_voltage"というカラムが追加されていることを確認できます。
image.png

あとは、Sens'it v3がデータを送るたびにDynamoDBが更新されていきます。

Sigfox Japan KCCS

1
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
5