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
と表示される.
ESP32 Wifi Bluetooth開発ボード |
Arduino Nano Every |
Raspberry Pi pico |
FPGA XILINX Artix-7 |