【IoT入門】Raspberry Pi 入門

前回はIoT入門ということで、Internet of ThingsについてやIoTでよく使うものを紹介しました。

今回は実際に手を動かしてIoTデバイスをセットアップし、プログラムが動かせる環境を作るところまで紹介したいと思います。下記では準備物を2種類のパッケージに分けて紹介します。理由は後述します。

準備物

通常版:
1.Raspberry Pi 3 Model B
2.Raspberry Pi電源用 USB-microUSB ケーブル
3.microSDカード
4.USB接続キーボード
5.HDMI接続が可能なディスプレイ

省略版:
1.Raspberry Pi 3 Model B
2.Raspberry Pi電源用 USB-microUSB ケーブル
3.microSDカード

通常版とは

通常はRaspberry Piのようなシングルボードコンピューター(以下、SBCと記載)にディスプレイやキーボードを接続し、パソコンと同じようにセットアップします。これにより、CLIに不慣れな人でもSBCを一般的コンピューターを扱う延長でSBCのセットアップや開発を行うことができます。

省略版とは

SBCを使うたびにケーブルを抜き挿ししたり、各種設定をすることはとても手間がかかるので、初期化ツールを使いIPやSSHなどの基本的な設定を一括でしてしまう場合の準備物です。SBCの使い道は一般的なコンピューターとしての使い道だけでなく、組み込み用途として扱うことも多い為、作業項目を減らす為に省略版を用意しています。

実際はこんな感じです。

今回は時間と物を節約し、パッとお試ししていただくために省略版で進めます。

IoTitを使う

IoTitのインストール

オープンソースソフトのIoTitを使えば、前節で説明したようにIPやSSHなどの基本的な設定をOSの準備と共に一括で出来ます。

まずはIoTitをお手元のPC(以降ローカルPCと表記)にインストールしましょう。

IoTitのページのREADMEに従いインストールします。
中段くらいに「REQUIREMENTS」とあるので、VirtualBoxとVirtualBoxのExtension Packをインストールします。
go言語はIoTitをソースからコンパイルする場合に必要らしいので、今回は入れません。

必要な物をインストール

VirtualBoxはOracle VM VirtualBoxのページからダウンロードし、インストールしてください。
インストールが終わったら、VirtualBoxのExtension Packもインストールしてください。

本体インストール

REQUIREMENTSのインストールが終わったら、「INSTALLATION」に従い、Macをご使用の方は下記コマンドを実行しIoTitをインストールします。

<strong>brew tap xshellinc/iotit && brew install iotit</strong>

Xcodeのライセンスに同意を促すポップアップが出るかも知れませんが、そのまま同意して進めてください。

WindowsやLinuxの方はIoTitのバイナリリリースページからバイナリファイル(実行ファイル)をダウンロードし、解凍するのがオススメです。

microSDカードの準備

準備物にあるように、Raspberry Piを動かすにはmicroSDカードが必要です。
このmicroSDカードにRaspberry Pi用のOS「ラズビアン」をIoTitを使って書き込みます。
IoTitを使うとmicroSDカードは初期化されてしまうので、事前にSDカード内のデータをバックアップする、もしくは削除しても構わないデータかどうかを確認して下さい。
準備ができたらmicroSDをIoTitがインストールされているPCに接続してください。
※IoTitでは初期化するメディアを最後に指定します。複数のメディアがPCに接続されている場合、IoTitで初期化するメディアを選択する際に混乱の元となります。USBメモリーなども接続されている場合は外し、microSD1枚だけにするのがオススメです。

IoTit(v0.4.2)の実行

インストールが完了したら、Macの方は

1
iotit

とコマンドが実行出来る状態になっています。

WindowsやLinuxの方はバイナリファイルがあるディレクトリで

1
./iotit

と実行することができます。

選択を間違えた場合や、途中で中断したくなった時はCtrl+cで中断できます。

実行すると最初にIoTitが対応しているSBCの一覧が表示されます。


1
2
3
4
5
6
7
8
9
10
[1] Raspberry Pi
[2] Espressif ESP
[3] Intel® Edison
[4] Nano Pi
[5] Beaglebone
[6] Toradex Colibri iMX6
[7] ASUS Tinker Board
[8] DragonBoard 410c
[9] Custom board
[?] Select device type:

今回はRaspberry Piなので”1″を入力します。
入力後にRaspberry PiのどのOSをインストールするか選択します。
Raspbian Liteはデスクトップ環境が無いバージョンで、Raspbian with PIXELはデスクトップ環境があるバージョンです。
今回はデスクトップを使う予定はないのでRaspbian Liteを使います。
“1”を入力します。


1
2
3
4
[+] Flashing Raspberry Pi
[1] Raspbian Lite
[2] Raspbian with PIXEL
[?] Please select an image:

