教你用單片機自制桌面CPU溫度顯示器(預算30)
咕咕咕了一陣子,結(jié)果還是成功咕出來了
開始了
前不久咱雙十一不是和B站的一個UP叫@會飛的阿卡林的合作出品過SMR雙十一避坑掃雷指南來著嘛,從那時候開始咱就認識阿卡林了。不得不說這哥們?nèi)舜_實不錯,相比之前咱認識的搞電子DIY的里面人品高到不知道哪去了。
咱以前干UP的時候總是遇人不淑,認識的人里面基本都是只關心自己的人氣和話語權的家伙,很少有人在乎觀眾的死活。對于當時咱做的很多為了人民利益可以舍棄自我甚至放棄一切的事,他們并不能理解。直到現(xiàn)在,那些人里面還在的仍然在關心自己那點事,即使粉絲十幾萬仍然在互相指責互相掐架,讓人看了非常失望,這么高人氣可惜了。都是開源的代碼,互相指責抄襲有啥意義呢?誰在乎你用什么玩意放BAD APPLE 更不在乎代碼是哪來的,大伙看一樂就完了。
相比之下人阿卡林自己寫的代碼咱隨便拿來用還寫教程人家都同意了,所以人與人之間真的從心靈品格上就有區(qū)別的。那些下流坯子就算有數(shù)十萬人氣,可以呼風喚雨,最后也難逃盧姥爺喬碧羅那樣的下場,且行且珍惜吧。
阿卡林真是個好人,從之前合作搞吃力不討好的SMR盤科普避坑指南就知道,這是一個真正在乎群眾的人。在這次視頻:20元就能給你的機箱加上數(shù)顯功能,AIDA64配合數(shù)碼管 做好之后,也在不厭其煩孜孜不倦的幫助觀眾制作,甚至支持定做以成本價出貨。所以咱看見了之后是真的尊重,這才是科技UP應該有的樣子。
想想以前咱認識那些人,一言不合直接開始迫害,住址電話能搞到都公開,粉絲群組團打電話罵人,現(xiàn)在想想也就是這貨未成年,要不然咱都打算幫受害人報警了。
所以對于這種好人,我們做配套的文字版教程自然要表示相應的尊重,首先應該正式地找人要授權征得同意,畢竟基于人家的視頻再創(chuàng)作

然后標注原作者放原作鏈接,代碼標注所有權這種基本的事自然也要做到,這是最基本的常識。
總之讓我們開始吧
本方案采用的是利用AIDA64的液晶小程序功能把傳感器的狀態(tài)引出,因為走的是標準串口所以要占用一路USB接口,此外AIDA64在運行中也是必要條件,因此對于咱這種喜歡干凈碼字的時候連QQ都不掛有事用手機的強迫癥患者來說并不實用(真相是圖吧垃圾佬的電腦核心太少多線程會卡,有的時候掛著QQ就能卡到打字都卡出空格的水平,好在咱還知道怎么優(yōu)化所以問題不大)

首先要想準備制作這個顯示器,我們需要一個屏幕和配套的單片機
屏幕可以用這個數(shù)碼管,帶MAX7219驅(qū)動模塊的八位數(shù)碼管,這個沒多錢一個也就5塊錢左右,華強北就有賣的,滿9.9包郵或者郵費三四塊吧

一般包郵的東西均價會貴點,但是這次我們可以用到大量模塊串聯(lián)或者說級聯(lián),所以可以買不包郵的,量大更合適:

一般買這樣的就行
MAX7219驅(qū)動的模塊有很多,別買錯了

像這個就是咱這次用不了的
至于單片機模塊我們可以用這個:

我用的就是這款,多少年前就14包郵了,ARDUINO是開源計劃,UNO用的是AVR單片機,成本非常低幾塊錢都用不上,沒必要高價交智商稅買什么原裝意大利進口英文版(意大利進口英文版,我反正不信)。這款相比標準款多了排針,對于連線來說更自由一些
數(shù)據(jù)線一般就是USB線和杜邦線,這個華強北的那些電子店都有,數(shù)據(jù)線一般買單片機會帶,看準選項不要差那一塊錢圖便宜買不帶線的回來用不了再買線就貴了,杜邦線的話華強北一般是論排的,40PIN多少CM長多少錢,一次買一排回來絕對夠你用的,買的時候注意公對公母對母公對母不要買錯要根據(jù)實際情況,比如插針的數(shù)碼管模塊對排插的單片機就要用公對母,插針的數(shù)碼管模塊對數(shù)碼管模塊級聯(lián)就要用母對母,如果你用上圖的改進版開發(fā)版就可以只用母對母。如果怕買錯可以一次買全,日后能用上
買貨的時候注意千萬不要買telesky旗艦店的東西,這家叫天士凱的東西又貴質(zhì)量相比華強北其他地方又渣,模塊爆炸是日常,然而人家是天貓點你連差評權都沒,花錢找罪受這種事還是少干,華強北這種地方?jīng)]有一分錢一分貨,只有我比你便宜我就能多出貨。

