ひとりになりたい

ノーストレスで生きていく

Sens'it V3のペイロードを確認してみました

結論から先に書くと、下記ドキュメントから確認できます。

 

Sens’it Discovery - Payload Structure

https://storage.googleapis.com/public-assets-xd-sigfox-production-338901379285/build/4059ae1jy7g2jmg/sensit-discovery-payload.pdf

 

実例があったほうが良いと思うので、自分が確認したかった内容も含め、説明したいと思います。

 

<具体的に確認したい内容>

 起動モードは「振動(vibration)」で、1日1回、何回振動したか、データを取得したいと思います。

 

前提として、Sens'it V3のコールバック設定が済んでいるものとします。

 

Sens’it Discovery 取扱説明書 Ver3.0

https://www.kccs.co.jp/sigfox/news/kccs/20200331/pdf/pdf-index-01.pdf

P.10 コールバック設定

 

 

コールバックを設定していれば、sigfox backendからデータの参照が可能です。まずはデータの確認方法を説明します。

 

<データの確認方法>

1.下記URLにアクセスし、ログインします。

backend.sigfox.com

 

2.アカウント情報を入力し、Sign Inをクリック

ログイン情報の入力

 

3.Sigfox Backendのホーム画面で、Deviceタブをクリック

Deviceタブをクリック

 

4.デバイス一覧が表示される。確認したいデバイスの、IDリンクをクリック

バイス一覧。IDリンクをクリック。

 

5.デバイスの詳細が表示される。左メニューからMESSAGESをクリック

MESSAGESをクリック

 

6.[Data/Decoding]欄のデータを確認する。

データリンク

[Data/Decoding]欄に表示されたデータが、デバイスから取得した情報になります。

今回は9/18に受信した「de200002d6003f0f8003113c」を実データとして説明します。

 

<データの中身の確認>

受信したデータは16進数であらわされています。

2進数に変換し、結果から確認することができます。

 

ドキュメントによると、はじめの4Byteがデータペイロード(デバイスからの受信データ)で残り8Byteが設定用のデータになります。

 

実例では下記データで説明したいと思います。

※一部わからないところもありましたので、悪しからず。。

・データペイロード(4Byte):de-20-00-02

・設定ペイロード(8Byte):d6-00-3f-0f-80-03-11-3c

 

 

まずは、データペイロードから、説明します。

 

・0Byte目の解析:0xde=0b1011,1110 

 7-3bit(0b10111=0d23) :バッテリーレベル

 2-0bit(0b110=0d7):固定(Spare(0b110))

 

 バッテリーレベルは下記計算式でボルトに変換できるようです。

   Battery Voltage(V)=(Battery Level×0.05)+2.7

   3.85V=(23×0.05)+2.7

 

・1Byte目の解析:0x20=0b0010,0000 

 7-3bit(0b00100=0d4) :動作モード

 2bit(0b0=0d0):Button Alert Flag

 1-0bit(0b0=0d0):動作モードごとのデータ

 

 動作モードは4の場合は、振動モードになります。

 Button Alert Flagは、ボタンを2回押下した場合に1になるようです。

 動作モードごとのデータは、動作モードによって、そのデータの意味が異なります。

 振動モードでは、0の場合は「No Vibration Detected.(振動は検出されませんでした)」になります。

 おそらく、Priodicの場合は、必ず0になるようです。

 

・2Byte目の解析:0x00=0b0000,0000 

 7-0bit(0b00000000=0d0) :動作モードごとのデータ

 

 動作モードごとのデータが設定されます。

 振動モードの場合、[Event Count MSB]が設定されます。

 振動の回数を定義しているようですが、意味はわかりませんでした。

 おそらく、次の[Event Count LSB]の振動回数を超過した場合、カウントされると思われます。

 

・3Byte目の解析:0x02=0b0000,0010 

 7-0bit( 0b00000010=0d2) :動作モードごとのデータ

 

 動作モードごとのデータが設定されます。

 振動モードの場合、「Event Count LSB」が設定されます。

 実例の場合、振動回数は2回で検出されています。

 

 

次に設定ペイロードを説明します。

設定ペイロード(8Byte):d6-00-3f-0f-80-03-11-3c

 

