初めてのRaspberry Piのセットアップ!おまけに可愛いはりねずみが見られます。

## 初めに
こんにちは。[CYBIRDエンジニア Advent Calendar](http://qiita.com/advent-calendar/2016/cybird)24日担当の[@jin_k](http://qiita.com/jin_k)です。
新卒2年目でサーバサイドエンジニアです。

23日目は[@kenchang100kg](http://qiita.com/kenchang100kg)さんの[Zabbix 3.0 でログのデータからグラフを作る](http://qiita.com/kenchang100kg/items/e2b6db8a53853f4b07ae)でした。
ログアイテムでグラフを作って、これを活用して面白いことできたらいいですね！!!!




##内容について
<img width="230" src="https://qiita-image-store.s3.amazonaws.com/0/101553/63a2fe1a-1bf1-66ab-e369-96d82d1b8821.jpeg">
Raspberry PiでOSのインストールからmotionを利用して、外で携帯で可愛いはりねずみを覗く内容です。

## 必要なもの
- Mac
- Raspberry Pi(私はPi3 Model Bを使いました。)
- Webカメラ(はりねずみを見るために使いました。LifeCam HD-3000)
- SDカード
- SDカードリーダー
- USBハブ(Webカメラ使う場合、電力が足りない場合があります。)
- 充電機(USB電源アダプター5V 2.5Aとandroid usbケーブルを使いました。)
- マウス
- キーボード
- HDMIケーブル
- モニター
- 無線LAN又は有線LAN

## 始める前に確認すること

### SDカード
Raspberry Piで[動作するSDカード確認](http://elinux.org/RPi_SD_cards)をしてください。

SDカードは8GB以上をお勧めします。

自分はtoshiba microsd 16gb class 4を使いました。
SDカードのクラスは記録速度によって分けれますが、class 4は秒当たり4MB,class 10は秒当たり10MBを記録することができます。でもClass 10が4より優れてるとは限りません。記録速度を早くするために、読む速度を下げてるので

Raspberry PiのモデルによってSDカードなのかmicroSDカードなのか違うので確認してください。

Mac OSではddコマンドを利用して、イメージをSDカードに記録することができますが、
formatは必ずFAT32でお願いします。

### Wi-Fi
今回はWi-Fi使いますが、Raspberry Pi３はそもそもWi-Fiが入ってますが、
Raspberry Pi2までは無線LANのUSBアダプタをつける必要があります。

##SDカードにRaspbian(OS)をコピーする
[ここから](https://www.raspberrypi.org/downloads/)Downloadできます。
<img width="628" alt="スクリーンショット 2016-12-22 16.41.04.png" src="https://qiita-image-store.s3.amazonaws.com/0/101553/1628dc06-0df0-7626-de4d-a1d008615dbf.png">
RASPBIANをクリック

<img width="500" alt="スクリーンショット 2016-12-22 16.41.20.png" src="https://qiita-image-store.s3.amazonaws.com/0/101553/1a680367-be17-3e85-828d-9c09b37c7c6f.png">
Download ZIPクリック
自分はDownloadに20分ぐらいかかりました。

###NOOBS? RASPBIAN?
NOOBSはOSをインストールする時OSを選択することができます。
自分はRaspbianにすぐインストールします。

###方法1
1.macにSDカードを入れて、ターミナル開いて「diskutil list」でSDカード確認します。自分は「/dev/disk3」になっていました。
2.microSDカードunmount

```
$ diskutil unmountDisk /dev/disk3
```

3.イメージをSDカードにコピーする。

```
 'sudo dd bs=1m if=~/Desktop/2016-11-25-raspbian-jessie.img of=/dev/rdisk3'
```

約10分ぐらい待つと終わりです。画面には変化がないように見えますが、実際は実行されていますので、ゆっくりお待ちを

###方法2
1.[Git](https://github.com/RayViljoen/Raspberry-PI-SD-Installer-OS-X)からcloneします。

2.同じfolderにinstallとイメージfileを置きます。

```
$ ls
2016-11-25-raspbian-jessie.img	install
README.md
```

3.イメージをSDカードにコーピする。

```
sudo ./install 2016-11-25-raspbian-jessie.img
```

## Raspberry Pi起動
![Photo_16-12-22-18-11-58.jpg](https://qiita-image-store.s3.amazonaws.com/0/101553/57405191-f609-81a4-e2bf-15e1c86cde75.jpeg)

1:MicroUSB(電源)
2:HDMI
3:micro SDカード
4:GPIOピン
5・6:USB
7:EthernetLAN
8:3.5mジャック

![Photo_16-12-22-18-30-29.jpg](https://qiita-image-store.s3.amazonaws.com/0/101553/60640425-8715-b124-d671-0afb4e6bf521.jpeg)

Raspberry Piは電源を入れると起動します。


## WiFi接続する
![Photo_16-12-22-23-10-31.jpg](https://qiita-image-store.s3.amazonaws.com/0/101553/417493b6-2aa9-4fec-5793-6561aae2d9d6.jpeg)
自分はモニタ+キーボード＋マウスつないて、WiFi設定しました。

## 固定IP指定、MacからSSHで接続する
上記のままだと、毎回モニタヤマウスなどが必要なのでMacからSSHでアクセスできるようにしましょう。

ますはIPアドレス確認

```
pi@raspberrypi:~ $ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    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: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
    link/ether b8:27:eb:62:30:88 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::1211:7304:1261:961b/64 scope link tentative 
       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:37:65:dd brd ff:ff:ff:ff:ff:ff
    inet 192.168.11.2/24 brd 192.168.11.255 scope global secondary wlan0
       valid_lft forever preferred_lft forever
    inet6 2400:2410:32a1:d100:3cbd:922c:75fc:426c/64 scope global noprefixroute dynamic 
       valid_lft 86363sec preferred_lft 14363sec
    inet6 fe80::519b:a96c:c22d:a517/64 scope link 
       valid_lft forever preferred_lft forever
```
SSHを有効にします。

```
$sudo raspi-config

```

「Advance Options」 > 「A4 SSH」 > 「Enable」

```
$ssh pi@192.168.11.2
```

初期パスワード 「raspberry」

wpa_supplicant.confに無線LAN情報を追記

```
$ sudo sh -c 'wpa_passphrase SSID PASSPHRASE >> /etc/wpa_supplicant/wpa_supplicant.conf'
```
自動でWiFiによるネットワーク設定がされるか確認

```
pi@raspberrypi:~ $ $sudo cat /etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=JP

network={
ssid="SSID"
psk=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
disabled=1
}

network={
ssid="xxxxxxxxxx-2G"
psk="xxxxxxxx"
key_mgmt=xxxx
}
```
ネットワーク情報を固定化します。

```
/etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)

# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'

# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d

auto lo
iface lo inet loopback

iface wlan0 inet dhcp
allow-hotplug wlan0
#iface wlan0 inet manual

#以下追加
iface wlan0 inet static
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
address 192.168.11.111　#固定したいIPアドレス
netmask 255.255.255.0
gateway 192.168.11.1 #ip routeで確認できる
allow-hotplug wlan1
iface wlan1 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
```

イーサネットインターフェースの再起動

```
sudo ifdown wlan0
sudo ifup wlan0
```

固定IPで接続できているか確認します。

```
pi@raspberrypi:~ $ ifconfig wlan0
wlan0     Link encap:Ethernet  HWaddr b8:27:eb:37:65:dd  
          inet addr:192.168.11.111  Bcast:192.168.11.255  Mask:255.255.255.0
          inet6 addr: 2400:2410:32a1:d100:3cbd:922c:75fc:426c/64 Scope:Global
          inet6 addr: fe80::519b:a96c:c22d:a517/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:393445 errors:0 dropped:0 overruns:0 frame:0
          TX packets:473193 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:33041352 (31.5 MiB)  TX bytes:632585225 (603.2 MiB)

```

###イーサネットインターフェースの再起動がうまくできなかった時

```
tail -f /var/log/daemon.log 
```
でlogを確認

## いよいよ、可愛いはりねずみを見られます！

###インストール
ますはWEBカメラが認識しているか確認

```
pi@raspberrypi:~ $ lsusb
Bus 001 Device 005: ID 045e:0779 Microsoft Corp. LifeCam HD-3000
Bus 001 Device 004: ID 05e3:0608 Genesys Logic, Inc. USB-2.0 4-Port HUB
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
```

「Bus 001 Device 005」認識されていますね。
それではインストールします。

```
sudo apt-get install motion
```

###設定

 /etc/motion/motion.conf設定しましょう。

```
pi@raspberrypi:~ $ sudo cat /etc/default/motion
# set to 'yes' to enable the motion daemon
start_motion_daemon=yes
```

WEBストリーミングができるように以下のことを設定しました。
```
sudo vim /etc/motion/motion.conf
daemon = on
webcam_localhost = off
```
/etc/motion/motion.confはざっくり読んで必要なところ設定してください。

### 外部でアクセスできるようにする
[ここ](http://qiita.com/kinpira/items/c9e6dc910e8d96e8c19b)を参考に設定しました。

![Photo_16-12-22-18-11-56.jpg](https://qiita-image-store.s3.amazonaws.com/0/101553/e4a157ed-6da8-e66f-3f64-f52e82d49a18.jpeg)
ルーターによって設定方法が違いますが、私はソフトバンク 光ユニッット使っていたので
BBユニッットに書いているアドレスにアクセスして、ポート伝送を設定しました。
IPは先の固定IPを入れます。


###起動

```
sudo service motion start
```

###確認
<img width="400" src="https://qiita-image-store.s3.amazonaws.com/0/101553/30e0ddc4-c974-1e0a-5b78-68952f6e7d00.png">
グロバールIP：ポート番号

ちょっと遅いですが、一応見れました！！！
当たり前ですが、作り終わって気づいたことですが
これだったら夜には全くはりねずみの姿が見えません。(泣)
赤外線カメラを買わなきゃ......

### 起きた問題

グロバールIP(内部アクセスの場合、先設定した固定IP)：ポート番号
したが、アクセスしてすぐ1~2秒で落ちた。

```
#グロバールIP(内部アクセスの場合、先設定した固定IP)：ポート番号にアクセスした前
pi@raspberrypi:~ $ nmap localhost
PORT     STATE SERVICE
22/tcp   open  ssh
8080/tcp open  http-proxy
8081/tcp open  blackice-icecap


#グロバールIP(内部アクセスの場合、先設定した固定IP)：ポート番号後
pi@raspberrypi:~ $ nmap localhost

PORT     STATE SERVICE
22/tcp   open  ssh
```
なぜか22番しか出ない。原因調べたら写真を保存するときの権限周りが問題だった。
監視用に使うので、特に写真とかの保存は必要ないのでoffにしてたら無事にできた。

## 参考URL
http://qiita.com/toshihirock/items/8e7f0887b565defe7989
http://qiita.com/kinpira/items/c9e6dc910e8d96e8c19b

## 最後に

今回初めてRaspberry Piのセットアップして、Webカメラではりねずみをみを見ることまでできました！
これで年末に安心して海外旅行に行けます！！
Raspberry Piのセットアップで困った人に参考になれば幸せです。
今後もうちの可愛いはりねずみのために、Raspberry PiとかArduinoを使って色々やってみたいと思います！

[CYBIRDエンジニア Advent Calendar](http://qiita.com/advent-calendar/2016/cybird)
明日は、[@kagawa1982](http://qiita.com/kagawa1982)さんの[人事がエンジニア採用から学んだこと、気づき](http://qiita.com/kagawa1982/items/465c59d1143e63c3c114)
です。楽しみにしています!!!

Merry Christmas!!!