特別注意一點如果你用網(wǎng)頁找東西,網(wǎng)頁會告訴你省略了部分“不規(guī)范”商品,然而你想要的東西可能就在這里面呢。好在馬云吃相不算太難看網(wǎng)頁的這個省略還可以關閉,這點要注意
如果一定要找直插的“官方版”ARDUINO的話,這個選項關掉能幫你找到以前那些便宜好貨:

看到這個運費不要方,華強北的店鋪一般運費都是虛的,你可以上店里看看包郵區(qū),很多好貨是包郵可以捎帶著首重一起包郵的,而且肯定比標稱的運費便宜

像那個USB小烙鐵用起來就比較順手咱有一把,這次這個項目也能用得上 烙鐵會帶一小段焊錫但是要是經(jīng)常使用最好還是備個50 100g那樣,沒多錢
因為這家店可以乘車包郵,所以買杜邦線之類的可以直接在這家店里以不包郵的低價購買然后享受包郵,焊錫也可以來點,畢竟不是所有人都有實驗室可以白嫖的

單片機還可以用基于樂鑫ESP8266的ARDUINO D1,標準版也就18包郵那樣,阿卡林建議咱上D1 MINI,不過我看了一眼發(fā)現(xiàn)可以但沒必要

MINI是不錯,很便宜,也自帶一個MICROUSB插槽,甚至帶5V定義,但是上手有點難哦畢竟還要焊排針,即使是咱現(xiàn)在也不太愿意干這個了,有焊好的標準版模塊干嘛買這個,又不是以前做WIFI干擾器的時候塊大怕被人看見。對沒錯這東西刷個固件就能干WIFI,2.4G有效。咱以前上課的時候經(jīng)常用它干同學上課開黑的熱點,上課就好好上課開什么5V5,然而現(xiàn)在大伙流量都便宜也就很少有人需要再開熱點了。
而且從日后的角度來看,D1畢竟是標準ARDUINO板型,搞一些開發(fā)之類的可以直接上擴展板

像這種搞3D打印 雕刻機之類的非常流行的SENSOR SHIELD板就只是為標準的ARDUINO版型設計的,MINI板還得用軟線轉(zhuǎn)接無法直插就比較麻煩
搞一個項目我們不能僅僅看到眼前,還要看到日后,長遠角度來講,這幾款單片機開發(fā)板最有前途的果然還是D1,帶WIFI,ARDUINO標準板型,日后即使不用了也不會吃灰可以干很多別的有趣的項目(不是說干人WIFI啊,是指可以搞點物聯(lián)網(wǎng)比如互聯(lián)網(wǎng)正時時鐘或者天氣預報之類的,小米那個對著手機說話就能開燈的臺燈也是基于ESP8266的)

總之數(shù)碼管拿到手咱就開干


明顯的,需要焊接。咱之前有過教程:失傳技術研究所小講堂 篇八十三:手工焊接更換電路板元件教程(拆焊+補焊)

這里有人問過阿卡林,我也簡單說一下吧,如果實在拿不動烙鐵用熱熔膠肯定是不行的,但是你可以用免焊接膠

不過這個價格你確定不考慮一下勉為其難的學下焊接?
此外一般導電的東西導熱也不錯,這個東西應該可以說散熱性能不錯,沒準可以抹CPU上散熱

總之我們需要把模塊的排針以這個形式焊好

這里焊接因為是在家里有足夠大的供電所以咱用的是這個936焊臺,當年咱為了慶祝國產(chǎn)電磁炮上艦的時候買的

