基本ライブラリ
デジタルIO
アナログIO
拡張IO
時間
数学
三角関数
乱数
ビットバイト操作
割り込み
シリアル通信
標準ライブラリ
サーボモーター
ステッピングモーター
キャラクタ液晶表示
EEPROM
SPI通信
I2C通信(Wire)
メモリカード
メモリカード(File操作)
Ethernet
Ethernetサーバー
Ethernetクライアント
Firmata
周期処理
省電力
時計(RTC)
SoftwareSerial
ユーティリティ
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(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で接続して、HTTP GETを行うサンプルです。
#include <Arduino.h>
#include <SPI.h>
#include <Ethernet.h>
// Enter a MAC address for your controller below.
// Newer Ethernet shields have a MAC address printed on a sticker on the shield
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(74,125,232,128); // 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) {
; // wait for serial port to connect. Needed for Leonardo only
}
// start the Ethernet connection:
if (Ethernet.begin() == 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);
}
}