ブログをご覧頂いている皆様
はじめまして、大島です。

今年度よりブログ執筆を担当するメンバーになりました。
昨年までインフラ屋さんだったこともあり執筆する記事としては入門・初心者向けの記事が多くなるかと思いますが少しでも皆様の参考になればと思っております。

早速今回のテーマですが温湿センサー(DHT11)とRaspberry Pi(node.js)、そしてBluemix(node-red)を使ってIoTを体験してみたいと思います。
上記の構成は既に多くの記事でも取り上げられていますが実際に記事を見ながら進めてみると、情報が古く上手く出きないポイントが多々有りました。
今回は2016年度の最新版として改めて情報を纏めたいと思います。
(セットアップ等を行うPCはwindows7端末となりますので、ご了承下さい)

初回の記事では、Raspberry Piのセットアップについて纏めて行きます。

準備

必要な材料

まず、最低限必要な材料をリストアップしました。
Raspberry Pi購入の参考にチェック頂ければと思います。

資材 補足
Raspberry Pi2 B Raspberry Pi3でも可。3の場合、無線LAN・Bluetoothが標準で対応しています
マイクロSDカード ラズパイのOSをインストールします。16GBあると良いです
マイクロUSBとACアダプタ ラズパイへの電源供給として必要
LANケーブル 本記事ではネットワークを介してラズパイに(ssh)アクセスします
無線LAN子機 本記事では無線LAN子機の設定も紹介したいと思います
ブレットボード ラズパイとセンサー等の電子機器を接続するための中継ボード
ジャンパーワイヤー オス・メスとオス・オスのワイヤー5本ずつあれば良いです
抵抗 4.7k/10kΩがあればとりあえず大丈夫です
DHT11 温湿センサー
HDMIケーブル (無くても良い)GUI画面出力用
ラズパイケース (無くても良い)何かあると一発で壊れますので、予算があれば購入検討されても良いかと思います

大体、上記の材料を全て購入すると約1万円ぐらいになります。
けして安くは無いですが、飲み会2.5回分ぐらいですので皆様、購入しては如何でしょうか。

事前にアカウント登録が必要なサービス

  1. Bluemix
    上記リンク左記にアクセスして頂き、「まずは無料トライアルからスタート」ボタンをクリックして下さい。
    01

アカウント登録画面が表示されますので必要な情報を記入し、登録をお願い致します。
アカウント作成に必要な情報は下記のとおりです。

情報 補足
名前 英語・日本語どちらでも登録可能です
英語・日本語どちらでも登録可能です
電話番号 シチュエーションに合わせて登録してください
会社名 登録は必須ではありませんので、お好きに登録して下さい
国または地域 登録は必須ではありませんので、お好きに登録して下さい
Eメールアドレス ログインIDにもなります
パスワード ワーストランキングに載るパスワードはやめましょう
セキュリティのための質問 パスワードを忘れた際に聞かれる質問になります
セキュリティのための答え 同上

Raspberry Pi2 Bのセットアップ

Raspberry Pi2 B用OSのダウンロード

それでは早速Raspberry Piのセットアップを初めて行きたいと思います。
まず、下記URLにアクセス頂き、Raspberry Pi2 B用のOSイメージファイルをダウンロードします。
ダウンロードするOSは「RASPBIAN JESSIE」になります。(LITEではありません)
https://www.raspberrypi.org/downloads/
02

win32diskimagerのインストール

次はwin32diskimagerをダウンロードし、インストールを行います
win32diskimagerはラズパイのOSイメージファイルをマイクロSDカードに書き込むためのソフトです。
https://osdn.jp/projects/sfnet_win32diskimager/releases/
03

ダウンロードが完了したら「Win32DiskImager-0.X.X-install.exe」をクリックしてインストールを実施して下さい。

SDカードのフォーマット