當時的賀圖(artworks/67711599) 防水布電磁炮上艦,據(jù)說用的方案非常直接,用電瓶堆可還行,簡單暴力 不用電容不用電感不用飛輪不用磁通壓縮,直接靠電瓶堆電磁炮,就是這么簡單 我用完之后是這個樣子,你們用了之后也是這個樣子
焊臺這種東西其實就是有自動控制系統(tǒng)的一套調(diào)溫烙鐵,但是不同的是它的溫度控制比調(diào)溫烙鐵更成熟,因為自帶電源所以更適合調(diào)溫 這里咱簡單的放在350-450攝氏度就可以
然而還是焊差了,效果感人
畢竟又很長時間不拿烙鐵了
咱又試試好好焊了幾個,效果好了不少
首先焊接這個活手工焊接講究的是先低后高先簡后難的這個原則,然而這個數(shù)碼管模塊來的時候數(shù)碼管就比彎針排針更高,所以要焊接只能用另一個數(shù)碼管模塊墊著點才能焊好
注意直針彎針有方向,別弄錯了
后來這兩個明顯效果好很多
焊接的過程中保持烙鐵頭隨時清潔是非常重要的,為此可以用金屬材料蹭掉烙鐵頭上的雜質(zhì) 鋼絲球之類的都可以,但是最好不要用刀可能會刮壞烙鐵頭的鍍層,咱以前都是用刀背
這次其實咱用的是硬幣,畢竟隨手看到什么順手就用什么了,總之不能用PCB電路板,會燙壞板子
焊點圓潤,焊接牢固
然后咱簡單介紹下ARDUINO這個東西
ARDUINO是個開源項目,確實是發(fā)源于意大利,目的是用 盡可能簡單的代碼解決更多的問題。一開始就是這樣AVR 8位 單片機的簡單產(chǎn)物,但是發(fā)展至今已經(jīng)形成了一套龐大的 家族 最大的特點是代碼封裝成庫,底層對于用戶來說是封閉的但是并非完全不可修改。說實在的這東西在搞IOT的鄙視鏈中一直處于“大佬”們都不屑然而真正到了應用的時候隨時都真香的存在,老師們一面 說這玩意就是電子積木學不到底層另一方面自己實驗室里面成熟的解決方案都在用人家現(xiàn)成的庫,也沒見從底層開始編譯的 所以對于咱來說咱應該好好應用,畢竟這年頭黑貓白貓抓到耗子就是好貓,代碼功底再扎實最后面對實際問題連烙鐵都拿不動也是白扯淡,這樣的人教出來的學生咱見多了。代碼是挺好,等到設計方案的時候就一臉阿庫婭了,說實在的說是需要補充物理常識都不為過。好在最后在咱的幫助還有個不錯的結(jié)局,咱就不要多說人家了。
咱最常見的UNO R3的國內(nèi)改進版,相比標準版多了排針少了直插單片機,取而代之的是實際應用上更多的TQFP和MLF封裝
數(shù)據(jù)表:ATmega328P_Datasheet.pdf
而ARDUINO開發(fā)板除了上述板型之外還有一種大板,比如這個MEGA 2560就是用的ATMEGA2560的單片機
相比之下它支持更多的接口
相對來說擴展性能更強(這是它的這個擴展板,可以 看到明顯比前文的標準版更強)
總之無論怎么轉(zhuǎn)變,咱要做的都非常簡單,把單片機開發(fā)板和數(shù)碼管模塊連接好,然后把開發(fā)板和電腦連接好就行了
這里阿卡林給了標準的方案
代碼方面,我們需要知道如果編譯找BUG改BUG安裝庫和ARDUINO環(huán)境就行了,其實咱涉及ARDUINO的時候大多數(shù)時間都是在找BUG改BUG,刪除多余的空格,安裝缺失的庫之類的,即使沒學過C語言也可以很快上手(確信)
總之根據(jù)指示我們把數(shù)碼管模塊正確連線就好,數(shù)碼管模塊工作電源電壓: 4 V to 5.5 V雖然插3.3可能也工作,這里咱還是 插5V就行了,板子上都有絲印標著應該錯不了
因為是UNO所以咱不用動直接照著圖上半部分的接法來,端口和圖上都對好就可以了,如果是基于ESP8266的板子就按下面的接線法來,而且到時候還要把代碼上表示注釋的//給刪掉
幾個程序員去吃飯 點了一份菜叫麻辣牛蛙,有人提出不吃牛蛙,于是負責點菜的在麻辣牛蛙四個字前面加了兩個斜杠:
//麻辣牛蛙
沒有人覺得有任何問題!結(jié)果服務員上了11份麻辣牛蛙
要是這幾個程序員是寫lua的就是 --麻辣牛蛙
咱是BASIC,就是'麻辣牛蛙
8266給了兩條連線方式,具體用哪套看你實際用的開發(fā)板型號

正常到了這里數(shù)碼管就可以亮起來了,上電之后隨手摸一下單片機(這習慣不好)數(shù)碼管就亮起來了,說明狀態(tài)良好
這里開始我們就需要準備軟件了

