Raspberry Pi 3でリグ管理(温度計編)

先日、マイニングハウスとなる空き家の老朽化したコンセントを新調するため、電気工事屋さんに来てもらいました。

50Aの電力契約で安全に稼働できるようにと伝えて見積りしてもらったところ、ブレーカーやコンセント交換、作業費用で約10万円でした。今週中に作業可能とのことなので、意外と早く完成するかもしれません!

あとリグの管理をどうするかについてですが、マイニングハウス用にVPNルータを用意しましたので、基本的には自宅PCからVPNでマイニングハウスに接続する想定です。

[amazonjs asin=”B06XJC3CXG” locale=”JP” title=”BUFFALO 無線LAN親機 11ac/n/a/g/b 1300+600Mbps WXR-1900DHP3″]

ただ死活監視はいちいち手動でやってられないので、室温もモニタしたいですしマイニングハウス内に管理端末を設置することにします。それがこちら!

Raspberry Pi 3です!ラズパイを使うのは初めてなのですが、こういった用途にはピッタリなのではないでしょうか?

[amazonjs asin=”B072BK1BHG” locale=”JP” title=”Raspberry Pi3 Model B ボード&ケースセット (Element14版, Clear-電源付)”]

話には聞いていましたが確かに小さいですね。小型コンピュータもここまできたかという感があります。

さてまずは室温管理のために、ラズパイに接続するUSB温度計を購入。

[amazonjs asin=”B004FI1570″ locale=”JP” title=”USB温度計! USB thermometer-528018″]

ラズパイへのインストールは下記ブログを参考にさせて頂きました。USBだから取り扱いが簡単でいいですね。

Raspberry Piと980円USB温度センサーで北海道の冬をロギングしてみる

温度を取得してみます。

取得できました!日時も表示されるので、グラフを作るのもいいですね。ただ日時の表示形式とタイムゾーンがUTCになっているのが気になります。そこでtemper.cを少し修正しました。

$ sudo vi temper.c
(一部抜粋)
if (!((tempc > -0.0001 && tempc < 0.0001) || passes >= 4)) {
    /* Apply calibrations */
    tempc = (tempc * scale) + offset;

    struct tm *utc;
    time_t t;
    t = time(NULL);
    utc = localtime(&t); ← gmtimeをlocaltimeに修正

    char dt[80];
    strftime(dt, 80, "%Y-%m-%d %H:%M", utc); ← %d-%b-%Yを%Y-%m-%dに修正

    printf("%s,%f\n", dt, tempc);
    fflush(stdout);

    return 0;
}
else {
    return 1;
}

修正したらコンパイルして再度インストール。

$ sudo make
$ sudo make install

日時表示が見やすくなりました!

そしてもう1つ気になるのが、この部屋は35.9℃もないです。ラズパイに直で挿しているのでラズパイの熱を拾ってしまうんですね。

なのでUSB延長コードを使ってラズパイから少し離しましょう。探してみるとよさげなグッズが。

[amazonjs asin=”B001D21W7Y” locale=”JP” title=”BUFFALO USB延長ケーブル 2.0対応 スタンド付 2.0m ブラック BSUC20EDBK”]

こんな感じになりました。延長して接地面の温度に影響されるのもイヤなのでちょうどいいですね。

温度も正しく取得できるようになりました!

あとはcronで毎分監視して、しきい値を超えたらアラートメールを送信するような作りにしようと思っています。