Wi-Fiより遠くに測定データを飛ばしたい その1 登録と接続

 家の中であれば、BluetoothやWi-Fiを使ってセンサから収集したデータをPCへ送れます。それ以上の距離になると、3Gや4Gと呼ばれる携帯電話のモジュールを使う必要がありました。しかし、Youtubeで動画を見るようなデータ転送量が多いわけでもないので、もっと少ないデータほどほど遠くへ送信する方法はないかと模索が続きました。

 電波を送信する際、利用者は二つの免許が必要です。ひとつは従事者免許で、もう一つは無線局の免許です。微小な電力で送信する場合は、技適がとってあれば利用者は二つの免許が不要です。技適をとるには50万円以上の費用がかかりますが、設計変更をしないのであれば量産品がそのまま作れます。もちろんその電波の質が技術的に電波法の定める規定に適合していなければなりません。つねに新しいことがチャレンジされる業界なので、電波法自体が変更され、技適に適合するということも起こります(http://telec.org/feature/feature14.html)。

 世界のどの国も、電波の利用は異なります。携帯電話の2Gと呼ばれ普及が始まったころ、世界はGSMという変調方式を採用し、今では、古くなった設備を利用してIoTのデータ通信に利用しています。日本だけ2GはGSMを採用しなかったので、GSMを使う最新のArduino MKR1400は技適が通っているモジュールを使っていますが、基地局が対応していないので通信できません(筆者が調べた範囲。間違っているかもしれない)。

現在使えるちょっとだけ飛ぶ無線の規格

 名称はLPWA(Low Power Wide Area)といい、データの転送レートは低いけど数km届く規格が使われています。Wi-Fiと同じで、つながるかどうかは利用する場所によって何も保証はありません。Wi-Fiは利用者が多いので、このぐらいの壁なら電波は通過できるなという経験則が蓄積されていますが、LPWAは、市街地や山林でどの程度電波が到達できるかは模索中だと思われます。たくさんのサービスが乱立しています。

  • スタートは早かったがWi-SUN
  • LoRaWAN
  • Sigfox
  • これからNB-IoT

 ここでは、自治体や電力会社が利用(整備)するLPWAではなく、個人や実験をするグループが利用できるLPWAを調べます。最終的にはセンサのデータはMQTTなどの軽量プロトコルを使ってインターネットのクラウドにつなげますが、個人で基地局(ゲートウェイ)を用意してもよいのか、サービス側が用意するもの中かで利用形態が異なります。

Arduinoの対応

  • Arduino UNO + Wi-FiシールドでWi-Fi
  • Arduino UNO + セルラ・シールドで3Gもしくは4G
  • MKR1000はWi-Fiだがモジュールに技適がとれていないと思われる。
  • MKR1100は現在消滅?した模様
  • MKRFOX1200はSigFox 対応。日本には入っていないと思われる
  • MKR1300はLoRa(433/868/915 MHz)対応でMurata  CMWX1ZZABZ  Lo-Raモジュールを採用。日本には入っていないと思われる。日本ではLoRaWAN 日本仕様AS923が利用できる
  • MKR1400は技適の通っている2G(GSM)モジュールを搭載しているが、日本ではサービスはないと思われる

 スイッチサイエンスでは、Sigfox Shield for Arduinoを扱っています。Sigfoxは一つ国に一つの業者と契約しており、日本では京セラコミュニケーションシステムがサービスをしています。1年間のSigfox回線利用権が付属していて6,026 円です(2018年4月現在)。サービス範囲は、https://www.sigfox.com/en/coverageから探せます。

 亜空間通信などを専門とするSORACOM からLoRa Arduino 開発シールド AL-050が購入できます。LoRaWAN は、ほかの通信と同じく基地局と通信するもの以外に、ローカルにサーバを置く方法も取れます。SORACOM もSigfoxも扱っています(2018年4月1日に執筆中)。

sigfoxの導入

 スイッチサイエンスからSigfox Shield for Arduinoを入手しました。1年間は、そのまま実験ができます。マニュアルに従って導入します。

STEP1 登録

 https://backend.sigfox.com/activate/Unabizへ行き、KYOCERAをクリックします。

 そのWebページでは、Device IDとPACという二つのコードを入力します。Device IDはボード上に貼り付けた用紙に書かれています。PACというのは印刷されているQRコードを読み取るとわかるそうですが、筆者はその手段を持っていないので、京セラの担当者にメールし、教えてもらいました。NeXTを押すと、氏名などを入力する画面になります。登録をするとパスワードを設定してねというメールが送られてきます。URLをクリックして、パスワードを入力して登録は終了です。

STEP2 接続

 Arduin UNOの上に入手したSigfox Shield for Arduinoを挿しこみます。ジャンパなどの設定はありません。付属のアンテナを取り付けます。

STEP3 動作確認

 サンプルのスケッチを動かします。最初に、https://github.com/UnaBiz/unabiz-arduinoへ行き、ZIPファイルをダウンロードします。Arduino Web Editor のLibrarisからzipファイルを読み込みます。

 サンプル・スケッチが表示されるので、DemoTestUnaShieldV2SRCZ3を読み込みます。

 static const String device = “xxxxxxxx”;

 Device IDを自分のボードに書き換えて、実行します。 10秒ごとに10回「0102030405060708090a0b0c」を初めとする温度データなどの12バイトのを送信して、失敗があったかを表示します。

 http://backend.sigfox.com/をアクセスし、届いているかを確認します。

 使用前の画面です。

 

 使用後の画面です。

 登録したデバイスは1台なので、その行のID番号上をクリックしてMessagesを見ると、なにかしらの文字列を送ったことが表示されています。

 Locationをクリックしたら、ほぼ正しいエリアが表示されました。

 以上で、自宅からの電波が近くの基地局に到達し、インターネット上にあるsigfoxクラウドに届いていることが確認できました。

前へ

Blinkから始まるArduino入門 その3 定数と変数

次へ

Wi-Fiより遠くに測定データを飛ばしたい その2 温度を受け取る