電子工作

【Arduino】有線接続でWebサーバにして”Hello, world!” を表示させる

ArduinoとEthernet Shieldを使って、パソコンのブラウザに”Hello, world!” を表示させます。

Ethernet_Shield_V2_FOR_Arduino

環境
・Windows7

使ったもの
・Arduino Uno R3
・Ethernet Shield V2 FOR Arduino
・UE-100TX-G(USB2.0/1.1対応 100/10Mbps 小型 USB LANアダプタ)
・LANケーブル

回路図
回路図

準備
①Ethernet Shield V2 FOR ArduinoのMACアドレスを調べる
②使用するIPアドレスを調べる

①Ethernet Shield V2 FOR ArduinoのMACアドレスを調べる
[スタート]ボタンを押し[プログラムとファイルの検索]に”cmd”と入力、[Enter]ボタンを押す

cmd

[コマンドプロンプト]画面が表示されたら”ipconfig /all”と入力し[Enter]ボタンを押す

ipconfig_all_01

[説明]項目のBroadcom NetLink(TM)Gigabit Ethernetのすぐ下、[物理アドレス]がMACアドレス
”B8-AC-6F-9C-E6-40”をメモする
※上記MACアドレスは例なので自身の環境で確認したものをメモする

②使用するIPアドレスを調べる
[スタート]ボタンを押し[プログラムとファイルの検索]に”cmd”と入力、[Enter]ボタンを押す

cmd

[コマンドプロンプト]画面が表示されたら”ipconfig /all”と入力し[Enter]ボタンを押す

ipconfig_all_02

[説明]項目のASIX AX88772 USB2.0 to Fast Ethernet Adapterの下、[自動構成 IPv4 アドレス]項目”169.254.59.26”をメモする
※上記IPドレスは例なので自身の環境で確認したものをメモする

スケッチ
以下のコードは、Qoosky – 電子工作でインターネットに無線接続して通信を行う (Arduino)より抜粋

*****************************************************



#include <SPI.h>
#include <Ethernet.h>

byte mac[] = { 0x00,0x23,0x32,0xD7,0x4D,0xA0 }; //自分の環境で調べた値を入力
byte ip[] = { 192,168,100,104 }; //自分の環境で調べた値を入力

EthernetServer server(80); //HTTPのポート番号80をリッスン

void setup() {
    Ethernet.begin(mac,ip);
    server.begin();
}

void loop() {
    EthernetClient client = server.available();
    if (!client) return;
    boolean isAtTheFirstCharOfThisLine = true;
    while(client.connected()) {
        if (!client.available()) continue;
        char c = client.read();

        // 改行コードが2連続で出力されるまで、すなわち
        // 空行が返ってくるまで、言い換えると
        // クライアントからのGETリクエストが終了するまで読み飛ばす
        if (c == '\n' && isAtTheFirstCharOfThisLine) {
            client.println("HTTP/1.1 200 OK");
            client.println("Content-Type: text/html");
            client.println("");
            client.println("<html><head><title>Arduino World</title></head>");
            client.println("<body>Hello, world!</body></html>");
            break;
        }

        // 改行コードであれば、次に読む文字は次の行の最初の文字である
        if(c == '\n') {
            isAtTheFirstCharOfThisLine = true;
        }
        else if (c != '\r') { //CR+LFでの改行である場合を考慮
            isAtTheFirstCharOfThisLine = false;
        }
    }
    delay(10);



*****************************************************

MACアドレスとIPアドレスを先ほどメモしたものを参考にスケッチを変更
・MACアドレス
メモ B8-AC-6F-9C-E6-40 → スケッチ 0xB8,0xAC,0x6F,0x9C,0xE6,0x40

・IPアドレス
メモ 169.254.59.26 → スケッチ 169,254,59,80
(最後の2桁はメモとかぶらない1~254に変更。メモはピリオド区切りで、スケッチはカンマ区切り)

マイコンボードに書き込んだらブラウザからアクセスする
スケッチに書いたIPアドレスを入力(ピリオド区切り)

Hello,world!








関連記事

  1. 電子工作

    【Arduino】Seeed Studio製ミュージックシールド V2.0でMP3データの音を鳴らす…

    ミュージックシールド V2.0から音を鳴らすようにします。…

カテゴリー

おすすめ記事

アーカイブ

PAGE TOP