一開始的想法是我用4塊錢買到了一個iic的led124*32屏幕,想着用arduino uno來顯示電腦的cpu溫度,相當於一個簡易外設,如果用esp32還可以不用串口與電腦連線了。
然而第一步就卡住了,window並沒有提供真正的cpu溫度api,魯大師一類的都是自己寫的驅動。於是我查到了這個 Open Hardware Monitor beta,一個開源的硬件信息檢測工具。官網 Open Hardware Monitor - Core temp, fan speed and voltages in a free software gadget
但是我實在是不會調用那個。dll文件,看起來需要一定的c#基礎 。wmi調用倒是可以,但是要打開軟件才可以 ,在powershell(管理員權限)中 輸入 get-wmiobject -namespace root\OpenHardwareMonitor -query 'select * from Sensor' 就可以看到很多從傳感器獲得的數據
我覺得這個要打開軟件,有點多此一舉。找啊找,,找到了著名的 微星 MSI Afterburner,感謝微星,它提供了一個服務端,用http發布硬件信息,可以用手機app來查看硬件信息,甚至可以用手機超頻 官網 下載地址 Afterburner (msi.com)
需要下載MSI Afterburner與MSI Afterburner Remote Server。打開這倆軟件,我們先研究下他的協議,Afterburner Remote Server是一個http服務器,地址跟端口可以設置
注意第一個密碼。后邊會用到
查看硬件信息與幀率的地址是 http://192.168.1.5:4000/mahm,(超頻是另一個后綴) 192.168.1.5是我自己電腦的局域網地址,請酌情更改,在瀏覽器里測試這個網址,會讓你輸賬號密碼 ,賬號是 MSIAfterburner ,密碼就是 Secuity的內容 。服務器會返回一個xml,包含了非常多硬件信息
然后就是處理這個xml文件了,uno上我准備寫一個客戶端解析xml然后用串口發送給uno板子,esp32就可以完全獨立完成http請求與解析xml並顯示在12864小屏幕了
以上獲取xml的協議我用到了Wireshark-抓包。