000000 ランダム
 HOME | DIARY | PROFILE 【お気に入りブログ登録】 【ログイン】

CPUを作ろう ~計算機教材とマイコンと電子工作~

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
と表示される.


Copyright (c) 1997-2018 Rakuten, Inc. All Rights Reserved.