Ethernetシールドメモ Ethernetシールドでやったこと. exampleのWevserverを試す. シールドを重ねる前にあらかじめコンパイルと書き込み. その後ArduinoにEthernetシールドを重ねて,LAN接続. そのままでは上手く動かない. IPアドレスを適当な値にしないといけない. Hubを使って,同じプライベートネットワーク上にPCとArduinoが存在するように接続. PCに自動でDHCPで割り当てられたIPアドレスをしらべ,プライベートアドレスで他と衝突しないように 注意してIPアドレスをスケッチに入力して, コンパイル後ダウンロードし,そのアドレスを直接指定して,Webブラウザで Arduinoにアクセス.すると,Arduinoのアナログ端子の電圧値が ブラウザ上に表示された. 新しいEthernetシールドも試す. 従来型シールドを新しいEthernetシールドに変えて,同じことをやってみたら 問題なく動いた. 以上で,サーバ動作確認終わり. Webクライアントを試す. WebClientのスケッチをコンパイル,ダウンロードする. サーバーと同様に,IPアドレスの問題を回避する. DHCPで自動割り当てされたIPアドレスに近い値を衝突しないように書込んで, HUBで同じプライベートネットワーク上に置けばつながる. ただし,サーバにアクセスしにいくが,サーバに接続できなければレスポンスなし. サンプルスケッチに入っているのはGoogleのアドレスにSearch?で検索文字列を送って 表示させるものだが,googleのアドレスが違ってればだめ. 以下のURLでIPアドレスは分かるので,調べた値をArduinoに書込んで動かしたらレスポンスが得られた. http://ip2domain.net/ ちなみに,www.google.co.jp は 72.14.203.103 だった. スケッチ中, client.println("GET /search?q=arduino HTTP/1.0"); の記述の /search?q=arduino の部分で検索文字を送っている. /以下で表示させたいディレクトリの指定もできる.指定したURLを表示させたいだけなら, / だけで可. 例えば, client.println("GET / HTTP/1.0"); 次に,DHCPを試す. こちらのURLでDHCPについて記述があったので,ダウンロードして使ってみた. http://labs.s-cubism.com/blog/2009/07/03/135/ http://shin-ishimaru.cocolog-nifty.com/blog/2009/06/arduinoarduinod.html ここからファイルをダウンロード http://blog.jordanterrell.com/post/Arduino-DHCP-Library-Version-04.aspx ArduinoのライブラリのEthernetフォルダの中にファイルをおく. サンプルスケッチ,WebClientWithDHCP を動かしたら,DHCPサーバを見に行って,IPアドレスを取得して, 先ほどのWebClientの動作をした. その他,参考URL http://emergeplus.xrea.jp/?cat=3 このURLにEthernetDNSについて書いてあったので,以下のURLからダウンロードしてインストール. http://gkaindl.com/software/arduino-ethernet DNSだけでなく,DHCPもあった.先のDHCPとは出所が違うのでこれもインストールした. ここに,DNSについてはバグがあると書いてあるが,ダウンロードしたものは修正されていた. サンプルスケッチも無事コンパイルできた. サンプルでは,まず,DHCPによりホスト名を入力するとホストのIPアドレスを取得するように なっている. Seristerなどのシリアル通信ソフトで文字列を送ると,ホストのIPアドレスを取得して表示する. (ターミナルではだめ) Webサーバにアクセスするとシリアルに文字列を返してくるが,やたら文字を送ってくるので, 自分でWebサーバを動かして,文字列のやり取りをしてみた. こちらのURLを参考にWebサーバ,をインストールした. http://www.kent-web.com/www/index.html AN HTTPD Home Page http://www.st.rim.or.jp/~nakata/ から, httpd142p.exe をダウンロード,C:\www のフォルダ内に 一式を置き, home ディレクトリをホームとした. 上記URLどおりに設定, http://127.0.0.1/ でindex.html が表示された. サーバとして動かすには,PCのIPアドレスを指定しないといけない. ネットワークのプロパティから確認できるので,確認したIPアドレスを入力するとそれでも動いた. 次に,cgiを動かすために, ActivePerl を Active State からダウンロードしてインストール. http://www.activestate.com/downloads から, ActivePerl-5.12.3.1204-MSWin32-x86-294330.msi をインストールするとインストーラが,C:\Perl に一式をインストールした. 上記URLの通り http://127.0.0.1/hello.cgi でcgiが動いた. 次のページの, http://www.kent-web.com/www/anhttpd/www2.html aska.lzh を解凍,インストールして http://127.0.0.1/bbs/aska.cgi で掲示板も動いた. Perlの本を見ながら,cgiをいくつか動かした. 引数を渡してWebブラウザに表示させるには, −−−−−−−send.cgi−−−−−−−−−− #!/usr/local/bin/perl print "Content-type: text/html\n\n"; print "< HTML >< BODY >\n"; print @ARGV; print "< /BODY >< /HTML >\n"; exit; −−−−−−−send.cgi−−−−−−−−−− これで, http://127.0.0.1/send.cgi?123,456 とすると,ブラウザに 123,456 と表示される.