Skip to content

Water temperature logger and graphical display for aquarium.

License

Notifications You must be signed in to change notification settings

seotaro/rpi-aquarium-thermometer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rpi-aquarium-thermometer

アクアリウム用の水温ロガー。計測とグラフ表示を行う。

  • Raspberry Pi
  • DS18B20
  • Electron + React + Sqlite
  • ローカルデータベース

センサー

1-Wire インターフェイスの DS18B20 が手軽に精度良く使え、水中用途に加工されたものが安価に入手できるのでおすすめ。

センサーとラズパイは次のように接続する。センサー側コードの色は要確認のこと。複数のセンサーがある場合は並列に接続していく。DQ にはプルアップ抵抗 4.7[kΩ]を接続する。

センサー ラズパイ
VDD(赤) 3V3 or 5V power
DQ (黄) GPIO 4
GND(黒) Ground

【参考】

Raspberry Pi のセットアップ

Raspberry Pi OS with desktop をセットアップする. ここでは 'pi' ユーザーであるものとして進めていく。

Github のリポジトリをローカルにコピーする。

git clone https://github.com/seotaro/rpi-aquarium-thermometer.git
cd rpi-aquarium-thermometer

Node.js をセットアップする。

make setup-node

1-Wire インターフェイスを有効にする。

make enable-1-wire

リブートして、1-Wire デバイスを確認する。 名称が28-xxxxxxxxxxxx形式のフォルダーが接続されたデバイスで、デバイスの数だけある。

ls /sys/bus/w1/devices/

実行

コマンドはデスクトップモードで実行する.

cd {'rpi-aquarium-thermometer'}
yarn
yarn start

各種ファイル

データベースファイル /home/pi/.config/rpi-aquarium-thermometer/database.db

設定ファイル /home/pi/.config/rpi-aquarium-thermometer/config.json

{
    "READ_SENSOR_INTERVAL": 10000,          // センサーの読み取り間隔 [ms]
    "DELETE_DATABASE_INTERVAL": 3600000,    // データベースを削除する間隔 [ms]
    "DS18B20": "on",                        // DS18B20 を有効にする

    // センサー名称の定義例)
    "DEVICES": {
      "id": "name",
      "28-xxxxxxxxxxxx": "90cm tank",
      "28-yyyyyyyyyyyy": "45cm tank-1",
      "28-zzzzzzzzzzzz": "45cm tank-2"
    }
}

ラズパイ起動で実行

ビルドする。

cd {'rpi-aquarium-thermometer'}
yarn
yarn build
mv dist/rpi-aquarium-thermometer-0.1.0-armv7l.AppImage /home/pi

ラズパイ起動時に自動で実行されるよう設定する。 ログは/home/pi/.cache/lxsession/LXDE-pi/run.logに出力される。

make enable-autostart

リブートする。

自動で実行しないようにするには下記を実行する。

make disable-autostart

他のマシンでビルドして実行

メモリが少ないモデル(Raspberry Pi 3A+ など)はメモリ不足でビルドができないことがある。スペックの高いラズパイでビルドして使用することができる。Electron なので Mac や Windows でクロスビルドできるはずなのだが、うまくいっていない。

Node.js のセットアップは不要であるが、1-Wire インターフェイスはあらかじめ有効にしておくこと。 ビルドした AppImage を実行するラズパイに保存して、下記のようにデスクトップモードで実行する。

chmod +x rpi-aquarium-thermometer-0.1.0-armv7l.AppImage
./rpi-aquarium-thermometer-0.1.0-armv7l.AppImage

About

Water temperature logger and graphical display for aquarium.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published