基本ライブラリ
デジタルIO
アナログIO
拡張IO
時間
数学
三角関数
乱数
ビットバイト操作
割り込み
シリアル通信
標準ライブラリ
Ethernet
Ethernetサーバー
Ethernetクライアント
サーボモーター
ステッピングモーター
キャラクタ液晶表示
EEPROM
SPI通信
I2C通信(Wire)
メモリカード
メモリカード(File操作)
画像処理
周期処理
時計(RTC)
ユーティリティ
Ethernet クライアント
Ethernetでクライアントとして動作するためのライブラリです。
EthernetClient()
- 概要
- クライアントを作るためのコンストラクターです。
- 文法(例)
- EthernetClient client
- パラメータ
- なし
connected
- 概要
- 接続しているか調べる。
- 文法
- int8_t client.connected()
- パラメータ
- なし
- 戻り値
- 接続していたらtrue、接続していなかったらfalseを返す。
connect
- 概要
- サーバーに接続します。
- 文法
- int connect(IPAddress ip, uint16_t port)
int connect(URL, uint16_t port) - パラメータ
- ip: 接続するIPアドレス (4バイトの配列)
URL: 接続するドメイン (例えば"arduino.cc")
port: 接続するポート (uint16_t) - 戻り値
- 接続状況に応じて1,-1,-2,-3,-4を返す。
SUCCESS 1
TIMED_OUT -1
INVALID_SERVER -2
TRUNCATED -3
INVALID_RESPONSE -4
write
- 概要
- 接続しているサーバーにデータを送信する。
- 文法
- client.write(val)
client.write(buf, len) - パラメータ
- val: 1バイトのデータ (byte or char)
buf: 複数バイトの配列データ (byte or char)
len: 配列データの長さ - 戻り値
- 送ったバイト数。特に読む必要なし。
- 概要
- 接続しているサーバーにデータを送る。数字はそれぞれASCIIコードとしてデータを送る。例えば123は'1','2','3'として送られる。
- 文法
- client.print(data)
client.print(data, BASE) - パラメータ
- data: 送る文字列や数値
BASE(オプション): 基数(BYTE、BIN、DEC、HEX、OCT) - 戻り値
- 送ったバイト数。あまり読む必要はない。
println
- 概要
- 接続しているサーバーに改行付きでデータを送る。数字はそれぞれASCIIコードとしてデータを送る。例えば123は'1','2','3'として送られる。
- 文法
- client.println()
client.println(data)
client.print(data, BASE) - パラメータ
- data: 送る文字列や数値
BASE(オプション): 基数(BYTE、BIN、DEC、HEX、OCT) - 戻り値
- 送ったバイト数。あまり読む必要はない。
available
- 概要
- 接続している相手先から受け取ったデータがあるかどうかを調べる
- 文法
- int client.available()
- パラメータ
- なし
- 戻り値
- 受信したデータ数
read
- 概要
- 受信したデータを1文字取り出します。
- 文法
- int client.read()
- パラメータ
- なし
- 戻り値
- 読み出したデータ。データがなければ-1を返す。
flush
- 概要
- 受信したデータを捨てる
- 文法
- client.flush()
- パラメータ
- なし
- 戻り値
- なし
stop
- 概要
- サーバーから切断する
- 文法
- client.stop()
- パラメータ
- なし
- 戻り値
- なし
サンプルプログラム
DHCPで接続して、IPを表示するサンプルです。
#include <Arduino.h>
#include <Ethernet.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
// if you don't want to use DNS (and reduce your sketch size)
// use the numeric IP instead of the name for the server:
IPAddress server(216,58,211,3); // numeric IP for Google (no DNS)
//char server[] = "www.google.com"; // name address for Google (using DNS)
// Set the static IP address to use if the DHCP fails to assign
IPAddress ip(192,168,0,177);
// Initialize the Ethernet client library
// with the IP address and port of the server
// that you want to connect to (port 80 is default for HTTP):
EthernetClient client;
void setup() {
// Open serial communications and wait for port to open:
Serial.begin(9600);
while (!Serial.available()) {
; // wait for serial port to connect. Needed for Leonardo only
}
// start the Ethernet connection:
if (Ethernet.begin(mac) == 0) {
Serial.println("Failed to configure Ethernet using DHCP");
// no point in carrying on, so do nothing forevermore:
// try to congifure using IP address instead of DHCP:
Ethernet.begin(mac, ip);
}
// give the Ethernet shield a second to initialize:
delay(1000);
Serial.println("connecting...");
// if you get a connection, report back via serial:
if (client.connect(server, 80)) {
Serial.println("connected");
// Make a HTTP request:
client.println("GET /search?q=arduino HTTP/1.1");
client.println("Host: www.google.com");
client.println("Connection: close");
client.println();
}
else {
// kf you didn't get a connection to the server:
Serial.println("connection failed");
}
}
void loop()
{
// if there are incoming bytes available
// from the server, read them and print them:
if (client.available()) {
char c = client.read();
Serial.print(c);
}
// if the server's disconnected, stop the client:
if (!client.connected()) {
Serial.println();
Serial.println("disconnecting.");
client.stop();
// do nothing forevermore:
while(true);
}
}