2017-02-20 8 views
-1

私はイーサネット経由でお互いに通信しているArduinoとAndroidアプリを持っています。 arduinoは、以下に示すように、いくつかの値とIDだけを持つ非常に単純なWebページを表示します。Android用の「ベスト」方法イーサネット経由のArduino通信

$1$201 //Value 1 ($1$): Temperature 20.1 degrees 
$2$66 //Value 1 ($2$): Humidity 66% 
$2$1 //Value 2 ($2$): Heating relay is on (1) 
etc. up to 50 values 

Androidアプリは、HTTPを使用して文字列として、このWebページからデータを読み込みます要求を取得し、データをフィルタリングし、カスタムメイドの画面の値を示しています。 arduinoにいくつかのデータを送信して設定を変更したり、リレーなどを切り替えることもできます。あなたはサーモスタットのようなものです。ここまでは順調ですね。

「問題」は、ボタンを使用して手動でデータを更新する必要があることです。質問は、私の値を自動的に更新する方法です。

私は、httpRequestを数秒ごとに(ポーリングする)送信することを考えていましたが、これはデータの量が多いように見えるため、これを行う方法はわかりません。

良い解決策を教えてくれる人は誰でしょうか?

よろしく、

答えて

0

は、ここに '最良' の選択は、あなたの目標に依存します。ポーリングはクライアント(アンドロイド)側で実装するのが簡単です。あなたのアプリケーションが使いたいデータの量とあなたのデータを比較する必要があるかどうかに応じて、最適なポーリング時間を試すことができます。あるいは、Arduinoのプロセッサがこれを実行するために必要な電力を持っているかもしれないし、持たないかもしれないことに留意して、ArduinoWebsocketServerのようなhttpソケットサーバーを見つけて実装することもできます。

+0

ありがとうございます。私の目標は、アプリが開いているときに5秒ごとにデータを更新することです。現時点では、1日に最大50回手動で更新し、私のモバイルデータ使用量は1ヶ月に10MBを超えています。生データが0.5kb未満であっても...私はポーリングが多分行く方法ではないと感じている。ところで... httpリクエストで大量のデータが使用されているのは間違いです。よろしくご回答ください – Bass82

+0

arduinoが提供するhtml応答を投稿して、最適化を見ることができますか?おそらく、arduinoにウェブページ全体を表示させるのではなく、小さいjson blobを提供してクライアントにレンダリングさせることができます。 – aylr

関連する問題