Raspberry PiのファンをPWM制御するためのコントローラ―です。 システムの起動後にデーモンとして常駐し、30秒に一度の間隔でCPU温度に応じてファンの回転速度を制御します。
pigpioが必要です。
$ sudo apt install pigpio
$ pip3 install pigpio
次のコマンドを実行し、pigpioデーモンがシステムの起動後に開始するようにしておきます。
$ sudo systemctl enable pigpiod
$ sudo make init
を実行して設定ファイルとサービス用のファイルを作成します。config.json
とfancontrol.service
が作成されます。
config.json
でPWM制御に利用するGPIOピン番号をgpio.pin
に設定します。$ sudo systemctl start pigpiod
を実行してpigpioデーモンを起動します。- SSH経由で実行して起動に失敗する場合は、
$ sudo raspi-config
の画面からRemote GPIO
をenable
にする必要があります。
- SSH経由で実行して起動に失敗する場合は、
$ sudo make daemon.enable
を実行してシステムにサービスを登録します。config.json
を編集してGPIOピンやPWMの周波数・CPUの温度に対するデューティー比の設定を行います。- ファンが回転しない・低デューティー比で不安定になる場合は
config.json
のpwm.frequency
を調整する必要があります。
- ファンが回転しない・低デューティー比で不安定になる場合は
CPU温度に応じたファンの自動制御を行わず、指定したパラメータでファンを回転させます。
$ cp ./debug_config.example.json ./debug_config.json
を実行してデバッグ用の設定ファイルを作成します。debug_config.json
が作成されます。
debug_config.json
でPWM制御に利用するGPIOピン番号などを設定します。- デーモンが既に起動している場合は
$ sudo make daemon.stop
を実行してデーモンを停止します。 python main.py --debug
を実行してデバッグモードでファンを制御します。- デバッグモードでは
debug_config.json
を定期的に読み込みます。 - 標準出力にCPU温度とデューティー比が表示されます。
- デバッグモードでは