2016-07-06 3 views
1

私はArduinoからHTTP POSTリクエストで1分に1回、REST API(OpenShift PaaS)にデータ(GPS座標)を送信しています。データはMySQLデータベースに保存されます。なぜ、RESTful HTTPではなく、IoT公開/サブスクライブプロトコルを使用するのはなぜですか?

"IoT"パブリッシュ/サブスクライブプロトコル(XMPP、MQTT)と呼ばれる方が良いでしょうか?どうして?

Restful HTTPではなく、正確に2つのプロトコルを使用していますか?私は実際にそれらを使用して重要なbaterryエネルギーを節約できますか?

AFAIKこれらのプロトコルでは、マシンはブローカにデータを「公開」し、私のアプリケーションはそれを購読します。私のアプリで毎分データを収集したいのであれば、毎分データを購読するCRONの仕事が必要になると思いますか?あるいは、データ収集はどのように達成されますか?

答えて

2

"IoT"パブリッシュ/サブスクライブプロトコル(XMPP、MQTT)と呼ばれる方が良いでしょうか?どうして?

小規模(センサー数は少ない)、センサーの電力(CPUおよび電気)が十分な場合、または通信コストが低い場合は、MQTTを使用する理由が少なくなります。反対に、大規模で、またはCPU /電力制限センサーの場合、または通信コストが高い場合、MQTTまたは同様のIoTプロトコルには利点があります。非常に単純な組み込みCPUでMQTTを実装でき、HTTPを実装するのがより複雑になります。

Restful HTTPではなく、正確に2つのプロトコルを使用していますか?私は実際にそれらを使用して重要なbaterryエネルギーを節約できますか?

たとえば、例えばMQTTを超える。 MQTTクライアントからブローカーへの持続的なTCP接続を介したMQTTデータの公開からのプロトコル・オーバーヘッドが少ないため、通常はSSL接続を確立し、詳細なHTTPを使用してデータをポストし、SSL接続を削除する必要があります。

MQTT接続は本質的に双方向です(アプリケーションで使用する必要はありませんが)ので、ネイティブでセンサーにコマンドを送信することができます。 REST/HTTPを使用して同じことを行うには、長いポーリングのためにサーバーを構成する必要があります。

〜4.1%のバッテリの電力/日がMQTTを使用して保存示し、ここでSSL経由MQTT対ロングポーリングHTTPSの比較http://stephendnicholas.com/posts/power-profiling-mqtt-vs-httpsがありますがそうです、あなたは重要な電池エネルギーを節約することができますHTTPS ポーリング遅くする比較しました。

MQTTを使用すると、非常に小さなメッセージを送信できます。オーバーヘッドが低く、バイナリデータの数バイト。 REST/HTTPでは、データは非常に高いオーバーヘッドで多くのHTTPプロトコルでラップされます。あなたがたくさんのデバイスを持っているなら、それらのオーバヘッドバイトは、さらにたくさんのデータが送られてくるので、お金がかかります。したがって、MQTTのようなコンパクトなプロトコルを使用して大規模にデータ転送を設計すると、慎重にお金を節約できます。

アプリは通常のトピックへの永続的なサブスクリプションを持っており、自動的に最新情報が通知されるMQTTで毎分

データを収集します。毎分の要約が必要な場合、アプリはアップデートを保存します。 DBとレポートをDBから取得します。とにかくすべてのデータを格納するには通常DBが必要です。ワイルドカードトピックを購読することができます。つまり、トピックをデザインして、アプリがすべてのソーラーセンサーとブローカーは、アプリが個々のセンサーをポーリングする必要なく、接続されているすべてのデバイスのデータを送信します。

+0

あなたの答えをありがとう、それは多くの洞察力を与えた。しかし、私が理解しているように、MQTTを使用する場合は、TCP接続を継続する必要があります。今では毎分またはそれほど頻繁に小さなJSONを送信するのは本当に良いアイデアではありません(私は15分と言うと送信期間を設定できる機能があります)。 –

+0

また、私は通常のHTTPを使用しています。ハッシュ化されたデータを送信するので、SSLを必要としないと思います。 –

+0

永続的なTCP接続は、ほとんどオーバーヘッドを消費しません。はい、多くのCPU /電力を持っているような、拡張された遅延のような設計やプロセスの決定をすることができるかもしれません。新しいものを学ぶ時間を持たないなど、多くのセンサーを扱う必要はありません。 /残り。 MQTTの使用を強要している人はいません。あなたが知っているかもしれないことや慣れ親しんでいることが、IoTの問題を解決する最善の方法であると仮定するだけではなく、情報に基づいた選択をするべきです。 – barny

関連する問題