Skip to content

Raspberry PiのファンをPWM制御するためのコントローラ―

License

Notifications You must be signed in to change notification settings

na3shkw/raspi-fan-controller

Repository files navigation

Raspberry Pi Fan Controller

概要

Raspberry PiのファンをPWM制御するためのコントローラ―です。 システムの起動後にデーモンとして常駐し、30秒に一度の間隔でCPU温度に応じてファンの回転速度を制御します。

システム要件

pigpioが必要です。

$ sudo apt install pigpio
$ pip3 install pigpio

次のコマンドを実行し、pigpioデーモンがシステムの起動後に開始するようにしておきます。

$ sudo systemctl enable pigpiod

初期設定

  1. $ sudo make initを実行して設定ファイルとサービス用のファイルを作成します。
    • config.jsonfancontrol.serviceが作成されます。
  2. config.jsonでPWM制御に利用するGPIOピン番号をgpio.pinに設定します。
  3. $ sudo systemctl start pigpiodを実行してpigpioデーモンを起動します。
    • SSH経由で実行して起動に失敗する場合は、$ sudo raspi-configの画面からRemote GPIOenableにする必要があります。
  4. $ sudo make daemon.enableを実行してシステムにサービスを登録します。
  5. config.jsonを編集してGPIOピンやPWMの周波数・CPUの温度に対するデューティー比の設定を行います。
    • ファンが回転しない・低デューティー比で不安定になる場合はconfig.jsonpwm.frequencyを調整する必要があります。

TODO

  • CPU温度の閾値とデューティー比の設定の整合性をチェックする
  • デューティー比を固定してファンを回転させるモードを追加

デバッグ

CPU温度に応じたファンの自動制御を行わず、指定したパラメータでファンを回転させます。

  1. $ cp ./debug_config.example.json ./debug_config.jsonを実行してデバッグ用の設定ファイルを作成します。
    • debug_config.jsonが作成されます。
  2. debug_config.jsonでPWM制御に利用するGPIOピン番号などを設定します。
  3. デーモンが既に起動している場合は$ sudo make daemon.stopを実行してデーモンを停止します。
  4. python main.pyを実行してデバッグモードでファンを制御します。
    • デバッグモードではdebug_config.jsonを定期的に読み込みます。
    • 標準出力にCPU温度とデューティー比が表示されます。

参考文献

About

Raspberry PiのファンをPWM制御するためのコントローラ―

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published