IoT用ラズパイのIPアドレス固定2020年度版

# 1. はじめに
一般的に、IoTの基礎として学ぶのは、センサから何らかの情報を収集し、その情報をサーバを送る、という流れだと思います。そして、学んだことを自分で実践しようとして始めに躓くのが、Wi-Fi設定 と サーバ設定 のようです（私の個人的なヒアリングより）。 ここでは、サーバーとしてラズパイを用いて、それを設置する流れを説明します。 この記事の「ルータ」とは、NATを行う程度のもので、家庭用ルータや家庭用Wi-Fiルータなどを指します。

# 2. 設置前に確認しましょう

## 2.1. 会社の場合、接続の許可を得る
自宅であれば、承認を得る必要はありません。しかし、会社で実施する場合、まずは、LANにラズパイやセンサノード(ESP32等)の機器を接続して良いのかを担当者や上司に確認しましょう。中小規模企業であれば、社長やネットワーク担当者、大規模企業であれば、情報システム部門などになるでしょう。それすら判らなければ、会社のEメールなどを担当している人は誰なのか、上司に相談しましょう。
そして、なぜそれを実施したいのかを伝えましょう。説明の例です。

- 自作IoTを社内で試し、良ければ稼働させたい
- IoTはカイゼン活動の一種
- 作業効率を上げるための機材を設置したい
- 機材はLANを使う必要がある
- 社内LANに機材を接続したい

