Ein- und Ausschalten eines 3G-Anschlusses (oder eines USB-Anschlusses)?


13

Ich habe ein Projekt, für das ein Raspberry Pi in einer Umgebung mit geringem Stromverbrauch verwendet werden muss, für das jedoch auch eine 3G-Verbindung erforderlich ist. Ich habe noch keine Tests durchgeführt, aber ich gehe davon aus (und korrigiere mich, wenn ich mich irre), dass ein 3G-Modem, das an einen Raspberry Pi angeschlossen und mit einem Netzwerk verbunden ist, Strom verbraucht und die Umgebung mit Strom versorgt Die Nutzung ist nicht erforderlich. Wie kann ich also programmgesteuert ein 3G-Modem oder den USB-Anschluss eines Raspberry Pi ein- und ausschalten?


1
AFAIK Sie können einen USB-Anschluss nicht ausschalten, daher muss der 3G-Dongle über einen Stromsparmodus verfügen. Er verbraucht wahrscheinlich weniger Strom, wenn er nicht verbunden ist. Wahrscheinlich verbraucht er jedoch eine angemessene Menge an Strom, um eine Verbindung herzustellen oder zu trennen.
Alex Chamberlain

1
Sache ist, wird dies eine völlig autonome und Remote - Einheit sein ... es sollte ein- und ausgeschaltet 3G umdrehen nach Bedarf ... gibt es jemanden zu trennen sein werde nicht oder stecken Sie es in ... damit die programmatisch Teil ...
TiernanO

3
Wie Alex sagte, gibt es keinen Mechanismus, um die Stromversorgung der USB-Ports des Pi über Software zu steuern - sie sind nur mit einem passiven Strombegrenzer direkt mit der Versorgungsschiene verbunden. Wenn Sie also nicht festlegen können, dass das Peripheriegerät heruntergefahren / in den Energiesparmodus versetzt werden soll, benötigen Sie ein externes Stromschaltgerät, das Sie über USB selbst oder über einen GPIO-Pin steuern können.
Chris Stratton

Antworten:


8

Leider gibt es keine Möglichkeit, sich mit Software allein vollständig auszuschalten. Sie müssen einen Schaltkreis hinzufügen, der über die GPIO-Pins angeschlossen ist, um eine "Hardware-Trennung" auszulösen, indem Sie die Stromversorgung Ihrer Hardware unterbrechen.

Bearbeiten:

Um mit GPIO zu schalten, ist es nur eine einfache Transistorschaltung.

Bildbeschreibung hier eingeben

Bist an Ihren GPIO-Pin angeschlossen. Abhängig davon, ob es HIGH oder LOW ist, ist der Transistor ein- oder ausgeschaltet. Cund ESie verbinden die Stromleitung mit dem USB-Gerät (R L ).

Weitere Informationen finden Sie auf dieser Website: http://www.kpsec.freeuk.com/trancirc.htm#switching und speziell unter http://www.kpsec.freeuk.com/trancirc.htm#ic


Denken Sie, Sie könnten näher darauf eingehen, wie das geht?
Jivings

Sicher. Ich werde bearbeiten
Mose

Ja, das ist gut. Sie können diesen Transistor in ein kurzes USB-Verlängerungskabel stecken. Sie müssen ihn aufschneiden und die hier besprochenen Stromleitungen abfangen. Dann können Sie 3G an die Nebenstelle anschließen und die Stromversorgung steuern. Ich mag es +1
Piotr Kula

Das sieht vielversprechend aus! Vielen Dank! Dazu muss ich mich mit meinem Freund aus der Elektrotechnik unterhalten, aber Daumen drücken! Danke noch einmal!
TiernanO

5

Ich würde Ihnen nicht raten, ein USB-Gerät nur mit einem Transistor-Basisschalter ein- oder auszuschalten, da das ordnungsgemäße Ein- / Ausschaltprotokoll und die elektrische Schnittstelle gemäß den USB-Spezifikationen verwendet werden sollten.

Ich würde eher einen umschaltbaren USB-Hub verwenden, mit dem Sie jeden seiner Downstream-Ports per Software mit einem einfachen Befehl ein- und ausschalten können.

So etwas wie dieser umschaltbare USB-Hub sollte für das funktionieren, was Sie wollen.


1
Das sieht sooo cool aus! Das muss ich probieren ... Ich denke, das könnte auch nützlich sein, um Smartphones aufzuladen ... Hmmm ... Danke!
TiernanO

2
Haftungsausschluss: Ich arbeite jetzt bei Yepkit. Sie können mich in diesem Punkt als voreingenommen betrachten.
Elektrofunch

1
Da ein Gerät jederzeit von einem Benutzer eingesteckt werden kann, muss dies laut USB-Spezifikation von Treibern und Geräten gehandhabt werden. Daher sehe ich keinen Sinn darin, 29 € auszugeben, wenn man einfache Elektronik für Cent mit dem gleichen Ergebnis und auch mit Spezifikationen bauen kann.
Mose

3

Sie können mein Tool uhubctl verwenden , es unterstützt die Raspberry Pi-Modelle B +, 2B, 3B, 3B + und 4B - diese Modelle können die USB-Stromversorgung über die Hardware aus- und einschalten. Beachten Sie jedoch, dass diese Hardware nur das gleichzeitige Ausschalten oder Einschalten aller USB-Anschlüsse unterstützt, nicht jedoch das unabhängige Ausschalten. USB- und Wifi + Ethernet-Stromschienen können jedoch unabhängig voneinander gesteuert werden (mit Ausnahme von 4B, das keine USB-Schnittstelle für die Vernetzung verwendet).

Benutze es so:

Schalten Sie alle USB-Ports aus (Port 2 muss verwendet werden):

sudo uhubctl -p 2 -a 0

Schalten Sie alle USB-Ports ein (Port 2 muss verwendet werden):

sudo uhubctl -p 2 -a 1

Schalten Sie das WLAN + Ethernet aus (Port 1 muss verwendet werden):

sudo uhubctl -p 1 -a 0

Beachten Sie, dass sich der Raspberry Pi 4 von den Vorgängermodellen stark unterscheidet, da er über einen USB3-Chip verfügt. Sie würden den folgenden Befehl verwenden, um die Stromversorgung auszuschalten (Port 4 muss verwendet werden):

sudo uhubctl -l 2 -p 4 -a 0

Wenn Ihr Raspberry Pi keine USB-Umschaltung unterstützt, können Sie einen externen USB-Hub anschließen (siehe Liste kompatibler Modelle ) und die Stromversorgung dieses externen Hubs mit uhubctl steuern.


2

Hallo, ich bin mit @electrfunch einverstanden, da ich an einem Projekt zur Steuerung von Geräten an den USB-Anschlüssen arbeite. Anstelle der von @Mose vorgeschlagenen integrierten elektronischen Schaltung habe ich meine eigene Isolationsplatine mit Relais erstellt und sie ähnelt dem USB-Switch-Hub. Dies ist sinnvoll, da Ströme innerhalb des Raspberry Pi anfänglich zu einem Kriterium für a werden länger laufen, was Ihre Pi-Leistung beeinträchtigen könnte.

Für das, was ich meine, könnten Sie diese Handbücher für Niedrigstrommessungen heranziehen:

Hinweis 1

Hinweis 2

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.