Mengaktifkan dan menonaktifkan port 3G (atau USB apa pun)?

13

Saya punya proyek yang akan memerlukan menggunakan Raspberry Pi di lingkungan daya rendah, tetapi juga akan memerlukan koneksi 3G. Saya belum melakukan tes apa pun, tetapi saya masih dalam asumsi (dan mengoreksi saya jika saya salah) bahwa modem 3G yang dicolokkan ke Raspberry Pi dan terhubung ke jaringan akan menggunakan daya, dan dengan lingkungan, daya tambahan penggunaan adalah persyaratan. Jadi, bagaimana, secara pemrograman, saya dapat menghidupkan dan mematikan modem 3G, atau konektor USB pada Raspberry Pi?

Tiernano
sumber
1
AFAIK Anda tidak dapat mematikan port USB, jadi itu akan bergantung pada dongle 3G yang memiliki mode hemat daya - ini mungkin menggunakan daya yang lebih kecil ketika tidak terhubung ... tetapi mungkin menggunakan daya yang cukup besar untuk menghubungkan / memutuskan koneksi.
Alex Chamberlain
1
Masalahnya, ini akan menjadi unit yang sepenuhnya otonom dan jauh ... itu harus menyalakan dan mematikan 3G sesuai kebutuhan ... tidak akan ada orang di sana untuk mencabut atau menyambungkannya ... maka bagian program terpisahkan ...
TiernanO
3
Seperti yang dikatakan Alex, tidak ada mekanisme untuk mengontrol daya ke port USB Pi dari perangkat lunak - mereka terhubung langsung ke rel pasokan dengan hanya pembatas arus pasif. Jadi, kecuali jika Anda dapat memberitahu periferal itu sendiri untuk mematikan / tidur, Anda akan memerlukan perangkat peralihan daya eksternal, yang Anda kontrol atas USB itu sendiri atau melalui pin GPIO.
Chris Stratton

Jawaban:

8

Sayangnya tidak ada cara untuk mematikan sepenuhnya dengan perangkat lunak saja. Anda perlu menambahkan sirkuit switching yang terhubung melalui pin GPIO untuk memicu "pemutusan perangkat keras" dengan memutus daya ke perangkat keras Anda.

Edit:

Untuk beralih dengan GPIO itu hanya rangkaian transistor sederhana.

masukkan deskripsi gambar di sini

Bterpasang ke pin GPIO Anda. Tergantung apakah itu TINGGI atau RENDAH, transistor hidup atau mati. Cdan EAnda meletakkan kabel daya ke USB-Device (R L ).

Untuk informasi lebih lanjut, lihat situs ini dengan lebih baik: http://www.kpsec.freeuk.com/trancirc.htm#switching dan khususnya di http://www.kpsec.freeuk.com/trancirc.htm#ic

Mose
sumber
Anda pikir Anda bisa lebih detail tentang bagaimana melakukan ini?
Jivings
Tentu. Saya akan mengedit
Mose
ya itu bagus - Anda bisa meletakkan transistor itu di kabel ekstensi USB pendek. Anda harus memotongnya dan menyadap saluran listrik yang dibicarakan di sini. Lalu Anda bisa pasang 3G ke ekstensi dan kontrol daya. Saya suka +1
Piotr Kula
Itu terlihat menjanjikan! Terima kasih! harus mengobrol dengan teman Teknik Elektro saya untuk membantu, tapi semoga saja! Terima kasih lagi!
TiernanO
5

Saya tidak akan menyarankan Anda untuk menghidupkan / mematikan perangkat USB hanya dengan menggunakan saklar basis transistor karena protokol ON / OFF daya yang tepat dan antarmuka listrik harus digunakan sebagaimana ditentukan oleh spesifikasi USB.

Saya lebih suka menggunakan hub USB switchable yang memungkinkan Anda untuk ON / OFF port hilir melalui perangkat lunak dengan menggunakan perintah sederhana.

Sesuatu seperti hub switchable USB ini harus berfungsi untuk apa yang Anda inginkan.

electrfunch
sumber
1
Itu terlihat sangat keren! Saya harus mencobanya ... Saya pikir ini juga bisa berguna untuk pengisian daya ponsel yang cerdas ... Hmmm .... Terima kasih!
TiernanO
2
Penafian: Saya sekarang bekerja di Yepkit. Jadi, Anda mungkin menganggap saya bias dalam hal ini.
electrfunch
1
Karena perangkat dapat dicolokkan oleh pengguna kapan saja, spesifikasi USB menyatakan bahwa ini harus ditangani oleh driver dan perangkat. Jadi saya tidak melihat titik pengeluaran € 29 ketika Anda dapat membangun elektronik sederhana untuk sen dengan hasil yang sama dan juga didukung oleh spesifikasi.
Mose
3

Anda dapat menggunakan alat saya uhubctl , mendukung Raspberry Pi model B +, 2B, 3B + 3B + dan 4B - model ini memiliki kemampuan perangkat keras untuk mematikan dan menghidupkan daya USB. Tetapi perlu diingat bahwa perangkat keras ini hanya mendukung mematikan atau pada semua port USB sekaligus, tidak secara mandiri. Namun, rel daya USB dan Wifi + Ethernet dapat dikontrol secara independen (kecuali untuk 4B, yang tidak menggunakan antarmuka USB untuk jaringan).

Gunakan seperti ini:

Matikan daya ke semua port USB (harus menggunakan port 2):

sudo uhubctl -p 2 -a 0

Nyalakan daya ke semua port USB (harus menggunakan port 2):

sudo uhubctl -p 2 -a 1

Matikan power ke Wifi + Ethernet (harus menggunakan port 1):

sudo uhubctl -p 1 -a 0

Perhatikan bahwa Raspberry Pi 4 sangat berbeda dari model sebelumnya karena memiliki chip USB3. Anda akan menggunakan perintah seperti ini untuk mematikan daya (harus menggunakan port 4):

sudo uhubctl -l 2 -p 4 -a 0

Jika Raspberry Pi Anda tidak mendukung switching daya USB, Anda dapat menghubungkan hub USB eksternal yang berfungsi (lihat daftar model yang kompatibel ), dan mengontrol daya pada hub eksternal tersebut menggunakan uhubctl.

mvp
sumber
2

Hai Saya setuju dengan @electrfunch karena saya sedang mengerjakan Proyek untuk mengendalikan perangkat pada port USB. Alih-alih Sirkuit Elektronik on-board yang diusulkan oleh @Mose, saya membuat Dewan Isolasi saya sendiri menggunakan Relay dan terlihat mirip dengan USB Switch Hub dan ini masuk akal karena meskipun awalnya diabaikan - Arus dalam Raspberry Pi akan mulai menjadi kriteria pada sebuah jangka panjang yang mungkin mempengaruhi kinerja Pi Anda.

Untuk apa yang saya maksud, Anda bisa merujuk manual ini untuk pengukuran Lancar Rendah:

Referensi 1

Referensi 2

Shan-Desai
sumber