電子工作のための Node-RED 活用ガイドブック

書籍の概要

この本の概要

Node-RED(ノードレッド)は,ハードウェアとそれを動かすためのソフトウェア,さらにインターネット上の各種サービスを簡単につなげるようにすることを目標に開発されたソフトウェアの道具です。ノードと呼ばれる箱で示されたハードウェアデバイスやAPI,クラウドサービスなどを線でつないでいくだけで開発でき,言語知識やコーディングは不要なので,ノンプログラマでもIoT アプリを楽に構築できます。また,ダッシュボード機能もあり,グラフなどを用いた美麗な表示画面やスマホでも操作できる操作画面も簡単に構築できます。
本書では,Node-REDの基本的な使い方や,グラフィカルな操作画面の作り方,Raspberry Pi上で動作するIoTガジェットの作り方,様々な制作例などを紹介します。

こんな方におすすめ

  • スマホやタブレットで遠隔操作できるガジェットを作ってみたい方
  • Raspberry PiでIoTガジェットを作ってみたい方

著者の一言

「はじめに」より

私自身,Node-REDという名前は以前からあちこちで見かけていたので知ってはいましたが,インターネットサービスをベースにした大きなアプリケーションを開発するためのツールという程度の認識で,頭のなかを素通りしていました。
確かにNode-REDはインターネットサービスとの接続が簡単にできるので,TwitterやDropBox,クラウドとの接続というようなネットワークサービスを使ったアプリケーションの例がたくさんあります。
さらに,もともとの開発元のIBMに,日立製作所の開発者がNode-REDの開発に参加したことで,本格的なプロセス制御や産業機器制御にも応用できるようになっていました。
日頃,筆者はPICマイコンをよく使っているのですが,その仲間の方々と情報交換会を不定期で開催しています。その中で,ある方がRaspberry PiとNode-REDを使ってリモコンカーを製作した例を紹介してくださいました。その製作例の説明を聞いていて,Node-REDをもっと電子工作に応用できるのではないかと思ったのがNode-REDを始めたきっかけです。
そんな目的ですから,本書では,もっとハードウェアを動かす方に注目して,電子工作を楽しむための道具としてNode-REDを活用する方法を紹介しています。
すべての製作例をRaspberry Piに簡単なハードウェアを追加するだけで完成できる内容としています。さらに,できるだけ既存のNode-REDのノードだけで完成させ,別にプログラムを作成する必要がないようにして,初心者でも本書を参考にして再現できる電子工作を目標としました。読者が自分でも試してみようという気になっていただければ幸いです。

目次

第1章 Raspberry PiとNode-REDの概要

1-1 Raspberry Piの概要

  • 1-1-1 Raspberry Pi とは
  • 1-1-2 ラズパイのモデル種類
  • 1-1-3 ラズパイ用ソフトウェア

1-2 Node-REDの概要

  • 1-2-1 Node-REDとは
  • 1-2-2 Node-REDの開発画面

第2章 基本プログラムのインストール

2-1 OSのインストールの準備

  • 2-1-1 必要な機材

2-2 OSのインストール

  • 2-2-1 インストーラの入手と実行(パソコン)
  • 2-2-2 OSのダウンロード(パソコン)
  • 2-2-3 機材の接続(ラズパイ)
  • 2-2-4 OSの実行(ラズパイ)

2-3 リモートデスクトップ接続

  • 2-3-1 リモートデスクトップ接続
  • 2-3-2 プログラムの更新

2-4 外部インターフェースの有効化

2-5 IPアドレスの固定化

  • 2-5-1 IP アドレスの固定化とは
  • 2-5-2 IP アドレス固定化の手順

第3章 とりあえずNode-REDを使ってみよう

3-1 ハードウェアの準備

  • 3-1-1 ラズパイの拡張ヘッダの使い方
  • 3-1-2 ハードウェアの製作

3-2 Node-REDの基礎

  • 3-2-1 Node-REDの起動停止方法
  • 3-2-2 Node-REDの開発用画面
  • 3-2-3 ノードとフロー

3-3 フローの作成方法

  • 3-3-1 実際の例でフロー作成
  • 3-3-2 LEDを点滅させるフロー作成

3-4 フローの保存と読み込み

  • 3-4-1 フローの保存
  • 3-4-2 フローの読み出し
  • 3-4-3 フローをコピーする方法
  • 3-4-4 ワークスペースのフローページの追加と削除

3-5 フローのデバッグとメッセージオブジェクト

  • 3-5-1 debugノード
  • 3-5-2 メッセージオブジェクトの詳細

3-6 基本ノードの解説

  • 3-6-1 Node-RED基本ノード

3-7 パレットの管理

  • 3-7-1 パレットの管理とは
  • 3-7-2 新規パレットの追加
  • 3-7-3 ノードの削除

第4章 Dashboardの使い方

4-1 Dashboardとは

  • 4-1-1 Dashboardは基本のGUI表示ツール
  • 4-1-2 ノード一覧
  • 4-1-3 UI 画面のグループとタブ

4-2 操作系ノードの使い方

  • 4-2-1 button ノードの使い方
  • 4-2-2 dropdownノードの使い方
  • 4-2-3 switch ノードの使い方
  • 4-2-4 slider ノードの使い方
  • 4-2-5 numericノードの使い方
  • 4-2-6 text input ノードの使い方
  • 4-2-7 date picker ノードの使い方
  • 4-2-8 colour picker ノードの使い方
  • 4-2-9 formノードの使い方

