電子工作で IoT 無線の Sigfox を使ってみる

電子工作の場面で WiFi や Bluetooth を使うことは多いかと思います。最近は Arduino, Raspberry Pi と並行して ESP32 が注目されているようですが、その理由としては WiFi, Bluetooth がデフォルトで使えて、かつ Raspberry Pi よりも軽量であることが大きいようです。

けれども、今回はあえて Sigfox に注目してみました。理由は簡単で、（都市部なら）どこに行ってもシステムが動いてくれるし、同じような通信であるモバイル通信よりも安いからです。

## Sigfox とは

Sigfox とはフランスのグローバル通信事業者の名前であり、かつそこが提供している LPWA の規格名でもあります。この Sigfox は様々な国でネットワークを展開していますが、日本では京セラコミュニケーションシステム (KCCS) が Sigfox と提携してネットワークを構築しているようです。

<div align="center">
<img src=https://qiita-image-store.s3.amazonaws.com/0/278104/3638bacf-7285-2460-5d4d-b12d6282b47a.jpeg height=160 "sigfox">
<img src=https://qiita-image-store.s3.amazonaws.com/0/278104/4e27429a-6367-cc08-ccde-5a13c940f752.jpeg height=200 "KCCS">
</div>


### LPWA ?

LPWA は Low Power Wide Area の略で、IoT向けの通信として近年普及が進んでいる通信システムです。スマホなどで使われる携帯通信 (LTE, 5G) は高速・大容量を主眼に置いていますが、IoTの世界では4K動画をスムーズに見られるような大容量性は現状では求められていません。むしろIoT端末を大量に設置しても通信コストがかからず、電力の使用量が少ないことのほうが重要です。そういったニーズに答える形で近年注目されているのがLPWAです。

### Sigfox はどこで使えるのか

Sigfox のカバレッジは[公式サイト](https://www.sigfox.com/en/coverage)から確認できます。今現在(2018年8月)の日本はこのような状況。

<img width="366" alt="capture1.png" src="https://qiita-image-store.s3.amazonaws.com/0/278104/acf99205-35d3-eba1-a458-99091895ce16.png">



水色の部分が今現在カバー中 (Live Coverage) の部分になります。関東・東海・京阪神・九州北部のあたりは割とカバーされているかなというところです。僕の周りで Sigfox を使っているという人は実は全くいないのですが、思った以上に身近なところまで来ていることがわかります（田舎の方にはすみません...）。

### Sigfox のコスト

最初に Sigfox は安いと書きましたが、[KCCS社の公式サイトのQ&A](https://www.kccs.co.jp/sigfox/faq/index.html)には

> （サービス料金は）契約回線数と1日の通信回数、契約期間、数量のコミットメントによって異なりますが、最も安いプランですと1回線あたり年間100円未満となります。料金プランの詳細については、チャネルパートナープログラムにお申し込みいただいた後にご説明します。

というふうに書かれています。年間100円未満！と思うかもしれませんが、これ、個人の電子工作レベルだとあまり関係は無さそうでした。総務省のサイトにある[KCCS社のSigfox紹介資料](http://www.soumu.go.jp/main_content/000452035.pdf)にはこのような表があります。回線数が100万を超えないと回線１つあたりの料金は100円前後にならないような記述になっています。

<img src=https://qiita-image-store.s3.amazonaws.com/0/278104/c278afa8-3a09-771c-eb4d-67ff0b8ac3ed.png height=400 "price">

とはいえ年1,000円程度であれば、例えば3Gを使う SORACOM Air for セルラーよりも十分安いことがわかります。


### なぜ安い？

その理由は性能を犠牲にしているからだと言えます。

- 通信速度は100bps
- データ容量は1回で12バイト
- 通信回数は最大140回／日

１日数回センサから得られた値をアップロードするだけのIoTシステムならこれでも十分と考えることができます。
ただし、ちょっと違うアプリケーションを考えるとすぐに性能不足に陥る可能性がありそうです。



## Sigfox Cloud について

携帯通信との比較から Sigfox を捉えましたが、使い勝手に関して Sigfox は携帯通信と少し異なります。それは Sigfox Cloud という存在です。

先程の総務省における資料にはSigfoxのエコシステムについての説明もあり、ここの図がわかりやすいです。

<img height="300" alt="capture4.png" src="https://qiita-image-store.s3.amazonaws.com/0/278104/abc6ab32-e40e-cae6-f896-ea1fe6271663.png" >

この図からも分かる通り、SigfoxはIoT端末からのデータをすべて一度バックエンドとなる Sigfox Cloud にアップロードすることになります。「AWSにデータを送りたい！」という要望はあると思いますが、これについては Sigfox Cloud から AWS へ「転送」という形で実現します。この機能は CALLBACK と呼ばれます。

なんで Sigfox Cloud を間に挟むのか、と疑問に思うかもしれません。実際僕自身もその点について完全に把握できているわけではないですが、１つ言えるのは、Sigfox Cloud はデータを貯めるためのクラウドというよりも、Sigfox 端末を管理するためのダッシュボードの意味合いが強いということです。Sigfoxモジュールは Sigfox Cloud にIDとPACを入力することでアクティベートされますし、Sigfox Cloudのページから Sigfox端末の通信状況などの把握も可能です。

おそらくですが、Sigfox のようなシンプルなシステムで端末を管理するシステムを構築するには Sigfox 端末の通信が全て Sigfox Cloud に繋がってくれるのが一番やりやすかったのでしょう。




## 試してみる

簡単に試す方法として一番良いのは、Sigfox Shield for Arduino です。SWITCH SCIENCEから購入することが可能です。

<img src=https://qiita-image-store.s3.amazonaws.com/0/278104/2ce2b0dc-6104-b9db-b3a2-ad1f69f356d6.jpeg height=200>

Sigfox Shield は購入時点で１年間の回線利用料が含められているため、購入したらすぐに始められます。

### 使い方

細かい手順は最新版の説明書を読むのをおすすめします。比較的読みやすいです。
[Sigfox Shield for Arduino (UnaShield V2 / V2S*) 取扱説明書](https://www.kccs.co.jp/sigfox/download/manual-sigfox-shield-for-arduino.pdf)

使い方の説明を要約すると

1. 無線モジュール上のQRコードを読み取ってIDとPACを求める
2. Sigfox Cloud にこの情報を登録する（この時点で無線モジュールは回線利用が可能となる）
3. Arduino IDE にライブラリをインストール
4. Arduino でサンプルコードを動かしてみる

という感じです。簡単ですね。



### 電波の状況

Sigfox モジュールを片手にいろいろ歩き回ってみて電波がどの程度届くのか調べてみました。その結果

- 屋外ならどこでも使える
- 屋内でも窓のある部屋なら使える
- 奥まった部屋だとダメ

という感じでした。まぁ屋内だったら WiFi も Bluetooth もあるし使えなくてもあまり気にならないような気がします。それよりも屋外で手軽に通信ができるのは非常にありがたいです。



## 使ってみた感想

個人的な感想になりますが

- WiFi, Bluetooth と違って屋外であっても場所の制約が低いのは嬉しい
- 3Gよりも安いのも嬉しい
- 転送できるデータ量は極端に少ないので、センシングするシステムぐらいにしか使えない

という感じです。あと

- Sigfox Shield for Arduino はサイズが大きすぎるのでもう少し小さなキットがほしい

てのもちょっと感じました。