・0Byte目の解析:0xd6=0b1101,0110 

 7-6bit(0b11=0d3):メッセージ間隔

 5bit(0b0=0d0) : Magnet Mode Flag

 4bit(0b1=0d1) : Vibration Mode Flag

 3bit(0b0=0d0) :Door Mode Flag

 2bit(0b1=0d1) : light Mode Flag

 1bit(0b1=0d1) : Temp Mode Flag

 0bit(0b0=0d0) : Standby Mode Flag

 

 メッセージ間隔は、メッセージを送信する間隔を設定します。

 0d0は10分間隔

 0d1は1時間間隔

 0d2は6時間間隔

 0d3は24時間間隔

 実例の場合は、0d3なので、24時間間隔で送信されます。

 

 Mode Flagは、各動作モードのメッセージ送信モードを定義します。

 0d1は、定期的にメッセージを送信

 0d0は、イベント検出時にメッセージを送信

 

・1Byte目の解析:0x00=0b0000,0000 

 7-6bit(0b00=0d0) :固定(Spare(0b00))

 5-0bit(0b000000=0d0):温度の閾値(下限値)の設定

 

 温度の閾値(下限値)は、設定した温度を下回った場合、イベントが発生します。

 ※閾値は-9~54度。

 

・2Byte目の解析:0x3f=0b0011,1111 

 7-6bit(0b00=0d0) :固定(Spare(0b00))

 5-0bit(0b111111=0d63):温度の閾値(上限値)の設定

 

 温度の閾値(上限値)は、設定した温度を超過した場合、イベントが発生します。

 ※閾値は-9~54度。

 

・3Byte目の解析:0x0f=0b0000,1111 

 7-4bit(0b0000=0d0) :湿度の閾値(下限値)の設定

 3-0bit(0b1111=0d15):湿度の閾値(上限値)の設定

 

 湿度の閾値は、設定した湿度を超えた場合にイベントが発生します。

 ※閾値は30%~90%。

 

・4Byte目の解析:0x80=0b1000,0000 

 7bit(0b1=0d1) :Limitaion Flag

 6-0bit(0b000000=0d0):明るさの閾値

 

 Limitaion Flagは、デューティ比の設定で使用します。

 ※デューティ比は、いまいち意味が分からなかった。。

 

 明るさの閾値は、これまた超えた場合にイベントが発生します。

 ※1luxから636luxで設定できるとのこと。

 

・5Byte目の解析:0x03=0b0000,0011 

 7-0bit(0b00000011=0d3) :振動の感度の設定(加速度)

 

 振動の感度の設定は(加速度)は5段階で設定できる。

  0x10 Very little sensitivity
  0x08 Not very sensitive 
  0x04 Standard 
  0x03 Sensitive 
  0x01 Very sensitive

 

・6Byte目の解析:0x11=0b0001,0001 

 7-6bit(0b00=0d0) :Spare(00)固定

 5-4bit(0b01=0d1):次の振動検知の間隔

 3-0bit(0b0001=0d1) :振動の感度の設定(周波数)

 

 次の振動検知までの間隔は、下記値から設定します。

  0d0 検出モードの終了
  0d1 10秒 
  0d2 30秒 
  0d3 60秒 

 

 振動の感度の設定(周波数)は、若干あやふやですが、振動の周波数でも検知できるようです。

 

 

・7Byte目の解析:0x3c=0b0011,1100 

 7bit(0b0=0d0) :Reset bit

 6-4bit(0b011=0d3):ドアモードの閾値(Open時)

 3-0bit(0b1100=0d12) :ドアモードの閾値(Close時)

 

Reset bitはデバイスの現在のリセットし、再設定を行いします。

1が設定されていた場合、設定ペイロードの設定を反映するようです。

 

ドアモードの閾値は開閉アングルの感度を設定するようです。

 

 

あとがき

先日、Sensit.ioのWebサイトが閉鎖になりました。

Sens'it V3のデバイスデータも、そこから確認していたので、代わりの方法を探す道中で、今回データの確認に至りました。

 

今後も使用していきたいのですが、もともと実証実験用のデバイスらしいので、もう下火なんでしょうね。Sens'it。