一開始咱的ARDUINO插上USB之后電腦正常識別,按說正常這類單片機都是CH340或者CP210X的USB轉(zhuǎn)串口IC接的,需要系統(tǒng)有驅(qū)動才能識別,沒想到咱的系統(tǒng)直接自帶了,所以也不用咱費勁去單獨裝驅(qū)動了

至于AIDA64嘛貌似是免費軟件,網(wǎng)上挺好找的,咱主要說說ARDUINO
ARDUINO官網(wǎng)上可以下載到的環(huán)境有很多,咱要根據(jù)咱的系統(tǒng)來選擇

一般XP以上的直接用WINDOWS EXE或者ZIP就行,一般圖省事就用EXE,要是圖綠色安裝就用ZIP,咱以前用WINDOWS平板干這個沒管理員權限的時候就走ZIP比較得勁
至于軟件商店的咱沒用過,沒有WIN8.1或WIN10的軟件商店環(huán)境
MAC OS X咱自己手上的是10.7.5已經(jīng)不支持了
不少實驗室的 大佬喜歡用LINUX 這里ARDUINO也提供了支持

總之官網(wǎng)下好EXE之后一步步安裝是你最省心的選項

驅(qū)動都安裝就完事了,ZIP就需要手動挨個運行一遍,比較麻煩,很可能漏選
然后我們就需要直接運行ARDUINO了

這里我們直接用阿卡林現(xiàn)成的項目就行了: 代碼托管:flyAkari/AIDA64with7segmentdisplay (GITHUB)

雙擊.INO文件ARDUINO就可以運行起來了,問你是否移動文件當然選是了

然后就看到代碼了,看到代碼不用方,我教你怎么整
首先按左上角那個對號先編譯一下看看有什么BUG沒

LedControl.h: No such file or directory
嗯缺一個LED庫

還好這個庫無論是GITHUB還是阿卡林自己的群 都能下到 是ZIP,解壓后是這樣的

但是我們其實根本不需要解壓,只需要在ARDUINO菜單里面選擇項目-加載庫-添加ZIP庫就行了

選中我們需要的庫(這里是LED庫)

導入成功 所以這里我們就看到了ARDUINO的便利之處了,代碼都打包成庫,在網(wǎng)上都有現(xiàn)成的直接上托管網(wǎng)站下好安裝就可以了,比裝軟件還簡單,再也不用到處找代碼然后復制代碼回來找格式刪空格改BUG了,非常完美
其實很多時候買硬件就是買服務,國產(chǎn)的山寨派相比樹莓派是各種便宜性價比吊打,然而發(fā)熱過高,官方庫全是BUG庫導致用戶用它其實也干不了什么,所以樹莓派這么貴還是有貴的道理的,畢竟IOT里面這個生態(tài)最好。ARDUINO其實環(huán)境也不差,就是硬件性能方面差點,但是搞個3D打印、物聯(lián)網(wǎng)智能硬件之類的還是非常容易的

這次編譯完成沒有錯誤,我們可以準備上傳到單片機了

之前還記得我們安裝驅(qū)動的時候說這個CH341走的是COM3來著吧,所以這次我們直接工具-端口-COM3就行了

emmmmmm,識別出的是未知開發(fā)板,不過沒關系,咱知道這個是UNO

選擇開發(fā)板型號

然后上傳就直接上傳成功了