4-3 表示系ノードの使い方

  • 4-3-1 text ノードの使い方
  • 4-3-2 gaugeノードの使い方
  • 4-3-3 chartノードのデータ推移グラフの使い方97
  • 4-3-4 chart ノードの使い方
  • 4-3-5 audio out ノードの使い方
  • 4-3-6 notification ノードの使い方
  • 4-3-7 template ノードの使い方

4-4 レイアウト設定

  • 4-4-1 レイアウト設定とは
  • 4-4-2 レイアウト設定の具体例
  • 4-4-3 テーマで全体の色調の設定

4-5 スマホやタブレットでNode-REDを使う方法

  • 4-5-1 Node-REDのフローを実行する
  • 4-5-2 AndroidでNode-REDを実行する

第5章 実例によるノードの使い方

5-1 inject ノードの使い方

  • 5-1-1 inject ノードはトリガノード

5-2 csvノードの使い方

  • 5-2-1 CSVデータをJSON形式に変換する
  • 5-2-2 JSONデータをCSV形式に変換する

5-3 delayノードの使い方

  • 5-3-1 delay ノードでデータの間引き

5-4 switchノードの使い方

  • 5-4-1 switch ノードでデータ処理分岐

5-5 changeノードの使い方

  • 5-5-1 代入の使い方
  • 5-5-2 置換の使い方
  • 5-5-3 移動と削除

5-6 function ノードの使い方

  • 5-6-1 メッセージの組み立ての場合
  • 5-6-2 値の範囲の変更
  • 5-6-3 数値から文字列への変換
  • 5-6-4 グローバル変数の扱い

5-7 execノードの使い方

  • 5-7-1 execノードは外部プログラム呼出し

5-8 templateノードの使い方

  • 5-8-1 template ノードには2種類ある
  • 5-8-2 標準パレットのtemplate の使い方
  • 5-8-3 ダッシュボードのtemplate の使い方

5-9 MQTT関連ノードの使い方

  • 5-9-1 MQTTとは
  • 5-9-2 Node-REDでのMQTT

5-10 GPIOノードの使い方

  • 5-10-1 2つのGPIOパレット
  • 5-10-2 両者の差異

第6章 製作例によるNode-REDの使い方

6-1 インターネットラジオの製作

  • 6-1-1 インターネットラジオの全体構成
  • 6-1-2 ラズパイの準備
  • 6-1-3 フローの製作
  • 6-1-4 局リストの作成

6-2 リモートカメラの製作

  • 6-2-1 リモートカメラの概要と全体構成
  • 6-2-2 ハードウェアの製作
  • 6-2-3 ラズパイの準備
  • 6-2-4 フローの製作
  • 6-2-5 インターネットに公開する

6-3 メータ表示の温度計の製作

  • 6-3-1 メータ表示温度計の概要と全体構成
  • 6-3-2 ハードウェアの製作
  • 6-3-3 ラズパイの準備
  • 6-3-4 フローの製作

6-4 環境情報表示板の製作

  • 6-4-1 環境情報表示板の概要と全体構成
  • 6-4-2 ハードウェアの製作
  • 6-4-3 ラズパイの準備
  • 6-4-4 OpenWeatherMapへのサインイン
  • 6-4-5 フローの製作

6-5 リモコンカーの製作

  • 6-5-1 リモコンカーの概要と全体構成
  • 6-5-2 ハードウェアの製作
  • 6-5-3 ラズパイの準備
  • 6-5-4 フローの製作

6-6 データロガーの製作

  • 6-6-1 データロガーの概要と全体構成
  • 6-6-2 ハードウェアの製作
  • 6-6-3 ラズパイの準備
  • 6-6-4 フローの製作
  • 6-6-5 データ収集端末のハードウェアの製作
  • 6-6-6 データ収集端末のソフトウェアの製作

6-7 Alexa連携LEDディスプレイの製作

  • 6-7-1 Alexa連携LEDディスプレイの概要と全体構成
  • 6-7-2 ハードウェアの製作
  • 6-7-3 ラズパイの準備
  • 6-7-4 フローの製作

付録

付録A Linuxの基礎

  • A-1 Linux の構成
  • A-2 Linux の起動時の動作
  • A-3 カーネルの機能
  • A-4 Linux のディレクトリ構造とパスの概念
  • A-5 Linux の管理者権限

付録B Linuxの基本コマンド

  • B-1 ターミナルの起動とプロンプト
  • B-2 ディレクトリを扱うコマンド
  • B-3 システム制御コマンド
  • B-4 アプリケーションインストール関連コマンド
  • B-5 ターミナルの入力編集支援機能

付録C IFTTTのアプレットの作成

  • C-1 IFTTTのアプレットの作成の仕方
  • 索引

著者プロフィール

後閑哲也(ごかんてつや)

1947年 愛知県名古屋市で生まれる
1971年 東北大学 工学部 応用物理学科卒業
1996年 ホームページ「電子工作の実験室」を開設

子供のころからの電子工作の趣味の世界と,仕事としているコンピュータの世界を融合した遊びの世界を紹介
2003年 有限会社マイクロチップ・デザインラボ設立

著書 「PIC16F1ファミリ活用ガイドブック」 「電子工作の素」「PICと楽しむRaspberry Pi活用ガイドブック」「電子工作入門以前」「C言語によるPICプログラミング大全」「逆引き PIC電子工作 やりたいこと事典」など著書多数