新しいイーサーネットシールドです。PoE 給電可能なタイプとそうでないタイプがあります。
古いイーサーネットシールドは、
…という事で手を出しにくかったのですが、イーサーネットシールド2は安くてそれなりに在庫もあって MAC アドレスも付いています (背面にシールが貼ってあります)。
シールド上のコネクタは、
このようになっています。MicroSD カードスロットもあり、こちらはイーサーネットとは独立した別の機能となります。イーサーネット+ MicroSD カードなコンボシールドという事ですね。
但し、このシールドは Leonardo には使えません。そのため、Leonardo + イーサーネットシールド2 な製品 (Arduino Leonardo Ethernet) があります。
PoE モジュールは Silvertel 製で、サードパーティ扱いです。別売されていますが、日本国内では入手方法に難があります。
12V モジュールと 5V モジュール、3.3V モジュールがありますが、Ethernet Shield / Ethernet Shield 2 で使われているのは 12V モジュールのようです。
このシールドを使うには別途 Ethernet 2 library をインストールする必要があります。[スケッチ | ライブラリをインクルード | ライブラリを管理] でライブラリマネージャを開き、"Ethernet2" を検索してインストールします。
サンプルスケッチは [ファイル | スケッチ例 | Ethernet2] にありますが、古い Ethernet シールドのスケッチもインクルードするヘッダファイルを変更するだけで殆ど動作します。
V1 (W5100) | V2 (W5500) |
Ethernet.h | Ethernet2.h |
EthernetUdp.h | EthernetUdp2.h |
Wake on LAN を行うスケッチを書いてみました。D8 に接続されたプッシュボタンを押すとマジックパケットをブロードキャストします。
|
MAC アドレスが付属しなくても、ローカルで使う分には特に問題ありません。MAC アドレスには IP アドレスと同様、ローカルアドレスとグローバルアドレスがあるからです。
MAC アドレスの 6 オクテット (6 バイト) は以下のようになっており、
1 | 2 | 3 | 4 | 5 | 6 |
ベンダーID (OUI) | 機種ID | シリアルID |
さらに最初のオクテット (上で言う 1 の部分) の下位 2 ビットにはフラグがあります。下位 2 ビット目 (GL ビット) がオンだとローカルアドレスです。
7 | 6 | 5 | 4 | 3 | 2 | 1: GL ビット | 0: IG ビット |
0: グローバル 1: ローカル |
0: ユニキャスト 1: マルチキャスト |
つまり、先頭オクテットの下位が 2, 3, 6, 7, A, B, E, F ならローカル MAC アドレスです。よくわからなければ x2-xx-xx-xx-xx-xx という MAC アドレスを使ってください (x は任意の 16 進値)。この MAC アドレスがローカルエリアネットワーク内で重複しなければ OK です。
問題になるのはインターネット接続をする時です。勝手に変なの使うと重複します。重複した先に迷惑かかる事がありますのでやめましょう。手っ取り早いのは...
いずれにせよベンダー詐称なので褒められたもんじゃありません...という事で MAC アドレスが付属しているシールド / ボードがオススメなのです。
ここにある情報が役に立って、「調べる手間が省けたからオマイに飯でもおごってやるよ」 というハートウォーミングな方がいらっしゃいましたら、下のボタンからどうぞ。