Skip to content

DNET_NodeREDOnRaspbian

nishi_74322014 edited this page Sep 11, 2026 · 1 revision

Node-RED On Rasbian

概要

Rasbian上に、イケてるNode-RED環境を構築する。

詳細

インストール

既定でインストールされている。

疎通

起動

  • 通常起動

    $ node-red
    
  • 使用するメモリを指定して起動

    $ node-red-pi --max-old-space-size=256
    

接続

http://{ラズパイのIPアドレス}:1880/

Lチカ

Apple Piを使うので、GPIO 6を使う。

[
  {
    "id": "b04f4d8.27109b",
    "type": "tab",
    "label": "フロー 1",
    "disabled": false,
    "info": ""
  },
  {
    "id": "af2680ad.55fbc",
    "type": "trigger",
    "z": "b04f4d8.27109b",
    "op1": "1",
    "op2": "0",
    "op1type": "str",
    "op2type": "str",
    "duration": "1000",
    "extend": false,
    "units": "ms",
    "reset": "",
    "bytopic": "all",
    "name": "",
    "x": 380,
    "y": 100,
    "wires": [
      [
        "9f2430cd.ca7c2"
      ]
    ]
  },
  {
    "id": "9f2430cd.ca7c2",
    "type": "rpi-gpio out",
    "z": "b04f4d8.27109b",
    "name": "",
    "pin": "31",
    "set": "",
    "level": "0",
    "freq": "",
    "out": "out",
    "x": 580,
    "y": 100,
    "wires": []
  },
  {
    "id": "a08e5a7f.768288",
    "type": "inject",
    "z": "b04f4d8.27109b",
    "name": "",
    "topic": "",
    "payload": "1",
    "payloadType": "num",
    "repeat": "2",
    "crontab": "",
    "once": false,
    "onceDelay": 0.1,
    "x": 190,
    "y": 100,
    "wires": [
      [
        "af2680ad.55fbc"
      ]
    ]
  }
]

LCD

(元 Wiki では見出しのみで本文が無い。)

センサー

(元 Wiki では見出しのみで本文が無い。)

自動起動

サービス

  • 自動機能の有効化

    sudo systemctl enable nodered.service
    
  • 自動機能の無効化

    sudo systemctl disable nodered.service
    

コンテナ

サービスの自動起動を設定し、
コンテナ側も自動起動(Docker On Rasbianの「自動起動(コンテナ)」の該当節を参照)を設定する。

On Docker

(Node-RED On Docker On Rasbian)

通常通り起動する。

  • DockerコンテナのNode-REDを動かす。

    • arm32v7のタグを指定する。

    • 永続化のためにホストディレクトリを利用

      $ docker run -it -p 1880:1880 -v /home/pi/.node-red:/data nodered/node-red:1.2.0-10-arm32v6
      ...
      docker ps
      CONTAINER ID   IMAGE                               COMMAND                  CREATED              STATUS                        PORTS                    NAMES
      b974561552fb   nodered/node-red:1.2.0-10-arm32v6   "npm start --cache /…"   About a minute ago   Up About a minute (healthy)   0.0.0.0:1880->1880/tcp   nostalgic_saha
      

      サービスとして自動起動するように設定済み。

  • 再び接続する。

    http://{ラズパイのIPアドレス}:1880/
    
  • ラズパイ専用ノードが存在しないことを確認できる。

コンテナでLチカを実行

  • Deviceアクセスを有効化して起動(Docker On Rasbianの「Deviceアクセス」の該当節を参照)

    docker run -it -p 1880:1880 -v /home/pi/.node-red:/data --device /dev/gpiomem --privileged nodered/node-red:1.2.0-10-arm32v6
    
  • ラズパイ専用ノードが存在しないので、
    メニューのパレットの管理から、
    node-red-node-pi-gpioをインストールする。

  • Lチカを作成してデプロイする。

  • dataフォルダの中身を配布用に保存しておく。

  • ...光らない。

  • node-red-node-pi-gpiodに変更してみる。

  • ...光らない。

※ .NET Core On Docker On Rasbianでは無事動作(.NET Core On Rasbianの該当節を参照)。

事前にインストールしておく

以下、未検証の内容。

  • ラズパイ専用ノードをインストールして、Dockerビルドしてイメージを生成する
    Node-REDの「コンテナ」の該当節を参照)

    • Dockerfile

      FROM nodered/node-red:1.2.0-10-arm32v6
      
      RUN mkdir -p $HOME/.node-red
      RUN cd $HOME/.node-red
      RUN npm install node-red-node-pi-gpiod

      ※ ラズパイ専用ノードを動かすため、追加インストールを行っている。

    • ビルド

      $ docker build -t nodered-sample:p1 .
      
  • 再びコンテナを起動
    Deviceアクセスを有効化し(Docker On Rasbianの「Deviceアクセス」の該当節を参照)、ヘッドレスで実行する。

    docker run -d -p 1880:1880 -v /home/pi/.node-red:/data --device /dev/gpiomem --privileged nodered-sample:p1
    
  • コンテナをDocker HubにPushし、
    別デバイスにdataフォルダを配置して起動...なども出来そう。

参考

Node-RED日本ユーザ会

Qiita

移行メモ

  • Dockerfile の RUN npm node-red-node-pi-gpiod は サブコマンドが欠落していたため RUN npm install node-red-node-pi-gpiod とした。
  • マイクロソフト系技術情報 Wiki(techinfoofmicrosofttech.osscons.jp)への URL リンクは、移行済みの .NET Core On Rasbian に張り替えた。
  • 本文の無い見出し(「LCD」「センサー」)は、その旨を明示した。
  • PukiWiki のページ内アンカ(#xxxxxxxx)は GitHub Wiki では再現できないため、 同一ページ内のアンカは見出しから生成されるアンカに張り替え、 他ページのアンカを指すリンクは「〜(ページ名 の該当節を参照)」の形に置き換えた。

Tags: 移行, Node-RED, Raspbian, Raspberry Pi, Docker, GPIO, Lチカ, Apple Pi

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally