Solutions Architectの今井(factory)です。あまり外に出られずストレスの溜まりやすい昨今、いかがお過ごしでしょうか。そんな中でも、ありがたいことにソラコムについてのブログや記事を書いてくれている方がたくさんいらっしゃいます!
早速紹介していきますね。
これは良いスライドですね。HTTPでのデータ送信に一回あたり5KiBの通信が発生していたところを、UDPに切り替えることによってそれを一回あたり160Byte まで削減(なんと約96%もデータのダイエットに成功!)しましたというお話です。
UDPの他にはTCPを利用する方法もあるのですが、実データを送る前の準備(ハンドシェイク)だけで1KiB近い通信が発生しますし、その上で動作するHTTPを利用した場合、TCPの分に加えて情報のやり取りが発生します。例えば10バイトのデータ送信に1KB以上のオーバーヘッド(実データの100倍のデータが必要!)が発生するんです。
その点、UDPは8バイトの固定長ヘッダを付けてFire and Forget、いわば「準備無しにデータ送信する仕組み」であるため、オーバーヘッドがとても小さくなります。
M5Stack 3G 拡張ボードのサンプルで紹介しているライブラリ(TinyGsm)には、UDP通信の実装がないのですが、このスライドではM5Stack 3G 拡張ボード上のモデムモジュールに対して直接的にUDPを用いた通信をする手法を解説いただいています。最高ですね。
ちなみに・・・今回はATコマンドを使って送信されていますが、このコマンドは結構メーカーごとに独自の拡張があって、モデムによってはUDPやTCPでのデータ送信コマンド、さらにはHTTPのデータ送受信のコマンドを実装していたり、場合によってはSMTPも!実装があります。マイコン側でクライアント実装せずにハイレベルな通信ができるのでとても便利です。
ここからは、5月16日まで【特価キャンペーン】で販売している GPSマルチユニット SORACOM Edition (以下、GPS マルチユニット)についての記事2本立てです。
デベロッパー業界では大変有名なDevelopers.IOでGPSマルチユニットについて書いていただけるとは嬉しい限りです。
この記事では加湿器の性能を測るために湿度センサーの情報を、ダッシュボード作成・共有サービスのSORACOM Lagoonで可視化されています。記事の中盤に「GPSマルチユニットに使わずに全部構築する場合は」というお話が書かれているのですが、センサーの準備からクラウドの準備まで・・・「そうそう!それそれ!」と言いたくなる気持ちで読ませていただきました。
GPSマルチユニットにはセンサー、バッテリー、通信が全部入っていて、さらにクラウド(SORACOMコンソール)から設定が可能ですので、離れた場所に設置していても変更が簡単です。これにSORACOM Lagoonを組み合わせれば、購入し電源を入れたらすぐにIoTが始めることができます。
こちらはFusicの毛利さんによるブログ記事です。FusicさんはmockmockというIoTデバイスのmock(テスト環境)を作成してくれるサービスを提供されていて、SORACOM BeamやFunnelなど各サービスとのインテグレーションも実装いただいています。
今回の記事では、GPSマルチユニットのmockを作って公開いただきました。mockmockを使ってGPSマルチユニットのmockからデータをSORACOMの各種サービスに送信するところまでハンズオン形式で読み進められます。
(個人的な話ですが、mockmockのグラフバリュージェネレータという機能が本当に好きです。三角関数を使った周期的なサンプルデータ生成プログラムを書いたことがある方もいらっしゃると思いますが、同じことをウェブの画面から設定できます。)
IT業界で働かれている方は、リモートワークの方も多いと思います。リモート会議中である旨を家族にお知らせするためにM5Stackの画面に会議中かどうかを知らせるための仕組みを、ボタン型 IoT デバイス「SORACOM LTE-M Button powered by AWS」とM5Stack(と3G拡張ボード)を使って作ってくれました。
そして、こちらはM5stack で作る ON AIR サインで手に入れる平穏な在宅勤務環境
というソラコムのエンジニアoguが書いたブログへのアンサーソングですね、ありがとうございます!
oguのブログではLinuxラップトップのビデオデバイスが利用中かどうかを判定してM5Stackの画面に「会議中!」という表示をさせていました。
私は仕事に使用しているパソコンは今は Linux (Ubuntu) がメインです。エンジニアの皆様ならおわかりかと思いますが Linux (UNIX) の世界ではすべてがファイルです。ということはマイクやカメラを表すファイルが存在するはずで、そのファイルを開いているプロセスがあるかどうかを調べればよいわけです。 (Windows や Mac をお使いの皆様はどうにか頑張って検出してください。)
このブログを書いてくれた和田さんはこのトリガーの部分をボタンを使って実現しています!
記事を読むと、IoTは総合格闘技だと感じます。とにかくやることが多いし技術スタックの範囲も広い。特にIT、クラウドのエンジニアにとってデバイス周りの低レイヤなプログラミングや結線みたいなところは、結構なハードルですね。
M5Stack + 3G拡張ボードやGPSマルチユニットは、そのあたりをまるっとパッケージ化してくれているので、デバイス周りのつまづきポイントを大きく削ってくれます。
IoT、まだやったことないということもぜひこういった製品をうまく活用してロケットスタートしていただけたら嬉しいです!
― ソラコム 今井