Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
0
Help us understand the problem. What is going on with this article?
@minwinmin

wioLTEを使うときに困ったこととその解決策 - 無通信状態の回避 -

wioLTEを使うときに困った

wioLTEとsoracomのsimをつかってものづくりをしていたときに困ったことがありました。

simを使って通信すれば、長期間、通信がつづくと考えていましたが、実際はある一定時間が経つと、通信できない状態(無通信状態)になることがありました(soracomのコンソール画面上でいうとsimがオフラインになります)。

IoTのような長期間動作し続けてくれるシステムが望ましいときに、無通信状態になると困ります。

image.png

参考にですが、そのときに実現しようとしていたことは、下記の図の通りでwioLTEに一定時間ごとにデータを取得しにいくというものです。
system.png

解決方法

よくよく調べてみると、soracomのF&Qに下記のようなF&Qがみつかりました。
無通信の状態が続くと通信が切れるのはなぜですか?
そして、このような記載がありました。

通信を長時間維持する必要がある場合、デバイスからお客様のサーバ宛に定期的にkeep-aliveメッセージを送るなどして無通信の状態が長く続かないようにしてください。

前述したシステムでは、soracom上のサービスを使用せずに、MQTTでデータをやりとりしていました。
なので急場しのぎ、一定時間ごとにSORACOM Harvestにデータを送信する処理をwioLTEに書き加えました。
その処理の作成には下記が参考になりました。こちらにはsoracom harvestに使用するための設定方法も記載されています。
【作業】1-2: デバイス稼働時間を SORACOM Harvest で可視化

Arduino IDE上のサンプルプログラムでいうと「soracom-unified」を使用します。
サンプルコードでは、センサを使用して温湿度データを送信するプログラムとなっていますが、必要な部分だけ抜き出し手を入れて利用しました。具体的には44~109行目です。

送信するデータは、経過時間でも、一定の数値(例えば数値の1)でも何でも大丈夫です。
とにかく、「soracomのsimをつかっているよ!」というようなkeep-aliveメッセージを一定間隔で送信できれば良いです。

そうしたところ、wioLTEに電源が入っている間は長時間つづけて通信することに成功しました。
下記のグラフは、wioLTEから電源をいれてからの経過時間を送信しています。なので、右肩上がりのグラフになっています。急に0に下がっている部分は、電源を外し通信を止めたためです。

image.png

まとめや理解できていないこと

休場しのぎの対応のため、他に良い方法がありそうです。
今回はsoracomのsimを利用したため、上記のような対処で上手くいきました。

同時に、LINEモバイルといった他のsimでも通信させてみました。
しかしkeep-aliveメッセージを利用しないと、ある一定時間経過ののち無通信状態に入ってしまいます。こちらのsimでは対処方法がわかりませんでした。

simをつかった長時間通信が必要なシステムには、再接続処理といった通信周りのエラーハンドリングをきっちりと実現する必要があることを痛感しました。

0
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
minwinmin
高専卒で大学生をやっていましたが、今は社会人です。 航空宇宙分野で電気推進の研究をしていました。 現在はあるベンチャー企業で働いています。
dotstudio
全ての人がモノづくりを楽しむ世界を目指して活動しています。 ( https://dotstud.io ) プロトタイピングスクールの運営をしています。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
0
Help us understand the problem. What is going on with this article?