virtual machine(以降VMと表記)の準備とOSイメージのダウンロードが始まります。
VMはファイルシステムのマウントなどを行い設定済みのOSイメージをmicroSDに焼き出すために使用されるそうです。


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[+] Using Raspbian Lite
[+] Checking virtual machine
[+] Unzipping iotit-box.zip 136.00 MiB / 136.00 MiB 100.00% 0s
[+] Done
[+] Registering iotit-box
[+] Done
[+] Using virtual machine
Name - iotit-box
Description -
[+] Starting: \
[+] Starting download Raspbian Lite
[+] Download 2017-11-29-raspbian-stretch-lite.zip 347.83 MiB / 347.83 MiB 100.00% 0s
[+] Uploading 2017-11-29-raspbian-stretch-lite.zip to virtual machine
[+] Extracting 2017-11-29-raspbian-stretch-lite.zip
[+] Configuring...

OSイメージのダウンロードが終了すると、今度は中身の設定に入ります。
最初に”configure your board?”と聞かれるので、OS側のIPやホストネームなどの設定が必要なら”yes”と入力します。
その後は、カメラを有効にするか?DNSを設定するか?ホストネームをどうするか?など、 Raspberry Piを使い始める時に決めた方が良い項目が対話形式で問われるので、適宜入力します。


1
2
3
4
5
6
[?] Would you like to configure your board? (y/yes, n/no): yes
[?] Would you like to enable camera interface? (y/yes, n/no): yes
[?] Add Google DNS as a secondary NameServer (y/yes, n/no): yes
[+] Default hostname: raspberrypi
[?] Do you want to change default hostname? (y/yes, n/no): yes
[?] New hostname: kawasaki-test

次にIPの設定が始まります。
最初に固定IPを設定するかと聞かれるので、必要であればyesと入力します。
次にどのネットワークインターフェースの設定をするか選択します。
eth0は有線LANで、wlan0は無線LAN(Wi-Fi)の設定です。
今回はwlan0の設定をするので[2] wlan0を選択しています。


1
2
3
4
5
[?] Would you like to assign static IP address for your device? (y/yes, n/no): yes
[+] Available network interface:
[1] eth0
[2] wlan0
[?] Please select a network interface: 2

ネットワークインターフェースを選択するとデフォルトの設定が表示され、”Change values?”と聞かれるのでyesと入力します。
あとは対話式にIPアドレスやゲートウェイのIPを入力していきます。

Raspberry Piをお使いのローカルPCと同じネットワークに接続させるため、PCのIPアドレスを調べます。

※Raspberry Pi 3 model BのWi-Fiは2.4GHzにしか対応していないので、Wi-Fi設定を正しくしたのに繋がらないという場合は、周波数帯のチェックをした方が良いです。

Macの方はデスクトップのメニューバーのリンゴアイコンから、「システム環境設定」->「ネットワーク」と進めば現在接続しているネットワークの設定を見ることができます。

Windowsの方は”スタートボタン”->”設定(歯車アイコン)”->”ネットワークとインターネット”->”ネットワークのプロパティを表示”



IPアドレスはローカルPCのIPの末尾の数字に10程度足した数など、2~254の間で適当に振って良いです。
IPアドレスを入力すると、入力されたIPを使用しているデバイスがないかどうかチェックが走ります。
ゲートウェイやネットマスク、DNSはローカルPCと同じにします。


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[+] ********NOTE: ADJUST THESE VALUES ACCORDING TO YOUR LOCAL NETWORK CONFIGURATION********
[+] Current values are:
[+] Address:192.168.0.254
[+] Gateway:192.168.0.1
[+] Netmask:255.255.255.0
[+] DNS:192.168.0.1
[?] Change values? (y/yes, n/no): yes
[?] IP address of the device: 192.168.2.100
[+] Validating IP address: 192.168.2.100
[+] Checking availability: \
[+] Using IP: 192.168.2.100
[?] Please enter your gateway: 192.168.2.1
[+] Validating IP address: 192.168.2.1
[?] Please enter your netmask: 255.255.255.0
[+] Validating IP address: 255.255.255.0
[?] Please enter your dns server: 192.168.2.1
[+] Validating IP address: 192.168.2.1
[+] wifi interface configuration was updated

問題が無ければキーボードの設定や言語設定、Wi-Fiの設定に進みます。
キーボードレイアウトや言語は基本的にそのまま(USキー設定)で良いと思います。(2018/03/30時点ではJISキーボード未対応のため)

次にSSHサーバーを有効にするかどうか聞かれるので、”yes”にすることを強くオススメします。
Wi-Fiも設定するかどうか聞かれるので、これも設定することを強くオススメします。


