これは私がしばらくの間考えていたテーマです。特に「IoT」の概念が最近多くの場所に浮かんでいるためです。
「IoT」と言うときの意味から始めます。IoTという用語はさまざまな意味を持ち、時には誤用されることもあります。それは明確に定義されていない用語である可能性があり、それが正確に何を意味するかについて大きな議論につながる可能性があります。したがって、私にとってIoTは概念であり、別の組み込みデバイスまたは携帯電話からインターネットを介してリモートで組み込みデバイスに接続する機能を定義する概念です。それと同じくらい簡単。
このコンテキストでは、接続の目的は重要ではありません。オフィスのあるデバイスを自宅の別のデバイスと接続できる場合、または携帯電話から自宅の1つのデバイスに接続できる場合は、すべてインターネット経由で、次に、IoTデバイス(電話ではなく、組み込みデバイス)について話します。
それで、IoTが意味することについて合意したので、今、私が達成しようとしていることを説明します。
私が達成しようとしているのは、まさにIoTの定義で説明していることです。
自宅で1つまたは複数の組み込みデバイスをイーサネットまたはwifiでインターネットルーターに接続し、リモートロケーションにある別の組み込みデバイスを使用してリモートで接続できるようにしたい(リモートでは同じネットワーク上にないことを意味する)そして、おそらく私の携帯電話の監視アプリでそれらに接続できるように
たとえば、ガレージのドアオープナーに接続されたオン/オフスイッチとして機能する単純な組み込みデバイスと、職場の机の大きな赤いボタンとして機能する別の組み込みデバイスがあり、机の赤いボタンを押すことができますガレージのドアが開きます。
別の例として、自宅の温度を監視し、しきい値に達したときにアラートを送信できるADC機能を備えた組み込みデバイスがあります。通知は、シンプルなAndroidアプリか、職場の机の上に小さな画面がある別の組み込みデバイスのいずれかで受信できます。
これらの例はばかげているかもしれませんが、私が達成しようとしていることの可能なシナリオとユースケースを説明するためのものです。最後に、考え方は同じです。1つの組み込みデバイスをインターネット経由で別の組み込みデバイスに接続します。
明確にするべきもう1つのことは、これらのデバイス間のデータ交換は非常に軽量であり、毎回数バイトだけであり、デバイス間で数百キロバイトを交換する必要があるということではありません。
さらに、私が言及している種類の「組み込みデバイス」は、100MHzまたは200MHzのcortex-m4マイクロコントローラーをベースにしたシンプルだが機能的なデバイスです。また、これらのデバイスで実行されるLinuxまたは複雑なライブラリは存在しないため、明確にすることが重要です。結局、このようなリソースの浪費であり、電球をオン/オフするためだけにLinuxを実行する強力なプロセッサーを持つことはまったく不要です。いずれにせよ、BeagleBoard、Raspberry Pi、またはそのような他のボードを組み込みデバイスとして使用する予定です。それ以上の複雑さは必要ないので、ちょうどマイクロコントローラー。
私は、IoTプラットフォームと、そのような種類の複雑なソリューションについてはあまり知りません。インターネットを介して1つの組み込みデバイスを別の組み込みデバイスに接続する方法を見つけるこの旅を始めたとき、IoTサービスを備えたいくつかのサイトにつまずきました。
次のようなIoTクラウドサービスがあることを知っています。
ほんの数例を挙げます。それらの主な問題は、コストと複雑さです。あなたはそれらのサービスを得るためにお金を払わなければならず、また、あなたがそれらすべてを必要とする場合に備えて、彼らが持っているすべてのサービスを実装する方法を学ぶ必要がありますデバイス間でいくつかのバイトを交換することができます。それより単純なもの、自分でできることをしたいだけです。
あなたはそれが私がしなければならないことであるなら、私自身の「クラウド」を実装することは単純ではなく、時には単純化のためにこれらの種類のサービスを使用した方が良いと言うかもしれませんが、独自のIoTサービスを実装します。
主な理由は、私が自分でやりたいからです。サードパーティに依存してデバイスを相互に接続したくありません。デバイスのコードとハードウェアを開発するので、IoTデバイスとして接続する独自の手段を作成する方が良いと感じています。
2番目の理由は、その方法を学ぶことです。これを達成するために必要なすべてのことを知ることで、IoTの世界についてよりよく理解できるようになります。
また、私はCに精通しており、Linuxを職場や自宅で日常のOSとして使用しているので、Windowsのものは役に立たないので避けてください。私は自分の目標を達成するために必要なものを実装するために、組み込みデバイス用にCで、またはLinuxで実装しなければならないものを恐れていません。
だから私の質問は、何を実装する必要があり、どこで、それらの間のデータ交換の目的で2つ以上の組み込みデバイスを相互に接続できるようにするためですか?
この質問自分のサーバーでIoTを作成するために何を使用できますか?同様のものがありますが、閉じられており、答えがありません。また、既存のクラウドインフラストラクチャを使用することを想定しています。だからそれは私を助けません。
この別の投稿では、クラウドに汎用データを保存/送信/公開するためにどのIoTサービスを利用できますか?同様の質問がありますが、OPはIoTサービスを明示的に要求しており、それらを回避しようとしています。