マイクロSDカードをWindows7搭載PCへ接続した際にSDカードの最大サイズまで認識しない場合があります。
その場合はSD AssociationといったツールでSDカードをフォーマットしてから、Raspberry PiのOSイメージを書き込むことをおすすめします。
(SD Associationの場合、オプションは「イレースフォーマット」/「論理サイズ調整OFF」で設定して下さい)
07

マイクロSDカードへOSイメージファイルを書き込む

PCのSDカードスロット、もしくはUSB接続アダプタを介してマイクロSDカードとPCを接続して下さい。
接続が終わりましたら「Win32DiskImager」を起動して下さい。次に、先ほどダウンロードした「RASPBIAN JESSIE」のzipファイルを解凍を行います。
解凍完了後、Win32DiskImagerの画面に戻りウィンドウ右上のフォルダーマークをクリックし、「RASPBIAN JESSIE」のimgファイルを選択。
最後に「Write」ボタンをクリックし、マイクロSDカードに書き込みを実行して下さい。
05

Raspberry PiにマイクロSDカードをセットして起動

マイクロSDカードにOSの書込が終わりましたら、いよいよRaspberry Piの起動に移ります。
SDカードをRaspberry Piにセットします。
LANケーブルを自宅のルーター(筆者は家庭用NEC製ルーター)とRaspberry Piに接続マイクロUSBをRaspberry Pi接続し、コンセントに接続したACアダプタと接続するとRaspberry Piが起動します。
(Raspberry Pi自体には電源スイッチ等はついておりません)
IMG_0019

Raspberry Piへ接続

Raspberry Piは標準でSSHプロセスが起動するようになっております。
そのため、Raspberry Piに割振られたIPアドレスが把握出来れば、SSH接続する事が可能です。
筆者はNEC製のルーターを使用しているためブラウザから「http://192.168.0.1/」に接続する事でルーターの管理画面へログインすることができ、何番のIPアドレスが振られた確認する事が出来ました。
今回は「192.168.0.10」が自動的に割振られている事が確認出来ました。
WS000003

それでは早速、Raspberry Piにログインしてみたいと思います。
今回は、ターミナルエミュレータとしてTeraTermを利用します。
まず、TeraTermを起動後、以下の画像のように各種設定し、OKボタンをクリックします。

WS000000

初回接続の場合、以下の様な警告画面が出力されますが気にせず続行をクリックして下さい。

WS000001

SSH認証画面ではログインIDとパスワードを入力し、「OK」ボタンをクリックします。
IDは「pi」、初期パスワードは「raspberry」です。

WS000002

無事接続出来ると以下の様な画面が出力されます。
おめでとうございます。

WS000004

Raspberry Piの初期セットアップ

最低限以下のセットアップを行います。
* 初期パスワード変更
* ファイルシステムの拡張とアップデート&アップグレード

初期パスワード変更

piユーザとrootユーザパスワードを変更する場合はRaspberry Piのコマンドプロンプトで以下のコマンドを実行します。

○piユーザ

pi@raspberrypi:~ $ passwd
Changing password for pi.
(current) UNIX password:
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

○rootユーザ

pi@raspberrypi:~ $ sudo passwd
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

ファイルシステムの拡張とアップデート&アップグレード

Raspberry Piのアップデートとアップグレードをおこないますが
その前にファイルシステムをよくよく確認してみると。。。。。
ファイルシステムがフルサイズで認識していないことがわかります。

WS000003

そこで、最初にファイルシステムの拡張から始めたいと思います。
以下のコマンドを実行して下さい。

sudo raspi-config


以下の管理画面が表示されたら
WS000000

「1.Expand Filesystem」にマークを合わせEnterボタンを押下して下さい。しばらくすると、以下の画面が表示され自動的にファイルシステムの最適化が行われます。
WS000001

更にEnterを押下し、「Finish」にマークを合わせた後、再度Enterを押下すると以下の画像のように再起動を求められますので、再起動を実施して下さい。
0001

再起動後、Raspberry Piにログイン。
ファイルシステムが拡張されている事を確認して下さい。
0001

