1.概要
1-1.本レシピで実現できること
本レシピでは、シングルボードコンピュータであるRaspberry PiをIoTデバイスとして利用するためのセットアップ方法を解説します。
まず最初にRaspberry Pi本体をセットアップした後、Things Cloudに任意のデータを送信できるようにするため、ノーコードツールであるNode-REDをインストールしします。
さらに、Things Cloudにアクセスするデバイスの認証情報を作成することで、Things Cloudにデータを送信するデバイスの準備を一通り完了することができます。
1-2.所要時間
約50分
1-3.所要費用
約12,500円(デバイス購⼊の初期費⽤)
1-4.使用するサービス
1-5.準備する物
ハードウェア
品名 | 数量 | 価格 | 備考 |
---|---|---|---|
Raspberry Pi (3以降のModel B) | 1 | 約 10,000円 | 今回はRaspberry Pi 4 Model Bを使⽤ |
microSDカード | 1 | 約 1,000円 | 16GB以上のものを推奨 |
microSDカードリーダー | 1 | 約 500円 | ― |
Raspberry Pi ⽤電源アダプター | 1 | 約 1,000円 | 5V 2A以上のものを推奨 |
PC | 1 | ― | Windows PC もしくは Macを推奨 |
※⾦額はレシピ作成の参考価格となります。
1-6.利⽤するデバイス/ソフトウェアについて
ハードウェア
Raspberry Pi
Raspberry Pi とは、シングルボードコンピューターと呼ばれる⼩さなハードウェアです。元々は教育⽤途で開発されたものでしたが、IoTの概念の普及に⽐例してより注⽬されるようになり、今では多くのエンジニアに愛⽤され、さまざまな⽤途に利⽤されています。
Raspberry Pi はSDカードからOSを起動して、PCと同じように使⽤することができます。さらに、さまざまなプログラミング⾔語をサポートしており、⾃由にプログラムを動かすことができるだけでなく、センサーなどを多数取り付けることで、そのデータを利⽤するなどの使い⽅もされています。
今回は、これをIoTデバイスに⾒⽴て、アラームを送信するデバイスとして利⽤します。
ソフトウェア
Node-RED
Node-REDとは、ノーコードプログラミング開発ツールの1つです。つまり、0からプログラムを⾏う必要はなく、ハードウェアやAPIなどについて、処理ブロックをつなげるような形で簡単な構築を⾏うことができ、その使いやすさからIoT分野で活⽤されるケースも多いです。Node-REDは、プログラミングが必要ないので、プログラミングの知識があまりない⽅でも簡単に利⽤することができます。
2.作業の流れ
2-1.Raspberry Pi のセットアップ
さっそく、IoTデバイスとして使用するRaspberry Piのセットアップ方法を解説します。
1) Raspberry Pi Imager のインストール
2) SD カードの準備
3) Raspberry Pi の起動と初期設定
すでにセットアップ済みのRaspberry Piがある場合、そちらを利用することも可能です。その場合は、Node-REDのインストールとデバイス認証情報の作成のみを行ってください。
Raspberry Pi Imager のインストール
Raspberry Piを動作させるためには、OSを書き込んだSDカードを準備する必要があります。SDカードの作成には、Raspberry Pi Imagerを利用するのが一番簡単です。
Raspberry Pi Imagerのダウンロードページを開き、自身のOSに合わせたファイルをダウンロードしインストールします。
SDカードにOSをインストール
1) 汎⽤のSDカードリーダーなどを利⽤して、SDカードをPCに接続します。
2) Raspberry Pi Imagerを起動します。
3) [Rspberry Piデバイス]から、自身が使用しているRaspberry Piのモデルを選択します。
4) [ストレージ]から、OSをインストールするSDカードを選択します。
5) [OS]から[Raspberry Pi OS (64-bit)]を選択します。
6) [次へ]を選択する
7) 以下の画面が出てきたら、[設定を編集する]を選択します。
8) [一般]タブでは、以下の設定を入力します。
- ホスト名:任意のホスト名を入力
- ユーザー名/パスワード:Raspberry Piにログインするためのユーザー名/パスワードを入力
- Wi-Fi:Wi-FiアクセスポイントのSSIDとパスワードを入力
- ロケール:タイムゾーン(Asia/Tokyo)とキーボード(jp)を設定
9) [サービス]タブで以下の設定を⼊⼒したら、保存を選択します。
- [SSHを有効にする]にチェックを付けます
- [パスワード認証を有効にする]を選択します
10) 全ての設定が完了したら、[はい]を選択します。
- [SSHを有効にする]にチェックを付けます
- [パスワード認証を有効にする]を選択します
Mac OSを利用している場合に画像のような警告が出てきたら、端末のパスワードを入力してください。
※SDカード内の全データが削除されます。操作対象が間違っていないことをよく確認してください。
11) この画⾯が表⽰されたら、OSのインストールが完了です。
Raspberry Pi の起動と初期設定
Raspberry Pi の起動
OSの書き込みが完了したら、micro SDカードをRaspberry Pi 本体に挿⼊します。
SSH接続の設定
Raspberry Pi の起動
Raspberry Piの設定を行うために、SSH接続を行います。
-
Windows の場合
スタートメニューから「コマンドプロンプト」を起動します。 -
macOS の場合
[Finder]>[アプリケーション]>[ユーティリティ]>[ターミナル]を起動します。
コマンドプロンプトもしくはターミナルで、以下のように入力して実行します。
- user は、Raspberry Pi Imagerで設定したユーザー名を入力します。
- things-raspiは、Raspberry Pi Imagerで設定したホスト名です。
ssh user@things-raspi.local
- Are you sure you want to continue connecting (yes/no)?との問いには yes と入力します。
- 初期パスワードはRaspberry Pi Imagerを使って設定したものを用います。
- SSHでログインするには、Raspberry PiとPCが同じネットワーク(Wi-Fi)に接続されている必要があります。
以下のようになればログイン成功です。
OS の最新化
Raspberry Pi へ SSH でログインしたあと、念のためRaspberry Pi のOSアップデートを実⾏します。
以下のコマンドを1⾏ずつ実⾏してください。(最後にRaspberry Pi が再起動されます。)
sudo apt update && sudo apt upgrade -y
sudo reboot
2-2.Node-REDの導⼊
Node-REDのインストール
Raspberry Pi にNode-REDをインストールします。前の⼿順を参考に、Raspberry Pi にSSHで接続し、以下のコマンドを実⾏します。
※Node-RED公式のインストールスクリプトを利⽤しています。
bash
<
(
curl
-sLhttps://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered
)
- 途中で
Are you really sure you want to do this ? [y/N] ?
と表⽰されたら、「Y」を⼊⼒してEnter(Retrun)キーを押します。 - 途中で
Would you like to install the Pi-specific nodes ? [y/N] ?
と表⽰されたら、「Y」を⼊⼒してEnter(Retrun)キーを押します。 Node-RED Settings File initialisation
と表⽰されたら、以下の画像を参考に設定値を⼊⼒してください。(user/password以外は、基本的に全てデフォルト値を⽤います。デフォルト値の場合は、Enter(Retrun)キーをそのまま押します。)
しばらく待ち、 .Settings file written to /home/user/.node-red/settings.js.
と表⽰されたらインストールは完了です。
Node-REDの⾃動起動設定
Raspberry Pi 起動時に、Node-REDを⾃動起動するための設定を⾏います。以下のコマンドを実⾏してください。
sudo systemctl enable nodered.service
設定が完了したら、以下のコマンドを実⾏してRaspberry Piを再起動します。
sudo reboot
Node-REDの起動確認
Raspberry Pi が起動したら、⾃⾝のPCのブラウザから以下のURLにアクセスしてNode-REDのフローエディタを開きます。
http://things-raspi.local:1880
- Raspberry Pi とPCが同じネットワークに接続されていることを確認してください。
- things-raspi の部分は、Raspberry Pi Imagerで設定したホスト名に置き換えてください。
以下のログイン画⾯が表⽰されたら、インストール時に指定したユーザー名とパスワードを⼊⼒してログインします。
以下のフロー画面が表示されたら成功です。これでNode-REDを利用する準備は完了です。
2-3.デバイス⽤の認証情報を作成
デバイスからThings Cloudにデータを送信するためには、デバイス⽤の認証情報を作成する必要があります。以下の⼿順でデバイス認証情報(デバイスユーザー)を作成します。
今回ご紹介するのは、手動でデバイス認証情報(デバイスユーザー)を作成する方法です。Things Cloudには、デバイスからリクエストを送信し、自動でデバイス認証情報を作成するAPIも用意されています。詳しくは
こちらをご参照ください。
※ デバイスから自動的に認証情報を作成する場合は、対応したデバイスエージェントの利用もしくは開発が必要です。
1) ご⾃⾝のThings Cloudのテナントにアクセスし、ユーザー名とパスワードを⼊⼒してログインを⾏います。
2) ログインに成功したら、以下のような画面が表示されます。右上のアプリケーションスイッチャー をクリックし、「管理」アプリを開きます。
3) 画面左側のメニューから「ユーザー」を選択し、ユーザー一覧画面に遷移します。遷移後、画面右上の「ユーザーを追加」をクリックします。
4) ユーザー作成画面が表示されます。以下の情報を入力し、「保存」をクリックします。
項目 | 説明 | 備考 |
---|---|---|
ユーザー名 | "device_"から始まる任意のユーザー名を入力 | 必ず頭に"device_"をつけてください |
パスワード | 任意のパスワードを入力 | 「パスワード リセットのリンクを Eメールで送信」のチェックを外して入力を行います |
Eメール | 任意のメールアドレスを入力してください | 他のユーザーと同じメールアドレスを設定することはできません。ダミーのメールアドレスの利用も可能です。 |
グローバルロール | 「devices」のみを選択 | デバイスには必要な権限のみを付与してください |
5) 作成が完了すると先ほどのユーザ一覧画面に戻りますが、今作成したデバイスユーザーはここには表示されません。そのまま右上のアプリケーションスイッチャー をクリックし、「デバイス管理」アプリを開きます。
6) デバイス管理アプリに遷移したら、画面左側のメニューから「管理」ー> 「デバイス資格情報」を選択し、デバイス資格情報の一覧画面に遷移します。一覧画面には、先ほど作成したデバイスユーザーが表示されています。
正しいユーザー名およびグローバルロールが設定されていることを確認してください。
以上でデバイスが利用する認証情報の準備は完了です。
以後、IoTデバイスからデータを送信する際には、今設定を行った認証情報を利用することで、Things Cloudにアクセスが可能となり、データを送信することができます。
作成した認証情報の使い方は、データの送信を解説している他レシピを参照してください。
3.最後に
これで、Raspberry Pi をIoTデバイスとして利⽤するためのセットアップが完了しました。
また、今回セットアップ時に導⼊したNode-REDを利⽤することで、プログラミングの知識がない⽅でも簡単にThings Cloudにデータを送ることが可能となり、データ送信に必要な認証情報のセットアップも完了です。
さっそく、セットアップしたIoTデバイスからThings Cloudにデータを送信してみましょう。データの送信⽅法については、以下の記事で詳しく紹介しています。