低電力環境でRaspberry Piを使用する必要があるプロジェクトがありますが、3G接続も必要です。私はまだテストを行っていませんが、Raspberry Piに接続されてネットワークに接続された3Gモデムが電力を使用し、環境があれば追加の電力を使用するという仮定の下にあります(間違っている場合は修正します)使用法は必須ではありません。それでは、プログラムで3Gモデム、またはRaspberry PiのUSBコネクタをオン/オフするにはどうすればよいですか?
低電力環境でRaspberry Piを使用する必要があるプロジェクトがありますが、3G接続も必要です。私はまだテストを行っていませんが、Raspberry Piに接続されてネットワークに接続された3Gモデムが電力を使用し、環境があれば追加の電力を使用するという仮定の下にあります(間違っている場合は修正します)使用法は必須ではありません。それでは、プログラムで3Gモデム、またはRaspberry PiのUSBコネクタをオン/オフするにはどうすればよいですか?
回答:
悲しいことに、ソフトウェアだけでは完全に電源を切る方法はありません。GPIOピンを介して接続されたスイッチング回路を追加して、ハードウェアの電源を切ることで「ハードウェア切断」をトリガーする必要があります。
編集:
GPIOで切り替えるには、単純なトランジスタ回路です。
B
GPIOピンに接続されています。HIGHかLOWかによって、トランジスタはオンまたはオフになります。
C
そしてE
、電源ラインをUSBデバイス(R L)に接続します。
詳細については、http://www.kpsec.freeuk.com/trancirc.htm#switchingおよび特にhttp://www.kpsec.freeuk.com/trancirc.htm#icをご覧ください。
USB仕様で定義されているように、適切な電源オン/オフプロトコルと電気インターフェイスを使用する必要があるため、トランジスタベーススイッチを使用するだけでUSBデバイスのオン/オフを切り替えることはお勧めしません。
単純なコマンドを使用して、ソフトウェアを介してダウンストリームポートをオン/オフできる切り替え可能なUSBハブを使用します。
このUSB切り替え可能なハブのようなものは、あなたが望むものに対して機能するはずです。
私のツールuhubctlを使用して、Raspberry PiモデルB +、2B、3B、3B +、および4Bをサポートできます。これらのモデルには、USB電源をオンまたはオフにするハードウェア機能があります。ただし、このハードウェアは、独立してではなく、一度にすべてのUSBポートのオフまたはオンをサポートすることに注意してください。ただし、USBとWifi + Ethernetの電源レールは個別に制御できます(ネットワークにUSBインターフェイスを使用しない4Bを除く)。
次のように使用します。
すべてのUSBポートの電源を切ります(ポート2を使用する必要があります)。
sudo uhubctl -p 2 -a 0
すべてのUSBポートの電源を入れます(ポート2を使用する必要があります)。
sudo uhubctl -p 2 -a 1
Wifi + Ethernetの電源を切ります(ポート1を使用する必要があります):
sudo uhubctl -p 1 -a 0
Raspberry Pi 4はUSB3チップを搭載しているため、以前のモデルとは大きく異なります。次のようなコマンドを使用して、電源をオフにします(ポート4を使用する必要があります)。
sudo uhubctl -l 2 -p 4 -a 0
Raspberry PiがUSB電源切り替えをサポートしていない場合は、サポートしている外部USBハブを接続し(互換モデルのリストを参照)、uhubctlを使用してその外部ハブの電源を制御できます。