IoTシステム開発をしてわかったこと

チラシの裏程度に思ってね

IoTと言われているシステム開発を何度か行ってきました。ここでは製品化されたIoT製品の利用者側としてのレビューではなく。「開発者目線でIoTを作成する人」に知ってて欲しいこと。また、「IoT製品を企画する人」に知っててほしいこと、またはその両方に知っててほしいことをツラツラと書きたいと思います。

開発者へ

IoTについて今更説明することはないでしょう。

開発を行うときの役割分担について大きく2つに分けてみました。
「センサー」や「計測器」と実際見える物を開発する「ハード担当」、「アプリ」や「サーバー」を開発する「ソフト担当」です。大雑把ですね。

  • ハード担当
    一般的に組み込み系と呼ばれる
  • ソフト担当
    PG、インフラエンジニアなど

互いの理解

ちなみに私は「ソフト担当」です。

「ハード担当」はソフトウェアの知識がありません。「ソフト担当」はハードウェアの知識がありません。
すごく当たり前のことを言っていますが、とても大切なところです。コミュニケーション不足なだけだと安直に捉えてはいけません。本業のプロの知識をコミュニケーションだけで得ることは不可能だからです。

「ハード担当」は限られた資源(CPU,メモリ,電源)から製品を作成します。PC・サーバーでは当たり前にできることが出来るとは限らないことを理解しておきましょう。実例としてデータの送信するフォーマットをソートするかどうか議論がありました。私は「DBに格納するから生データで良いですよ」と答えました。
DBに格納しているデータならソートやグループ化、アプリではグラフ化したり出来ることはシステム開発者なら容易に想像できるでしょう。しかし、システムエンジニアの常識を常識と捉えてはいけません。ハードで難しいところはソフトに、ソフトで難しいところはハードにと柔軟な対応が求められます。お互いに歩み寄る努力が必要です。また、歩み寄るためには双方の知識が必要となります。

議論の場では専門用語が飛び交うでしょう。本来は問題にもなりませんが、畑違いの技術者達が専門用語で説明している絵を想像してみてください。これが現実に起こります。

IoTなのでTCP通信を使うことになるでしょう。TCP通信を利用しデータのやり取りを行う場合にも制限が生まれます。TCP通信を行うには通信チップが必要だからです。IoTのセキュリティで通信の暗号化についてのWeb記事を何度も見てきました。実際どの暗号化(SSL、IPSecなどなど)を使うを考える前に、チップが暗号化機能を搭載されているか確認したほうがよいでしょう。チップが暗号化機能を提供しているなら、それを使うことをおすすめします。
暗号化機能がない場合は独自の暗号化か、平文での通信でも問題ないか検討する必要があります。SSLやIPsecを作成できる技術者がいれば問題にはなりませんが非現実的ですよね。
あと、意外かと思いますが平文での通信でよい環境は意外と多いです。暗号化すると通信データも多くなりますからね。

IoTは何かしらのデータの収集から始まります。瞬間的なデータが必要なのか、連続したデータが必要なのか、またその両方なのかもしれません。

例えば熱中症対策のために家に温度センサーを設置し監視するIoTシステムを想像してください。
30℃を超えたなら何かしらの警告を出す仕様としましょう。室内温度の急激な上昇は自然ではあり得ないので5分間隔で温度を取得します。それが30℃を超えたらメールなり電話なりで警告を出します。
これでも何も問題がないですがちょっと工夫しようとすると、連続する過去30分(6データ)から次のデータを予想し30℃を超えそうならば警告を出すなども現実的に可能です。単純に線形補間もしくは工夫してスプライン補間をし未来データの予測を出します。これでより人に安全な熱中症対策ができるでしょう。

この熱中症対策では最新の瞬間的なデータと連続したデータを利用した仕様の2種類をあげてみました。連続する過去30分のデータだけで大丈夫なのか、5分間隔のデータで大丈夫なのかは実際運用してみないとわかりませんし、単純に最新のデータが30℃を超えた場合と言う仕様がベストかもしれません。

システム仕様はテスト運用しながら模索していくため、ソフトウェアの仕様変更は頻繁に起こります。

もし、熱中症対策の論文・資料・データがあれば仕様が確定できますし、仕様変更というロスは避けることができるでしょう。

あくまでも、あればの話ですけどね。

感想とまとめ

  • コミュニケーションが取れる程度の最低限の互い知識・技術は必要不可欠
  • 互いの長所を活かし、短所を補う
  • 仕様は動かさないと(データを収集)してみないとわからないことが多い

IoT製品を企画する人へ

IoTを何に使うか、どういう目的かは明確じゃないにしろふわふわとしたイメージがあると思います。大きさはどれぐらいか、移動できるものか、電源は確保できるのか、バッテリーや電池式にするか、電波が通る環境なのかぐらいは考えておきましょう。そしてすべての要望は通ることはないと思ったほうが良いです。

さらに、どのようなデータをどれぐらい取得し、どのように加工しましょうか?
なにかしら実例があればこの質問は不問ですが、実例がない場合は実際に運用してみないと分からない事が多い。というより運用してみないとわかりません。

では、テスト運用するためには環境が必要です。用意する手筈を考えておくべきです。テスト運用するためにはプロトタイプ版の実際の物(センサー)が必要になりますね。既製品なら数万程度でしょうがオーダーメイドの場合どうでしょうか?
電子部品で有名な秋月電子で各パーツの価格を見てみましょう。1万円ぐらいで作れそうですね。

もし1万円で作ってくれと依頼が来た場合、丁重にお断りします。見える物意外にも組み込みファームウェア・データ取得・表示ソフトウェアなどIoTでは必要な環境は非常に多くなります。作る物にもよりますが最低でも数百万は必要、さらに特別なものだとプロトタイプで1千万を超えます。量販店に似たような物があるから似たような値段になると考える人もいるでしょう。その場合は量販店に並んでいるものでどうにか使えないか検証してみるのも一つの手です。もし問題なく使えるなら儲けものです。

さらに、多大な費用・時間を掛けてテスト運用を行った結果「これは使えない」と言う判断を下すことさえあります。

企画側についてまとめる

  • IoTデバイスの使用する環境イメージを持つこと
  • プロトタイプレベルでもコストが高いこと
  • リスクはつきもの

さいごに

IoTと言う言葉が流行りだして2・3年ぐらいでしょうか。
ちなみに私のIoT開発経験歴は5年を超えることになります。IoTと言う言葉は目新しいものですが技術としては新しくありません。過度な期待はしないほうが良いです。

スポンサーリンク
レタリング(大)広告
レタリング(大)広告

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
レタリング(大)広告