LoginSignup
11
5

More than 5 years have passed since last update.

Sigfox Shield for Arduino の購入から Sigfox クラウド API によるメッセージ取得まで

Last updated at Posted at 2018-09-28

Sigfox Shield for Arduino について

Arduino IDE を使って Sigfox 回線を使った開発ができるシールドです。
送信するペイロードやタイミングなど、自由に開発したい場合、現時点では最も簡単な(安くて早い)選択肢です。

製造元 UnaBiz 正式名称 UnaShield

UnaBiz: https://www.unabiz.com/
アジア(シンガポール、台湾)で Sigfox サービスを展開する事業者です。日本での京セラコミュニケーションシステムに相当。

UnaShild: https://unabiz.github.io/unashield/

日本の事業者ではないですが、日本で注文すると、ちゃんと RCZ3 のシールドが届きました。

日本での卸元 京セラコミュニケーションシステム (KCCS)

こちらからは購入できません。「4社から購入可能」と案内されていますので、いずれかから購入しましょう。

取扱説明書のダウンロードは可能です。 https://www.kccs.co.jp/sigfox/download/manual-sigfox-shield-for-arduino.pdf

Shield の購入

販売店比較 買うならマルツ

いずれも、1年間のSigfox回線利用権が含まれています。
ソラコムを使いたい信者場合は一択ですが、それ以外は同じ製品なので価格で選んで構いません。
どれもKCCSと取引があるので、ちゃんとした代理店です。

販売店 URL 価格 送料 2年目以降について 備考
ソラコム https://soracom.jp/products/sigfox/sigfox_shield_for_arduino/ 6,480円 (税抜き) 907円 (税込) 1,440円/1年 (税抜き) Sigfox クラウド (backend.sigfox.com) 利用不可
スイッチサイエンス https://www.switch-science.com/catalog/3354/ 6,026円 (税込) 500円
(10,000円以上で無料)
1000円ほど 販売ページの資料が充実
共立電子産業 http://eleshop.jp/shop/g/gHAR311/ 6,026円 (税込) ネコポス 280円
(7,500円(税込)以上無料)
情報を確認中
マルツエレック https://www.marutsu.co.jp/pc/i/952284/ 5,480円 (税抜) 3,000円以上で 無料 Sigfox契約が別途必要

公平に比較した結果、私はマルツから購入しました。

Sigfox クラウドへの登録 (activate)

まずは Sigfox Cloud への登録が必要です。
KCCSなどから取扱説明書をダウンロードして、それに従って作業しましょう。
https://backend.sigfox.com からの登録ではないようです。

登録ページ https://buy.sigfox.com/activate

完了後、 Sigfox クラウド で契約 (contract) 内容を確認すると、上り140回/日、下り4回/日が可能な、一番回数の多い契約となっていました。

image.png

サンプルスケッチの実行

こちらも、ダウンロードした取扱説明書に従って作業します。

Arduino library: UnaBiz/unabiz-arduino - GitHub

説明書で紹介しているサンプルはこちら

スケッチを何も変更せずにコンパイル・書き込みを行っただけで、Sigfoxクラウドにデータが入ってくることが確認できました。

image.png

上りペイロードは12バイトなので、16進(4bits)の場合 $12 \times 8 \div 4 = 24$ すなわち24文字となります。

サンプルスケッチのままですと、10回データを送信したら終了するので、確認ができたら Arduino の電源を落としましょう。

Sigfox Cloud REST API

REST API のドキュメントを参照するにも API ACCESS の発行が必要なので、 https://qiita.com/ghibi/items/b9cb1d26ccff26a427a3 を参考に API documentation を確認しておきましょう。
(注意)利用権限のない API はドキュメントも表示されません。

API仕様はパブリックになっていませんので、 @ghibi の記事と同程度の情報量にとどめておきます。

メッセージ取得 (Devices API)

Devices APIMessages sent by a device を利用して、特定の1端末のメッセージを取得します。
同じデバイスタイプのメッセージをまとめて取得する API もありますが、そちらはまた後日。

以下、固有の情報は伏字 * にして curl で取得してみました。
time (Unix Epoch) フィールドをキーとして使えるので、必要なメッセージを絞り込む場合に使いましょう。
since, before, limit, offset というパラメーターが使えることも、既に https://github.com/mjuenema/python-sigfox-backend-api にてパブリックになっています)

$ curl -su ****:**** https://backend.sigfox.com/api/devices/******/messages?since=1538043230\&before=1538043260\&limit=2 | jq .data[]
{
  "device": "******",
  "time": 1538043257,
  "data": "920e5a00b0512a0194592000",
  "seqNumber": 12,
  "rinfos": [
      # 省略
  ],
  "nbFrames": 3,
  "operator": "SIGFOX_Japan_KCCS",
  "country": "JPN",
  "snr": "20.44",
  "linkQuality": "EXCELLENT",
  "groupId": "****"
}
{
  "device": "******",
  "time": 1538043232,
  "data": "920e5000b0512d0194592000",
  "seqNumber": 11,
  "rinfos": [
      # 省略
  ],
  "nbFrames": 3,
  "operator": "SIGFOX_Japan_KCCS",
  "country": "JPN",
  "snr": "20.85",
  "linkQuality": "EXCELLENT",
  "groupId": "****"
}

おわりに

商用開発では callback を利用すべきですが、手早く確認・検証する場合は REST API を利用すると思います。
time をキーとして絞り込みができるので、効率よくメッセージを取得することも可能です。

Sigfoxクラウドに関してパブリックな情報が少なく、私もなかなか購入に踏み切れずにいました。
本記事の情報が、Sigfoxを新たに試してみるきっかけとなれば幸いです。

11
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
11
5