■Ethernet.begin関数
Ethernetクラス※1のEthernet.begin関数は、イーサネットライブラリとネットワーク設定を初期化します。
■使用例
Arduino IDEで使用するEthernet.begin関数の使い方は以下の通りです。
例えば「Arduino Leonardo Ethernet」をPCにUSB接続し、またネットワークに接続されたLANケーブル接続して、ArduinoIDEの「ツール」→「ボード」→「Arduino Ethernet」を選択した状態にします。
次に下記プログラムを実行すると、着信メッセージをすべてに配信するシンプルなチャットサーバーが構築されます。
この中でEthernet.begin関数はイーサネットライブラリとネットワーク設定の初期化を実行します。
#include <SPI.h> #include <Ethernet.h> //コントローラのMACアドレスとIPアドレスを以下に入力します。 // IPアドレスはローカルネットワークに依存します。 //ゲートウェイとサブネットはオプションです。 byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; IPAddress ip(192, 168, 1, 177); IPAddress myDns(192, 168, 1, 1); IPAddress gateway(192, 168, 1, 1); IPAddress subnet(255, 255, 0, 0); EthernetServer server(23);// telnetはデフォルトでポート23になります boolean alreadyConnected = false; // クライアントが以前に接続されたかどうか void setup() { Ethernet.begin(mac, ip, myDns, gateway, subnet);// イーサネットデバイスを初期化する server.begin();// クライアントのリスニングを開始する Serial.begin(9600);// シリアル通信を開き、ポートが開くのを待ちます while (!Serial) {}; // シリアルポートが接続するのを待ちます。ネイティブUSBポートのみに必要 Serial.print("Chat server address:"); Serial.println(Ethernet.localIP()); } void loop() { EthernetClient client = server.available();// 新しいクライアントを待つ if (client) {// クライアントが最初のバイトを送信すると「hello」を送信 if (!alreadyConnected) { client.flush();// 入力バッファをクリアする Serial.println("We have a new client"); client.println("Hello, client!"); alreadyConnected = true; } if (client.available() > 0) { char thisChar = client.read();// クライアントから受信したバイトを読み込みます。 server.write(thisChar);// バイトをクライアントに返します。 Serial.write(thisChar); } } }// バイトをサーバに返します。
■構文
Ethernet.begin(mac);
Ethernet.begin(mac,ip);
Ethernet.begin(mac,ip,dns);
Ethernet.begin(mac,ip,dns,gateway);
Ethernet.begin(mac,ip,dns,gateway,subnet);
■パラメータ
mac:デバイスのMAC(Media Access Control)アドレス(6バイトの配列)
これはシールドのイーサネットハードウェアアドレスです。
新しいArduinoイーサネットシールドにはデバイスのMACアドレスのステッ
カーが含まれています。
古いシールドの場合は、独自のシールドを選択します。
ip:デバイスのIPアドレス(4バイトの配列)
dns:DNSサーバーのIPアドレス(4バイトの配列)。
※オプション(デフォルトはデバイスIPアドレスで、最後のオクテットは1に
設定されています)
gateway:ネットワークゲートウェイのIPアドレス(4バイトの配列)。
※オプション(デフォルトはデバイスIPアドレスで、最後のオクテットは1
に設定されています)
subnet:ネットワークのサブネットマスク(4バイトの配列)。
※オプション(デフォルトは255.255.255.0)
■戻り値
この関数のDHCPバージョンEthernet.begin(mac)は、DHCP接続が成功すると
int「1」、失敗した場合は「0」を返します。
他のバージョンは何も返しません。