NOBのArduino日記!

NOBのArduino日記!

趣味は車・バイク・自転車・ラジコン・電子工作です。

Arduino IDE(client.Write関数の使い方)

■client.Write関数
 Clientクラス※1のclient.Write関数は、クライアントが接続されているサーバーにデータを書き込みます。
 このデータは1バイトまたは一連のバイトとして送信されます。

Arduino Leonardo EthernetArduino Leonardo(ATmega32u4搭載)とArduinoイーサネットシールド2をひとつに合わせたArduinoボードです。MACアドレスを書いたシールがボードに貼られています。このボードで開発をするためにはArduino IDE 1.7.2以降が必要です。(2015.04.30現在)PoE (Power over Ethernet)モジュールを追加すると、LANケーブル1本で電源供給と通信が可能です。IEEE802.3af の規格に準拠した環境下で動作します。
図1:Arduino Leonardo Ethernet
以下補足です

※1:Clientクラスは、サーバーに接続してデータを送受信できるクライアントを作成します。クライアントは、すべてのイーサネットクライアントベースのコールの基本クラスです。直接呼び出されるのではなく、それに依存する関数を使用するたびに呼び出されます。

■使用例
 Arduino IDEで使用するclient.Write関数の使い方は以下の通りです。
  例えば「Arduino Leonardo Ethernet」をPCにUSB接続し、またネットワークに接続されたLANケーブル接続して、ArduinoIDEの「ツール」→「ボード」→「Arduino Ethernet」を選択した状態にします。
 最初にEthernetClient関数で、指定されたインターネットIPアドレスとポートに接続できるクライアントを作成します。
 受信クライアントが接続していると確認した場合は、受信クライアントからバイトを読み込み、client.Write関数によりクライアントが接続されているサーバーにデータを書き込みます。
 受信クライアントが接続していない場合は、シリアル接続されたPCに「disconnecting」の文字を送信しClient.stop関数で受信クライアントを停止ます。 

#include <Ethernet.h>
#include <SPI.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 10, 0, 0, 177 };
byte server[] = { 64, 233, 187, 99 }; // Google
EthernetClient client;

void setup() {
   Ethernet.begin(mac, ip);
   Serial.begin(9600);
   delay(1000);
   Serial.println("connecting...");
   if (client.connect(server, 80)) {
       client.write("connected");
       client.println("GET /search?q=arduino HTTP/1.0");
       client.println();
   } else {
       Serial.println("connection failed");
   }
}

void loop() {
   if (client.available()) {
       char c = client.read();
       Serial.print(c);
   }
   if (!client.connected()) {
       Serial.println();
       Serial.println("disconnecting.");
       client.stop();
       for (;;);
   }
}
イメージ 1
図1:プログラム例

■構文
 client.write(val) 
 client.write(buf, len)

■パラメータ
 val:1バイト(byteまたはchar)として送信する値。
 buf:一連のバイトとして送信する配列(byteまたはchar)
 len:バッファの長さ

■戻り値
 バイト(byte) 
 client.write関数は、書き込まれたバイト数を返します。
 この値を読み取る必要はありません。

イメージ 1 イメージ 3
励みになりますのでよければクリック下さい(^o^)/

↩【ArduinoIDE reference】目次に戻る