chakokuのブログ(rev4)

テック・コミック・DTM・・・ごくまれにチャリ

RPi + GPIO + Node-RED memo

Debian GNU/Linux 12 (bookworm)

nmcliによるIP固定化

sudo nmcli connection modify eth0 ipv4.addresses 192.168.10.100/24
sudo nmcli connection modify eth0 ipv4.gateway 192.168.10.1
sudo nmcli connection modify eth0 ipv4.dns 192.168.10.1,8.8.8.8
sudo nmcli connection modify eth0 ipv4.method manual

eth0がないと怒られる。nmcliでデバイス一覧を表示(UUID?は例)

$ nmcli connection show
NAME                UUID                                  TYPE      DEVICE
Wired connection 1  eaaaaadd-4999-3ddd-afff-cccccccccc1  ethernet  eth0
lo                  17788888-addd-4999-99999-09aaaaaaaaa0  loopback  lo

NameがWired connectionなので、これをeth0に変える必要があるらしい

ew00@raspberrypi:~ $ sudo nmcli connection modify eaaaaadd-4999-3ddd-afff-cccccccccc1 connection.id eth0
ew00@raspberrypi:~ $ nmcli connection show
NAME  UUID                                  TYPE      DEVICE
eth0  eaaaaadd-4999-3ddd-afff-cccccccccc1  ethernet  eth0
lo       *略*  loopback  lo

上記操作によりそろった。nmcliによる固定化コマンドを打つ、設定したいIPに変更された。記事書いてくれた人Thanks

RPi版?のDebian GNU/Linux 12 (bookworm)にはNode-REDが入ってないようなので、これを入れる必要あり。その前に、Node.jsが入っていないとか?

sudo apt install nodejs

ew00@raspberrypi:~ $ node --version
v20.14.0
ew00@raspberrypi:~ $ npm --version
10.7.0

今時はDockerなのかなと思いながら、、素で入れてみる

sudo npm install -g --unsafe-perm node-red
$ sudo npm install -g --unsafe-perm node-red
npm warn deprecated are-we-there-yet@2.0.0: This package is no longer supported.
npm warn deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
npm warn deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
npm warn deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
npm warn deprecated npmlog@5.0.1: This package is no longer supported.
npm warn deprecated gauge@3.0.2: This package is no longer supported.

added 303 packages in 50s

46 packages are looking for funding
  run `npm fund` for details
npm notice
npm notice New minor version of npm available! 10.7.0 -> 10.8.1
npm notice Changelog: https://github.com/npm/cli/releases/tag/v10.8.1
npm notice To update run: npm install -g npm@10.8.1
npm notice

$ sudo npm install -g npm@10.8.1

removed 2 packages, and changed 63 packages in 7s

24 packages are looking for funding
  run `npm fund` for details

ew00@raspberrypi:~ $ npm --version
10.8.1

履歴から見るとNode-REDが入ったようである。起動すると、Node-RED 3.1であった。
GPIOをたたきたいので、node-red-node-pi-gpio を加えておく。すんなりとGPIOを操作できたのは、、/etc/groupのgpioグループに自分のIDが追加されているおかげであった(pi相当の初期アカウントなので、adminレベルなのであった。)
ついでに、node-red-contrib-play-audio も入れてしゃべるようにする。

admin権限のユーザ以外の追加ユーザがNode-RED等からGPIOを操作するには、いろいろ対応が必要
node-redからGPIOをたたく上での設定

        sudo addgroup gpio
        sudo chown root:gpio /dev/gpiomem
        sudo adduser $USER gpio
        echo 'KERNEL=="gpiomem", NAME="%k", GROUP="gpio", MODE="0660"' | sudo tee /etc/udev/rules.d/45-gpio.rules
        sudo udevadm control --reload-rules && sudo udevadm trigger
st00     30954  0.0  0.0   4224  2604 pts/2    S    23:04   0:00 /bin/bash /usr/lib/node_modules/node-red-node-pi-gpio/nrgpio out 15 100
st00     30956  0.0  0.0   9072  5888 pts/2    S    23:04   0:00 python -u /usr/lib/node_modules/node-red-node-pi-gpio/nrgpio.py out 15 100


教材として使うための設定内容

  1. ユーザの追加
  2. IPの固定
  3. VNCの設定
  4. VNCへのユーザ追加
  5. GPIO操作権限への追加


Raspberry Pi:デフォルトユーザの名前を変える&VNCサーバの設定 - dnackのブログ
Raspberry Pi OS Desktop版 WiFi越しに画面転送してセットアップ (Headlessセットアップ) - みかんのゆるふわ技術ブログ
VNCでRaspberry Piにリモートデスクトップ接続 (Windows/Mac/Linux対応) – Indoor Corgi
Raspberry PiにVNCでリモートアクセスする #RaspberryPi - Qiita
固定IPアドレスを設定する方法(bookworm) | WordPressをRaspberryPi4で始める方法
【NetworkManager】IPアドレス設定で利用するnmcliコマンド一覧 | ほそぼそ話