ArduinoをWebサーバにしてみようと思います。
LANの配線図は、前回と同様です。
ArduinoをWEBサーバにするスケッチは、サンプルが用意されているので、それを使います。2箇所変更する必要があります。
まず、WEBサーバにするサンプルのスケッチは、ArduinoのIDEを起動し、[ファイル]-[スケッチ例]-[Ethernet]-[WebServer]を選択すると、まるっと、コピーされます。
【 Webサーバ用スケッチ】
#include <SPI.h>
#include <Ethernet.h>
// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:
byte mac[] = {
0x90, 0xA2, 0xDA, 0x0D, 0x99, 0x79 };
IPAddress ip(192,168,20,100);
// Initialize the Ethernet server library
// with the IP address and port you want to use
// (port 80 is default for HTTP):
EthernetServer server(80);
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
}
以下続く・・・
長いので省きましたが、上のスケッチの青字の部分を、自分の環境にあわせて書き換える必要があります。
1.macアドレスの変更
byte mac[] = {
0x90, 0xA2, 0xDA, 0x0D, 0x99, 0x79 };
この値は、実は、イーサネットシールドの裏側にシールが貼ってあり、その値を入れる必要があります。グサッと刺すときにメモするのを忘れたので、私は、一度、外してメモしました。
macアドレスって、何?
LANのボード(ネットワークボード)を区別するための、IDです。原則、世の中に出回っているネットワークボードのIDは全部異なるIDが付与されています。
もし、お使いのパソコンがWindowsだったら、コマンドラインから、ipconfig /all と入力してみて下さい。Physical Address という表記で、パソコン に搭載されているネットワークボードのmacアドレスが表示されているはずです。
2.IPアドレスの変更
IPAddress ip(192,168,20,100);
今回は、パソコンのIPアドレスが192.168.20.2なので、Arduinoには、192.168.20.100を設定しました。
IPアドレスって何?
macアドレスは物理的な識別をする為のIDに対して、パソコンを識別するためのIDがIPアドレスです。パソコンが使っているIPアドレスを知りたい時には、Windowsだったら、コマンドラインからipconfig で表示されます。
同じLANの中で、同じ IPアドレスは使えません。なぜって、どっちがどっちか、区別できなくなってしまうから。だから、最後(一番右端の数字)が異なるようにして下さい。(←激しく、ざっくりした説明 )
ネットワークの知識なので、わからなかったら飛ばしても良いと思いますが、
キチンと書くと、同じLANと言う為には、ネットワークアドレスが同じであるということになります。
ネットワークアドレスは、サブネットマスクによって区別される、ネットワーク部分が同じであることでする。
192.168.20.2 というIPアドレスで、サブネットマスクは255.255.255.0 とすると、
ネットワーク 部分は、192.168.20.0
ホスト部分は、2 です。
なので、Arduinoに指定するIPアドレスは、同じネットワーク・アドレスを持ち、異なるホスト部分である必要から、192.168.20.100にしました。ちなみに、ホスト部分に 0 と255は使えません。1から254までにしてください。
外にパソコンやルータを使っているならば、それらのIPアドレス と重複してもダメです。
結局のところ、macアドレスとIPアドレスを変更したスケッチをArduinoへ転送します。
転送が完了したら、いよいよテストです。
まずは、疎通確認から行います。
コマンドラインからpingコマンドで疎通確認をします。
ReplyはパソコンからArduinoへping(ICMP)というパケットを投げた時にArduinoから返答し、それが届いたことを示しています。4回投げて、4回帰ってきたという結果です。
良好です。
次に、ブラウザから、Arduinoへアクセスしてみます。
ブラウザのURL欄へ、http://192.168.20.100 と入力します。
このURLは、もちろん、さきほどArduinoへ指定したIPアドレスと同じです。
結果良好です。
Arduinoに流したWebサーバのサンプルスケッチ では、analogピンの入力電圧を検出するスケッチだったので、上記のような表示がされています。でも、Arduinoのanalogピンに何も接続していないですね。なので、でたらめな数値が表示されています。
試しに、analogピンとGNDを結線すると、0になります。
Arduino ネットワークデビュー成功です。
・Processingをはじめよう
・Processing アニメーション
・楽しく学ぶコンピュテーショナルデザイン
田原 淳一郎
カットシステム
売り上げランキング: 292836
カットシステム
売り上げランキング: 292836
0 件のコメント:
コメントを投稿