国产成人v爽在线免播放观看,日韩欧美色,久久99国产精品久久99软件,亚洲综合色网站,国产欧美日韩中文久久,色99在线,亚洲伦理一区二区

學習啦>學習電腦>電腦硬件知識>外接設備>

通過USB控制外設電源的方法

時間: 本達868 分享

  外部設備又稱“外設”,是計算機系統(tǒng)中的重要組成部分,主要是指除了計算機主機以外的硬件設備,可進行傳輸、轉(zhuǎn)送、儲存大量的數(shù)據(jù)和信息等內(nèi)容。DIY實現(xiàn)通過USB控制外設電源,下面是學習啦小編給大家整理的一些相關解決方法步驟,希望對大家有幫助!

  通過USB控制外設電源的方法

  家里的電腦通過無線路由器上網(wǎng),經(jīng)常長時間開機下載一些高清電影、音樂、軟件,但是無線路由器不夠穩(wěn)定,時不時的就死機,死機后不論是無線還是有線全部都無法鏈接,只能斷電重啟路由器才能恢復正常,而且死機往往是隨機出現(xiàn)的,有時候連續(xù)運行幾天也沒事,有時候重啟了十分鐘就又死掉了,有時候開機下載了一晚上,早上起來一看,路由器早就死掉了,電腦白白的運行了一夜。如果能夠讓電腦控制無線路由的電源,在路由器死機的時候自動重啟它,就不會出現(xiàn)這種讓人崩潰的事情了,再進一步,如果能在下載完成后自動關機,關外設電源(下載軟件里的“下載完成后關機”功能,只能關機,不能關外設電源),節(jié)能減排,那就更完美了。

  想要控制電源,簡單的點的辦法就是使用繼電器,想要用電腦控制,那就需要用到串口,但是串口控制有一個弊端,就是需要外接直流電源,解決的方法就是使用USB轉(zhuǎn)串口,這樣可以直接從USB口取5V電。思路確定以后,接下來就簡單了,在淘寶搜索

  “USB 繼電器”,找到一個現(xiàn)成的產(chǎn)品,:

  這個繼電器板還是比較小巧的,可以直接改裝到插座里,而且觸電容量有AC250V10A,足夠用來控制電源插座了。為了增加絕緣性能,需要在電路板部分套上了熱縮管。拍下付款,幾天以后收到貨,DIY開工嘍:

首先要找一個內(nèi)部空間能夠放得下這塊繼電器板的插座,我用的是這款: 這是把插座拆開后的樣子:

  拆開插座,正好有一塊空間可以放下,而且長度剛剛好??梢钥闯觯@款插座的做工還是非常好的,排線規(guī)矩,該有的都有。

  這款插座和買的USB繼電器都是采用接線柱的方式接線,所以改造非常簡單,甚至連焊接都不用。首先,要把原插座里接線柱上接火線的一組兩根線拆下,分別接到繼電器輸出模塊的中間接線柱和“常開”接線柱上,然后整理好線,固定好繼電器板的位置。

下面改造插座外殼,為了能把USB接口露出來,需要在外殼上開一個孔。量好位置,使用鋸條、刀片和鉗子破開一個缺口,然后用銼把邊緣磨光滑,最后蓋好后蓋,擰緊螺絲,這樣,硬件部分就改造完成了。下面是完工以后的樣子:

  當電源插座上的USB線沒有插在電腦上時,電源開關負責插座電源通斷,與普通插座無異,當USB通過一根USB延長線插在電腦上時,會在電腦上模擬出一個串口來,可以通過程序向串口發(fā)送指令,來觸發(fā)繼電器動作,實現(xiàn)交流電的導通和斷開。

