1. ホーム
  2. http

[解決済み] HTTPとTCP/IPの比較、Webサーバーへのデータ送信

2023-01-05 03:35:44

質問

現在、あるプロジェクトでArduino Nano(以下、Arduino)を使っています。 http://arduino.cc/en/Main/arduinoBoardNano ) を使用して温度センサーから Web サーバーにデータを送信する必要があるプロジェクトに取り組んでいます。

最初は、POST/GET などを支援する多くの素晴らしいライブラリがあるので、簡単だと思いました。しかし、教授から、TCP/IP を使用してサーバーにデータを送信する必要があり、私が理解しているように、POST と GET は HTTP メソッドですと言われました。

どなたか、HTTP と TCP/IP の違いを説明していただけないでしょうか。特に、Web サーバーへのデータ送信に関連するものです。あまり専門的ではない答えを探しています (私はこのすべてについてかなり新しいのです)。

最後に、私が上に説明したことを Arduino にさせた経験のある人がいれば、私は本当にいくつかの指摘を感謝します。

ありがとうございます。

どのように解決するのですか?

HTTP は、主にインターネット (IE や Firefox など) をブラウズするために使用されるプロトコルです。これは、2 台のコンピューター間で信頼性の高いリンクを提供する TCP の上に乗っています (パケットが失われた場合 - それは再送信されます)。TCP自体はIPの上に乗っており、IPはコンピュータ間の通信に統一されたアドレスを提供します。TCP/IP は、インターネットやその他のネットワークの 99% の基礎となっています。

基本的には、もしあなたがHTTP通信をしているならば、その下にはTCP/IPがあるということです(しかし、これはあなたの教授が意味するところではないでしょう)。

Arduino Nanoはそのすべてをサポートしているわけではないので、Nanoの信号をTCP/HTTPの通信に変換する、その中間のものが必要なのです。

いくつかのオプションがあります。

  1. Nano とシリアルで通信し、PC にシリアル プロトコルを HTTP/TCP に変換させます。
  2. Ethernet/Wifi シールド拡張 (Uno/Mega) をサポートする他の Arduino ボードと Nano を交換する、またはそれ自体に Ethernet を含むカスタム ボードを選択する。
  3. シリアルまたは RF モジュールの助けを借りて Nano と通信する追加ボードとして、イーサネット シールドを備えた別の Arduino (Uno/Mega) を使用する (私は個人的に過去にこのオプションを実装しました)。
  4. オーディオケーブルを使って Nano を Android スマートフォンに接続し、ソフトモデムライブラリを使用するという変わった方法もあります。( https://code.google.com/p/arms22/issues/detail?id=2 ) に Android 用の実装があるので、それを使って Android 用のアプリケーションを書きます。

ご紹介したWebサーバは、定義上HTTPにしか対応していないので、TCPで通信したい場合は、何らかのTCPサーバを利用する必要があります。

センサーデータを可視化するためのグラフを提供する既存のWebサービスの1つが https://xively.com/ で、そのAPIはHTTPの上に乗っているRESTに基づいています。しかし、これは唯一のものではありません。