社内設置が難しい企業は、IoTの効果を理解できないためのようです。しかし、設置する前から効果がどれくらいあるのか？というのは判りようがありません。そこで、[旭鉄工さんの事例](https://www.youtube.com/watch?v=AanyOK3_yQU)を見てもらいましょう。それでもダメならば、残念ながら、会社への設置は難しいと思います。

## 2.2. IPアドレスの事務的な確保
センサノードはIPアドレスが毎日異なっていても問題ありません。しかし、サーバだけはIPアドレスが決まっていないと、センサノードに書き込むサーバIPアドレスを毎回変える必要があります。

会社では、IPアドレスが固定になっている機器があるはずです。コピー機や、CAD用PC、マシニングセンタなど。それらを管理している人が居るはずです。小規模企業の場合、設置業者が管理していることが多いようです。中規模企業の場合は、担当者がexcel等で管理していると思います。
管理台帳はこのような感じのものです。

|アドレス|機器|備考|
|---|---|---|
|192.168.1.1 | ルータ|常時通電|
|192.168.1.2 | コピー機|常時通電|
|192.168.1.3 | 総務経理PC||
|192.168.1.4 | CAD||
|192.168.1.5 | 5軸 1号||
|192.168.1.6 | |これ以降なし|

このような管理がされている場合、192.168.1.6番以降は、空いているということなので、ラズパイを192.168.1.6にするように依頼しましょう。(依頼についてはmacアドレスが必要な場合がありますので、続きは 3.設定 を参照）

しかし、次のような割当が一般的なように思います。前半をDHCP(各端末にIPアドレスを自動的に割り当てる機能)による領域にしている例です。この場合は、192.168.1.133が空いていますので、ラズパイをそこに割り当てるように依頼しましょう。(依頼についてはmacアドレスが必要な場合がありますので、続きは 3.設定 を参照）

|アドレス|機器|備考|
|---|---|---|
|192.168.1.1 | ルータ|常時通電|
|192.168.1.2 | |自動割当|
|: | |自動割当|
|192.168.1.128 | |自動割当|
|192.168.1.129 | コピー機|常時通電|
|192.168.1.130 | 総務経理PC||
|192.168.1.131 | CAD||
|192.168.1.132 | 5軸 1号||
|192.168.1.133 | |これ以降なし|


なお、自宅で番号管理をしていない場合は、自分で決めましょう。``192.168.1.2```など若番にすると決めても良いでしょう。
なお、注意が必要なのは、左から3つ目の数字です。家庭用ルータでは、192.168.10.*とか、192.168.11.*などが初期状態になっていることがあります。この例では、```10```や```11```です。上記の例は、```1```にしています。使っているルータの数字に読み替えます。


# 3.設定

IPアドレスが決まったら、あとは設定するだけです。
ここで、設定には大きく2通りあります。
1. ルータにmacアドレスを登録する方法
2. 空いている番号をラズパイに設定する方法

ネットワークの管理者が居る場合は、どちらなのか質問して、その回答に従いましょう。
自宅などで、自分で管理する場合は、1をおすすめします。
ネットワーク管理者から2で行うことを指示された場合は、自分で設定します。


## 3.1 macアドレス登録による方法
まずは、ラズパイのmacアドレスを確認します。社内LANに接続する手段が、有線なのか、無線なのかで、見るべきところが異なります。
下記で判らなければ「ラズパイ macアドレス 確認」などで検索しましょう。

### 3.1.1 有線LANのmacアドレス確認
ラズパイを立ち上げ、ターミナル(左上の黒いアイコン)を開き、次のコマンドを入力します。

```
ip add
```
すると次のような表示が出ます。(数字は適当に作っています）

```
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether b8:27:eb:12:34:56 brd ff:ff:ff:ff:ff:ff
    inet 192.168.10.2/24 brd 192.168.10.255 scope global dynamic noprefixroute eth0
       valid_lft 140140sec preferred_lft 118540sec
    inet6 fe80::bc1d:9ed:e7cf:13cf/64 scope link 
       valid_lft forever preferred_lft forever
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether b8:27:eb:12:34:57 brd ff:ff:ff:ff:ff:ff
    inet 192.168.10.3/24 brd 192.168.10.255 scope global dynamic noprefixroute eth0
       valid_lft 140140sec preferred_lft 118540sec
    inet6 fe80::bc1d:9ed:e7cf:13ce/64 scope link 
       valid_lft forever preferred_lft forever

```
ここで注目するところは、```2: eth0```の次の行です。

```
link/ether b8:27:eb:12:34:56 brd ff:ff:ff:ff:ff:ff
```
この ```b8:27:eb:12:34:56```がラズパイの有線LANのmacアドレスです。(数字自体はラズパイ毎に異なります）

### 3.1.2 無線LANのmacアドレス確認
有線と同じく次のコマンドを入力します。

```
ip add
```
表示内容は省略します。3.1.1を見て下さい。
注目するところは、```3: wlan0```の次の行です。

```
link/ether b8:27:eb:12:34:57 brd ff:ff:ff:ff:ff:ff
```
この ```b8:27:eb:12:34:57```がラズパイの無線LANのmacアドレスです。(数字自体はラズパイ毎に異なります）

### 3.1.3 macアドレス登録
ルータにmacアドレスとIPアドレスを登録します。担当者が居る場合は、macアドレスを伝えるだけで終了です。

自身でルータに設定する方法は、そのルータの説明書に記載があります。もしくは検索しましょう。
検索キーワードは、「ipアドレス固定」とルータの型番やメーカ名です。例えば、buffalo製のWi-Fiルータを使っている場合の検索キーワードは
「ipアドレス固定 buffalo」で該当する説明が出てきます。
IPアドレスとmacアドレスを入力して設定します。
上の例では、```192.168.1.133``` と ```b8:27:eb:12:34:56```を設定します。

ラズパイを再起動し、画面の右上の上下矢印（Wi-Fiの場合は扇型）アイコンの上に、カーソルを置き、IPアドレスを確認します。
上の例では```192.168.1.133/24```のように表示されていればOKです。 
異なる数字が表示されたら、ラズパイの電源を切り、1時間程度おいてから起動してみるなどしてみてください。
もし、うまくいかない場合は、「ipアドレス固定 できない」などで検索してみてください。

## 3.2. ラズパイの設定で固定IPにする
ようやくタイトルの内容になりますが、実はこのあたりは、多くの記事がwebに存在します。「ラズパイ ip 固定」で検索するととても詳しく説明された記事が出てきます。ここでは簡単に方法を記載したいと思います。

ターミナルを開き、次のコマンドを入力します。

```
sudo nano /etc/dhcpcd.conf
```
入力はキーボードのみで行います。マウスは使えません。
終了は、CTRLキーを押しながら Xです(これを以後 ctrl + x と記載します）
カーソルキーで下を押していき、最終行にカーソルを移動しましょう。

記述内容は、有線と無線LANで若干異なります。

### 3.2.1 有線LANの記述

次が例です。```192.168.1.133``` の場合です。

```
interface eth0
static ip_address=192.168.1.133/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1 8.8.8.8
```
注意が必要なのは、左から3つ目の数字です。家庭用ルータでは、192.168.10.*とか、192.168.11.*などが初期状態になっていることがあります。その場合は、その数字に読み替えます。routersなどの数字も同様です。
会社では、routers, domain_name_serversのアドレスは、担当者に聞いて下さい。「ゲートウエイとDNSのアドレスを教えて下さい」と聞くと良いでしょう。
なお、ip_addressには、アドレスの後ろに```/24``` を付けます。普通は```24```ですが、会社によっては異なる場合もありますので、担当者に聞いて下さい。
また、domain_name_serversにある、8.8.8.8は、googleのサービスです。ここでは念のために記載しました。

記載が終わったら、ctrl + oを押して、yesと答え、ctrl + xでnanoを終了します。
その後、再起動して下さい。

### 3.2.1 無線LANの記述

次が例です。```192.168.1.133``` の場合です。

```
interface wlan0
static ip_address=192.168.1.133/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1 8.8.8.8
```
有線と異なるのは、1行目だけです。```wlan0```と記入します。
あとのアドレスについては、有線LANと考え方が同じです。
記載が終わったら、ctrl + oを押して、yesと答え、ctrl + xでnanoを終了します。
その後、再起動して下さい。

再起動後に、画面の右上の上下矢印（Wi-Fiの場合は扇型）アイコンの上に、カーソルを置き、IPアドレスを確認します。
このアイコンに赤でバツが付いている場合は、記述が間違っている可能性がありますので、よく見直しましょう。

# 4. おわりに
IoTを自作で試す場合は、ネットワークはきちんとした知識が必要なのですが、情報の入り口が判れば、自分自身で調べることが出来ると思います。その入り口となりえる情報を目指し、今回は記載してみました。