最終更新:2009-12-18 (金) 11:10:32 (5235d)  

Arduino Ethernet Shield
Top / Arduino Ethernet Shield

  • Arduino/Ethernet?

通販

接続

  • SPI - デジタルI/Oピンの、10番、11番、12番、13番を使用

サンプル

//イーサネットライブラリを取り入れる
#include <Ethernet.h>

//MAC ID(各シールドに記載)
byte mac[] = { 0x00, 0x50, 0xC2, 0x97, 0x20, 0x11 };
//サーバ用IPアドレスの設定
byte ip[] = { 192, 168, 3, 100 };
//ポート設定(80:HTTPプロトコル)
Server server(80);

void setup(){
  //イーサネット通信開始
  Ethernet.begin(mac, ip);
  //サーバ開始
  server.begin();
}

void loop(){
  //クライアントからのデータ受信
  Client client = server.available();
  //クライアントからの受信がある場合
  if (client) {
    //ブラウザからのHTTPリクエストの空白行の有無のフラグ
    boolean current_line_is_blank = true;

    //クライアントとの接続中の処理
    while (client.connected()) {
      //クライアントから受信データがあるとき
      if (client.available()) {
        //HTTPリクエスト(受信データ)を一つずつ読み込む
        char c = client.read();
        //HTTPリクエストにラインフィード(改行)があり、
        //現在空白行である場合
        if (c == '\n' && current_line_is_blank) {
          //HTTPレスポンス(返信)
          server.println("HTTP/1.1 200 OK");//リクエスト成功
          server.println("Content-Type: text/html");//HTML文書形式
          server.println();//空白行を入れる

          //タイトルバー表示
          server.println("<title>KOUSAKU WEB SITE</title>");        
          server.print("ANALOG INPUT: ");//文字表示
          server.print(analogRead(0));//アナログ入力値
          server.println("<br/>");//改行
          //リンク画像表示
          server.println("<img src=\"http://2.bp.blogspot.com/_7uyXRm_coS4/SQeoW-PJB2I/AAAAAAAAAbA/0Go85aRfLDY/s400/ethernet.png\">");
          server.println("<br/>");//改行
          //このブログへのリンク
          server.println("<a href=\"http://kousaku-kousaku.blogspot.com\">GO TO: KOUSAKU BLOG PAGE<a>");
          break;
        }
        if (c == '\n') {//読み込んだ文字がラインフィードの場合
          //現在の行を空白行とみなす
          current_line_is_blank = true;
        } else if (c != '\r') {//読み込んだ文字がキャリッジリターン以外の場合
          //現在の行を空白行としない
          current_line_is_blank = false;
        }
      }
    }
    delay(1);
    client.stop();
  }
}

参考