管理人7メール...です思わぬ伏兵にやられそうになってしまいましたが、気を取り直して再び前進です。TCPを使ってwebサーバと通信ができましたので、今回はArduinoからメールを送信する実験です。私たちがメールを送る時、その作業はメールソフトがやってくれるので、普段は気に留めることもありません。今回はArduino君にやってもらうので、その前に手動で試してみます。プロバイダによっては流儀が違って、この方法ではメールを送れないかもしれません。私は自宅でメールサーバを運用しているので、そちらで試してみました。.QUITこのような順番で通信です。LinuxPCのターミナルから試してみましょう。host.やりました、ちゃんと送信できました。先日のEthernetClient()を元にしてスケッチを作ってみましょう。「死んだ牛のえさ?」)になっていますが家庭内LANに接続する分には問題ないでしょう。IPアドレス、デフォルトゲートウエイ、サブネットマスクは適切な値にセットします。SMTPサーバのIPアドレスも調べてセットです。実行結果は?やりました。送信することができました。ebay段々とArduinoの深みにはまって来た私です。良い獲物を見つけてしましました。「Ethernetシールド!!」です。純正品を購入するか否か迷ったのですが、結局ebayから互換品を注文することにしました。2560」と表示されていた品物を「beauty.2011」という香港の業者に発注しました。金額は送料込みで$23.5でした。いうチップが乗っていて、Arduinoのオフィシャルライブラリが使えるとWebに記述があります。ENC28J60チップが乗っているものは少し安く買うことができます。使う事が出来るライブラリが異なるみたいでした。これを選んで正解だったと思います。その時点で純正のEthernetシールドが$45でしたので、今回購入価格は純正品のだいたい半分の値段です。値が安いというのは非常に良い事ですが、その反面ちゃんと動くか否か一抹の不安があります。現物が到着してさっそく実験です。1.0の環境でテストを行うことにしました。「File」-「Example」-「DnsWebClient」の順に選択して、スケッチをロードしました。“arduino”の検索結果をシリアルモニタに表示させるプログラムです。新規購入のEhternetシールドの動作確認にはもってこいですね。ShieldにはMACアドレスが書かれたステッカーが貼られていると書かれています。shieldには残念がらMACアドレスはついていませんでした。登録作業がされていないのでしょう。今回は特に何も影響が無いので例題のまま”00:AA:BB:CC:DE:02′′を、使うことにします。シールドを同一ネットワークで使用するときには、このMACアドレスに注意をしなければなりません。関係はないですが、調べたところ上位3オクテットで表現される“00:AA:BB”のベンダーは登録されていませんでした。驚くべき事に、スケッチの中身を見てみるとIPアドレスを設定する箇所がありません。Arduino自身のIPアドレスはDHCPから受け取って設定し、宛先のwebサーバ(www.google.com)のIPアドレスもDNSサーバから引いて来るようです。スケッチをアップロードして、走らせてみます。シリアルモニタを開いてみると、ちゃんとwww.google.comにつながって、データを読んできました。良かったです、この購入したEthernetシールドは、ちゃんと使えるようです。ここまでは順調だったのですが、ここからが大はまりでした。続いて、本家のリファレンスにあるEthernetClient()を元にDHCPを使用しない設定を試してみました。レスポンスが早くなり、メモリも節約できるはずです。先ほどの例文とほとんど同じですが、今度はDHCP及びDNSを使わないで通信します。スケッチ中のグーグルwebサーバのIPアドレスが異なっていたので正しいアドレスに変更します。あと、IPアドレス等を、私の家の環境にあわせセットします。}さて、万全の自信を持ってスケッチを実行してみます。残念ながら期待通り動きません。リセットをかけてもだめ、何をやっても全然だめです。やってみましたが外部のサーバを参照することができません。(ローカルは可)ルータをいじって、デフォルトゲートウエイを変えてみたり、サブネットマスクの値を変えてみたりしましたがだめでした。gatewayとsubnetを指定するとだめみたいです。散々時間がかかった後、ようやく答えを見つけました。gatewayとsubnetの記述する順番が逆になっている模様です。mkIIを購入しましたので、早速、新品のATMEGA328P-PUにArduinoのブートローダーを書き込んでみました。Studio5をダウンロード、そしてインストール。続いてAduinoボードから現在動作しているATMEGA328を、足を曲げないよう丁寧に取り外し、新規に購入したATMEGA328に装着し直します。mkIIをISPコネクタにつなぎ、さらにUSBケーブルでPCに接続します。Arduinoボード本体も電源を入れます。[Device]欄が”ATmega328P”,[Interface]欄が”ISP”になるようにセットして「Apply」ボタンをクリックします。settings」メニューをクリックすると、書き込みスピードの設定画面になります。ここはデフォルトのまま125KHzにしておきました。bootloader”の指定です。左のメニューから「Memories」をクリックして、[Flash]欄に適正なHexファイルを指定します。最後に「Program」ボタンをクリックで書き込むことができます。クリックしてヒューズビットを書き込みました。書くと簡単ですが、私が上記の手順を発見するまで結構時間がかかってます。(....半日ほど)でも、実際の書き込み作業は数秒で終わり、まったくあっけないです。生ATMEGA328はArduinoの動作をはじめました。