1
2
3
4
5
6
7
8
9
[+] Default keyboard layout: us
[?] Change default keyboard layout? (y/yes, n/no): no
[+] Default language: en_US.UTF-8
[?] Change default language? (y/yes, n/no): no
[?] Would you like to enable SSH server? (y/yes, n/no): yes
[+] Enabled SSH server.
[?] Would you like to configure your Wi-Fi? (y/yes, n/no): yes
[?] WIFI SSID name: WiFitest
[?] WIFI password: *********

設定に間違いが無いかどうかの確認(Proceed to image flashing?)があるので、問題が無ければyesと入力します。
次に、どのmicroSDに書き込むか問われます(Available mounts)。
1枚しか接続されていない場合は”1″を入力します。
2つ以上表示された場合は、どちらが初期化してよいメディアか分からないので、一旦Ctrl+cを入力してIoTitを中断し、初期化しないメディアを取り外して最初からやり直した方が安全です。
最後に書き込みするかどうかの確認(Are you sure?)に”yes”と答え、PCの管理者アカウントのパスワードを入力します。


1
2
3
4
5
6
7
8
9
10
11
[+] Image configured
[?] Proceed to image flashing? (y/yes, n/no): yes
[+] Copying files: \
[+] Listing available disks...
[+] Available mounts:
[1] SD Card Reader - /dev/disk2
[?] Select mount to format: 1
[?] Are you sure? (y/yes, n/no): yes
[+] Writing /var/folders/r_/_j1p3bhn5p19cht9tftjll5w0000gp/T/2017-11-29-raspbian-stretch-lite.img to /dev/disk2
[+] You may need to enter your OS X user password
[+] Enter Password: ***************

10分程度書き込み作業に時間が掛かります。
書き込みが終わったら、IoTitのアスキーアートが表示され、下記のようにsshログインする際のユーザー名とパスワードが表示されます。

1
ssh username: pi password: raspberry

書き込みが終わったら

microSDを取り出しますが、USBメモリーを取り出すように、マウントされているデバイスをアンマウントしてから取り出します。
取り出し方はUSBメモリーと同じです。お好きな方法でどうぞ。
ターミナルに慣れている方はアンマウントコマンドを使うのが早いです。

Macの方
・デスクトップにマウントされているデバイスのアイコンを右クリックし”取り出す”を選択

・Finderのデバイス一覧にマウントされているデバイスがあるので、取り出し記号をクリック

Windowsの方
・タスクバーからmicroSDを取り出す

起動!

取り出したmicroSDをRaspberry Piの裏面のmicroSDスロットに挿し込みます。

挿し込んだらmicroUSB電源ケーブルをRaspberry Piに繋ぎます。microUSBコネクタは1ヶ所しかないのですぐに分かると思います。

20~30秒ほど待ったら下記コマンドでssh接続を試します。


1
ssh pi@設定したIP

初期パスワードは”raspberry”です。

1
passwd

コマンドを実行すると初期パスワードを変更できます。セキュリティのために必ず行いましょう。

起動した後の世界

IoTデバイスのセットアップが済んだら、この後はデバイス上で動作するプログラムを作ったり、デバイスにモーターやカメラを付けて動かしたり、デバイスで集めたデータをクラウドに送信して解析したりといったことが出来るようになります。

IoTデバイスは1台でも十分使えるツールですが、複数使って様々な場所のデータを集めたり、デバイス同士を連携したりといった使い方が出来るようになればより世界が広がると思います。
しかし、デバイスが複数になった途端、メンテナンスや管理コストが爆発的に増えます。
3台以上のデバイスに1台ずつログインしてメンテナンスするなんて、考えただけで辛いものです。
そういったメンテナンスや管理コストを抑えるサービスがisaaxです。
IoTitで何台ものデバイスを動かす準備ができたら、次はisaaxを使ってみることをオススメします。無料でお使いいただけます。
もしisaaxの使い方で困ったら、isaax campからご質問いただくか勉強会にご参加ください。

RaspberryPiを使った勉強会やハッカソンに参加したいと思ったら、XSHELLのブログRaspberry Piをネットワークから探す方法も是非参考にしてください。

本格的にRaspberry Piを使ってIoTの開発のノウハウを学びたい方は、有料の講座もご利用ください。
講座を受ける条件は以下のとおりです。

  • PC(Windows10, Mac OSX, Linux)を持っている
  • 最新ブラウザ(Google Chrome / Firefox / Safari)を使える
  • プログラミングの基礎知識がある

必要なハードウェアとサンプルコード・テキストが毎月届く isaax IoTエンジニア養成キット

最後に

これらのシングルボードコンピューターを用いたIoTソリューション開発を弊社では請け負っており、それらのIoTデバイスの管理サービスであるisaaxを提供しております。ID登録すれば無料ですぐにお試しいただけます。

IoTソリューションの開発では
〇〇で困っている。。。
〇〇なものを作れないか?
などのご相談から承っておりますので、お気軽にご連絡ください。

1 Comment

コメント