IoT のための電子工作入門

ホーム > ArduinoArduino > Arduino Ethernet シールド利用時に DHCP で IP アドレスを割当てる

Arduino Ethernet シールド利用時に DHCP で IP アドレスを割当てる

Arduino で Ethernet シールドなどを用いて LAN/インターネットに接続する場合に、 プログラムで明示的に IP アドレスを指定するのではなく、 DHCP での自動的な IP アドレス割当てを行いたい場合について説明します。

実はこれは Arduino の標準的な Ethernet ライブラリを使用していれば簡単に実現できます。

次のコード例のように Ethernet.begin() メソッド呼び出し時に、 MAC アドレスのみを指定して IP アドレスを指定しなければ自動的に DHCP からの IP アドレス取得を試みます

#include <Ethernet.h>

byte mac[] = { 0xDE,0xAD,0xBE,0xEF,0xF0,0x0D };

void setup() {
  Serial.begin(9600);
  
  Ethernet.begin(mac);
  Serial.println(Ethernet.localIP());
}

void loop() {
}

ここでは Arduino Uno に Ethernet シールドを接続しています。(厳密に言えばそれぞれのクローン)

今回はシリアルポートに結果を出力するために、Serial.begin や println を呼び出していますが、DHCP による IP アドレスの割当てという目的に限って言えば、Ethernet.begin の行のみがポイントになります。

ホーム > ArduinoArduino > Arduino Ethernet シールド利用時に DHCP で IP アドレスを割当てる