插上USB延長線的樣子:

  接下來編寫控制軟件,控制流程很簡單,先通過API檢測網(wǎng)絡狀態(tài),如果發(fā)現(xiàn)網(wǎng)絡不通,則打開串口,寫入繼電器斷開指令,延遲2秒后再寫入繼電器閉合指令,然后關閉串口。把這個程序編譯好后,用WINDOWS計劃任務調(diào)用,每隔10分鐘或更短時間自動執(zhí)行一次,這樣就實現(xiàn)了只要發(fā)現(xiàn)網(wǎng)絡斷開,就自動重啟路由器的功能。

  主要代碼清單:

  Attribute VB_Name = "main_form"

  Attribute VB_GlobalNameSpace = False

  Attribute VB_Creatable = False

  Attribute VB_PredeclaredId = True

  Attribute VB_Exposed = False

  Dim RXDDATA(1 To 100) As Long

  Private Declare Function InternetGetConnectedState Lib "c:\windows\system32\wininet.dll" (ByRef dwFlags As Long, ByVal dwReserved As Long) As Long

  Private Declare Sub Sleep Lib "Kernel32" (ByVal dwMilliseconds As Long) '

  Declare Function GetPrivateProfileString Lib "kernel32.dll"Alias"GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long

  Public Function MyGetSetting(Section As String, KeyName As String, DefaultValue As String) As String

  Dim X

  As Long

  Dim Holder

  As String * 255

  X = GetPrivateProfileString(Section, KeyName, DefaultValue, Holder, 254, App.Path + "\comConfig.ini ")

  MyGetSetting = Left$(Holder, InStr(Holder, Chr$(0)) - 1)

  End Function

  Private Sub Form_Load()

  chuankou_num = MyGetSetting("本機", "COM號", " ")

  Me.Hide

  Dim ret As Long

  If InternetGetConnectedState(ret, 0&) = 0 Then

  ‘判斷網(wǎng)絡連接狀態(tài)

  '打開串口

  MSComm1.CommPort = chuankou_num

  If MSComm1.PortOpen = False Then

  main_form.MSComm1.PortOpen = True

  main_form.MSComm1.RThreshold = 8 '一次接受的字節(jié)數(shù)

  main_form.Timer1.Enabled = True

  End If

  Call tx_read_frame(1, 1, 0, 0, 0)

  '斷開

  DoEvents

  Sleep 1000

  Call tx_read_frame(1, 2, 0, 0, 0) '吸合

  '關閉串口

  main_form.MSComm1.PortOpen = False

  main_form.Timer1.Enabled = False

  End If

  End Sub

  Public Function tx_read_frame(leixing As Byte, data1 As Byte, data2 As Byte, data3 As Byte, data4 As Byte)

  Static Byteout(0 To 7) As Byte, i As Byte

  '向外發(fā)送

  Dim sum As Integer

  Byteout(0) = &H55

  Byteout(1) = 1

  Byteout(2) = leixing

  Byteout(3) = data1

  Byteout(4) = data2

  Byteout(5) = data3

  Byteout(6) = data4

  sum = 0

  For i = 0 To 6 Step 1

  sum = sum + Byteout(i)

  Next

  Byteout(7) = sum Mod 256

  main_form.MSComm1.InBufferCount = 0

  main_form.MSComm1.Output = Byteout

  End Function

  程序稍微改造一下,就可以實現(xiàn)關機時自動關閉外設電源,或者定時開啟外設電源,或者按需要是自動開啟或關閉外設電源,有了這個改造過的插座,再也不怕無線路由器死機了,可以暢快的連夜下載喜歡的高清電影啦。前面用到的繼電器板是最簡單的一路控制板,還可以使用4路、8路、16路,甚至還可以使用多塊板子級聯(lián),以控制更多路繼電器,如果加入溫度、濕度傳感器、壓力傳感器、熱量傳感器、光傳感器等等,配合自己開發(fā)的控制軟件,控制家電、燈光、水、暖、窗簾、門禁……,其實比爾蓋茨豪宅里的智能家居離我們也不算遙遠啊。

1360699