1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ラズパイのCPU温度をAmbientに送ったりそれまでの環境構築など

Last updated at Posted at 2019-11-22

はじめに

ゼミ室のラズパイ(Volumio)がよく落ちているのでそれの原因突き止めるためにやってみました。
みんなで開発できやすいようにと、公開もできるように環境構築もやってみたのでメモです。

今回はまず原因突き止めのためにCPU温度のAmbientに送ってログをとってます。

環境

  • ラズパイ2B+ (Volumio ver2.668)
  • (ラズパイ内)node v8.11.1
  • (ラズパイ内)npm v5.6.0

最新のvolumioでもnodeのバージョンはv8ですのでこれからあえて変えずにいきます。

実装

概要

スクリーンショット 2019-11-22 15.34.55.png

ラズパイは前述したとおりなんかよく落ちるし、起動しなくなっちゃってOS再インストールなんてこともある。
ので、ラズパイだけにソースコードがあるのがよくないでした。(落ちなかったとしても怖いですよね)
さらにアプリ導入も簡単にしたかったでした。
本来ならばdockerなど環境そのままもっていきたいのですが、dockerを入れるところで躓いたのでそれはまた今度で...

keyファイルについて

https://www.rhoboro.com/2016/06/28/environment-variables.html
これのうちの「別ファイルに書き出し、そこから読み取る」でやってみました。
環境変数は犯したくないってのは思いますよね。
また、githubのプライベートリポジトリにしてもよかったのですが、あえてパブリックにしてオープンなゼミにしようという感じです。
ちなみに自分はすでに卒業して結構経ってます...

Githubで共有しています

ということでコードはオープンにgithubにあげています。
https://github.com/amaokalab/LabpiDev

オーガナイズなアカウントっぽいのでゼミ生で共同開発できるのもいいところですね。
使い方、実行方法もいちようreadmeに書いたあります。
簡素ですがこれでゼミ生全員がラズパイ復旧できるようにできたらなと思っています。

foreverについて

実行タイミング

CPUTempLog/send2AmbiInterval.js内から一部抜粋

async function main() {
  // 0分ちょうどだけ送りたい
  let nowTime = new Date();
  if (nowTime.getMinutes() != 0) {
    return;
  }

  ...
}

// 1分に一回だけ処理
setInterval(main, 60000);

foreverを使ったものってcronと違い「1時間毎」になってしまい「00分の時」にできなかったでしたが、このようにすることで同じように「00分の時」を実現しました。
そもそもvolumioにcronは最初からは入ってないですし...

ローカルにインストール

本来は

npm i -g forever

でグローバルにインストールするのが普通ですが、グローバルを犯さないということを徹底してみました。
foreverを同じように実行するにはプロジェクトフォルダ内にて

./node_modules/forever/bin/forever list

などで実行します。
逆に面倒ですかねぇ...

追記

ptxコマンドを使うとよさそうです
https://qiita.com/lambda_funtaro/items/865f178628a035acbe5a

再起動時

sudo nano /etc/rc.local

ちなみにvolumioにはviも入っていないのでnanoで

cd /home/volumio/LabpiDev
npm run cpuForever

exit 0

こんな感じに書きました。
グローバルを犯しました。残念...

これで実行されるとsudoで実行したことになるので、foreverのlistを見たいときもsudoをつけます。

sudo ./node_modules/forever/bin/forever list

これも結局グローバルにインストールすべきかもなぁ...

ゼミ生はこれで使えるようになったのか

これから見ていきたいです。
肝は

  • keyファイル
  • Ambientのキー類の入力
  • 再起動時の設定

今度は、UPSやモバイルバッテリーを使ったりして対策するのが普通ですね。

1
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?