常時稼働中のラズパイで、Node.jsを使ってディスプレイのON/OFFを制御します。ディスプレイを見ることがない夜間は電源OFFにするなど、節電に利用できます。
開発環境
Raspberry Pi 3 Model B+
OS:raspbian 10.7
Node.js 10.21.0
Node.js モジュール
シェルコマンドでディスプレイ制御
ラズパイのディスプレイは、シェルコマンドでON/OFFを切り替えられます。
ディスプレイON
1 |
tvservice -p && fbset -depth 8 && fbset -depth 32 && xrefresh -d :0.0 |
ティスプレイOFF
1 |
tvservice -o |
シェルコマンドをNode.jsから実行できれば、任意のタイミングでディスプレイのON/OFFを切り替えられるようになります。
シェルコマンドをNode.jsで実行
child_processモジュールを使うことで、Node.jsからディスプレイ制御ができるようになります。
ディスプレイの電源をOFFにして、3秒後にONにするコードは下記です。
1 2 3 4 5 6 7 8 9 |
const execSync = require('child_process').execSync; execSync('tvservice -o').toString(); function displayON() { execSync('tvservice -p && fbset -depth 8 && fbset -depth 32 && xrefresh -d :0.0').toString(); } setTimeout(displayON, 3000); |
これで動作確認ができると思います。
実用では、Node Cronを使って〇時にディスプレイONや、光センサーで暗くなったらディスプレイOFFなど、タイマーやセンサーと組み合わせて使うと良いでしょう。