次に、Raspberry Piのアップデートとアップグレードを行います。
下記のコマンドを実行して下さい。
(約40~50分ぐらいかかります)

sudo apt-get update
sudo apt-get upgrade
sudo reboot

再起動完了後、さらに以下のコマンドを続けて実行して下さい。

sudo rpi-update
sudo reboot

以上で、アップデート&アップグレードは終了です。
お疲れ様でした。

無線LANのセットアップ

今回は無線LAN子機としてELECOM製WDC-150SU2MBKのセットアップとiPhoneのテザリングでの接続方法を記載したいと思います。

無線LAN子機(ELECOM製WDC-150SU2MBK)をRaspberry Piに接続後
image1

以下のコマンドを実行し無線LAN子機が正しく認識されているか確認して下さい。
(Elecom Co., Ltdと表示されていればOKです)

pi@raspberrypi:~
$ lsusb
Bus 001 Device 004: ID 056e:4008 Elecom Co., Ltd
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

次に無線LANのSSIDと接続用パスワードをRaspberry Piにセットアップします。
以下(sudo wpa_passphrase Your_SSID Your_PASS)のコマンドを実行して下さい。
(Your_SSIDとYour_PASSは自宅の無線LANルーターを確認して下さい)

pi@raspberrypi:~
$ sudo wpa_passphrase Your_SSID Your_PASS
network={
ssid="Your_SSID"
#psk="Your_PASS"
psk=XXXXX
}

同様の手順でiPhoneのテザリング用wifiも指定して実行して下さい
(SSIDに空白が含まれている場合は””で囲みましょう)

pi@raspberrypi:~
$ sudo wpa_passphrase "iPhone_SSID" "iPhone_PASS"
network={
ssid="iPhone_SSID"
#psk="iPhone_PASS"
psk=XXXXX
}

上記コマンドから得られた実行結果を「/etc/wpa_supplicant/wpa_supplicant.conf」に記載します。

pi@raspberrypi:~
$ ls -l /etc/wpa_supplicant/wpa_supplicant.conf
-rw------- 1 root root 83 Mar 18 08:10 /etc/wpa_supplicant/wpa_supplicant.conf
pi@raspberrypi:~
$ sudo vi /etc/wpa_supplicant/wpa_supplicant.conf

「wpa_supplicant.conf」は以下の様な設定が追加されます。

country=GB
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={ #←追記箇所
ssid="iPhone_SSID"  #←追記箇所
#psk="iPhone_PASS" #←追記箇所
psk=XXXXX #←追記箇所
key_mgmt=WPA-PSK #←追記箇所
proto=WPA2 #←追記箇所
priority=1 #←追記箇所
}
network={ #←追記箇所
ssid="iPhone_SSID" #←追記箇所
#psk="iPhone_PASS" #←追記箇所
psk=XXXXX #←追記箇所
key_mgmt=WPA-PSK #←追記箇所
proto=WPA2 #←追記箇所
priority=2 #←追記箇所
}

続いて「/etc/network/interfaces」の設定値を変更します。

pi@raspberrypi:~
$ ls -l /etc/network/interfaces
-rw-r--r-- 1 root root 523 Mar 18 08:16 /etc/network/interfaces
pi@raspberrypi:~
$ sudo vi /etc/network/interfaces

「/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 eth0 inet manual

auto wlan0 #←追加箇所
allow-hotplug wlan0
iface wlan0 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

allow-hotplug wlan1
iface wlan1 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

設定が完了したら、Raspberry Piを停止後、LANケーブルを抜線。再度、Raspberry Piを起動します。
ルーターから割当てられたIPアドレスを確認しTeraTermからRaspberry PiにSSH接続出来れば完了です。

以上で「DHT11+Raspberry Pi+BluemixでIoTを体験 準備編」終了となります。
お疲れ様でした。

次回は、実際にDHT11を使って温度・湿度情報をRaspberry Pi上に表示されるまでを行いたいと思います。