NOBのArduino日記!

NOBのArduino日記!

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

Arduino IDE(server.println関数の使い方)

■server.println関数
 Serverクラス※1のserver.println関数は、サーバーに接続されているすべてのクライアントにデータを出力し、最後に改行を加えます。
 数字を一連の値として出力します。それぞれの数字はASCII文字です(たとえば、123は3文字 '1'、 '2'、 '3'として送信されます)。

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:Serverクラスは、接続されたクライアント(他のコンピュータまたはデバイス上で実行されているプログラム)との間でデータを送受信できるサーバーを作成します。

■使用例
 Arduino IDEで使用するserver.println関数の使い方は以下の通りです。
  例えば「Arduino Leonardo Ethernet」をPCにUSB接続し、またネットワークに接続されたLANケーブル接続して、ArduinoIDEの「ツール」→「ボード」→「Arduino Ethernet」を選択した状態にします。
  受信クライアントが接続していると確認した場合は、受信クライアントからバイトを読み込み、server.println関数によりサーバーに接続されているすべてのクライアントに読込んだ文字(ASCII文字)に改行を付けて送信します。

#include <Ethernet.h>
#include <SPI.h>
// シールドのメディアアクセス制御(イーサネットハードウェア)アドレス
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
//シールドのIPアドレス
byte ip[] = { 10, 0, 0, 177 };
// ルータのゲートウェイアドレス
byte gateway[] = { 10, 0, 0, 1 };
// サブネット
byte subnet[] = { 255, 255, 0, 0 };
// telnetはデフォルトでポート23になります
EthernetServer server = EthernetServer(23);

void setup() {
   // イーサネットバイスを初期化する
   Ethernet.begin(mac, ip, gateway, subnet);
   // クライアントのリスニングを開始する
   server.begin();
}

void loop() {
   // 受信クライアントが接続している場合は、読み込み可能なバイト数があります。
   EthernetClient client = server.available();
   if (client) {
       // 受信クライアントからバイトを読み込んで書き戻します
       // サーバーに接続されているすべてのクライアントに送信します。
       server.println(client.read());
   }
}
イメージ 1
図1:プログラム例

■構文
 server.println() 
 server.println(data) 
 server.println(data, BASE)

■パラメータ
 data(オプション):出力するデータ(char、byte、int、long、またはstring)
 BASE(オプション):数値を出力するベース
 ※ベース:2進数(BIN 2)、10進数(DEC)、OCT(8進数)、HEX(16進数)

■戻り値
 byte(バイト)
 println関数の読み取り値はオプションですが、書き込まれたバイト数を返します。

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

↩【ArduinoIDE reference】目次に戻る