這會兒數(shù)碼管就已經(jīng)在跑碼了,NICE
然后我們需要做的是運行AIDA64,打開圖吧工具箱里面帶的這款AIDA64經(jīng)過實測就可以用,相對圖吧工具箱可以獨立運行,工具箱本身只是個快捷方式
其實AIDA64自帶監(jiān)視器就可以實現(xiàn)基本的傳感器數(shù)據(jù)實時顯示,但是對于只有一個屏幕的玩家來說,這功能顯然不太實用,畢竟一旦全屏游戲一個就用不了了是不是
AIDA64的頭一個菜單打開之后就有設置,然后咱可以看到有自帶的LCD選項,支持的方案非常多
emmmmmmmm找不到DLL可還行,一般系統(tǒng)缺啥就上網(wǎng)找啥下載好了找到對應位置解壓就行了
Windows XP/WIN7/win10系統(tǒng)(64位系統(tǒng)對應64位dll文件,32位系統(tǒng)對應32位dll文件),將ch341dll.dll復制到C:\Windows\System32目錄下。
后來阿卡林告訴咱最后人用的是POS的這個RS232方案,沒用CH341的,難怪了
RS232是一種非常經(jīng)典的串口接口,老式鼠標有不少是用這個的,包括電視、舊型打印機(少數(shù))以及現(xiàn)在的一些單片機開發(fā)板、工控板都在大量使用這個接口
然后我們在LED項目里面新建一個然后點應用
這里AIDA64可以提供的參數(shù)有很多,從CPU核心頻率到顯卡各項參數(shù)以及各種傳感器的參數(shù)都可以投在LCD上
開始出字了
emmmmmm,完美
CPU 133℃的大字成功的在數(shù)碼管上顯示出來了 先不管CPU是不是真的可以用來烤肉,至少咱成功的完成了這套方案
其實相對于在乎CPU的溫度,不如給自己的CPU加個好一點的散熱器,這年頭二手熱管塔式散熱器非常便宜,散熱效果還好,銅底雙熱管散熱器對于咱這種垃圾佬的四核開六核平臺也能輕松壓住,而且還非常便宜咱作為垃圾佬是非常喜聞樂見的多虧了趕上這個好時候 要知道以前咱玩AMD 5000+超頻的時候AMD原廠的散熱器就一個鋁片加個風扇,CPU不用說多,超個200M基本開機過一會兒就熱重啟了,更別說玩游戲了。這年頭好散熱器這么便宜CPU的溫度還真高不起來
我懷疑這個133度是AIDA64哪出問題了,正常咱直接從AIDA64讀溫度應該頂多也就七八十度
總之咱再嘗試了一下顯示CPU核心頻率,結(jié)果發(fā)現(xiàn)數(shù)碼管的單位還是攝氏度
這就明白了,估計還是軟件之間的通信有點問題,不過相信這個問題只要找找原因很快就能解決的,畢竟人阿卡林都賣了好幾套了應該問題不大,估計是咱軟件讀取傳感器或者串口送信之類的弄沒弄好,有空換個版本再試試
順帶說下,如果需要多參數(shù)同時顯示的話可以用MAX7219數(shù)碼管串聯(lián),接線方面PCB板子其實已經(jīng)給了簡單解決方案直接把板子彎針的線接到下一級的直針那頭就可以了( DOUT->DIN)
多參數(shù)的設置還是上AIDA64里面找第一第二第三第四頁就行
另外阿卡林不建議各位用的ESP8266開發(fā)板是這款NODEMCU開發(fā)板,確實沒有5V定義,一般都是用來搞物聯(lián)網(wǎng)的時候用這個比如做智能開關智能遙控燈之類的,偶爾也有人做智能小車,這個咱以前倒是經(jīng)常用可惜最后也沒個正經(jīng)用途
最后是阿卡林的備注,咱簡化了一些:
說兩個事兒: 1. 需要級聯(lián)使用MAX7219數(shù)碼管的同學,數(shù)碼管模塊背面的D1是個串聯(lián)在電路中的二極管,用來整流、防插反,但會產(chǎn)生壓降,級聯(lián)后亮度一個比一個低,甚至達不到7219正常的工作電壓,這時候可能會需要短接二極管來降低壓降。( DOUT->DIN) 2. 多個數(shù)碼管級聯(lián)后功率很大,會讓miniD1板子上的濾波電容嚴重發(fā)燙,影響電容使用壽命。建議將VCC接到3.3V引腳,并修改代碼中l(wèi)c.setIntensity(address,6);為lc.setIntensity(address,1);將數(shù)碼管亮度調(diào)至最低,便可解決發(fā)燙問題,最低亮度已足夠使用。若要進一步降低數(shù)碼管亮度,可適當增加數(shù)碼管模塊上R1的阻值。
說實在的MINI D1這個板子除了體積小真沒啥優(yōu)點,咱作為個人來說建議各位上標準的ARDUINO大板也考慮到了電源的問題,畢竟大板如果電源真的不夠用了還可以加一個5.5x2.1的圓口電源,濾波電容也大很多(雖然都是貼片電解不是固態(tài)或者獨石電容之類的高檔貨 要知道咱的THINKPAD即使到了沒IBM標的X200拆開看也找不到電解電容,理論保固100年)。總體而言就是這樣希望各位回去玩得高興,咱現(xiàn)在重新?lián)炱饋砹藛纹瑱C之后也在想最近要不要做個什么項目比如音樂蠟燭之類的以前玩過的項目懷念一下過去,或者搞搞之前想做沒做成的自制鍵鼠,自動天氣預報,自動氣象站之類的項目挑戰(zhàn)一下不可能??傊@種“電子積木”確實有無限可能,從這個項目各位算是真正的開始入門了。