這篇文章來源于DevicePlus.com英語網站的翻譯稿。
目錄
1 簡介
1.1 適用的網絡附屬存儲
1.2 啟動并運行自己的NAS
1.2.1 磁盤設置
1.2.2 NAS服務
1.2.3 磁盤和網絡性能
2 附加收獲:Raspberry Pi “HURRiCANE!”冷卻系統
2.1 BOM
2.2 項目完成!
1 簡介
多年來,許多計算機愛好者都會向為設計供大眾使用的Pi而辛勞工作的工程師們哭訴:“USB3有了嗎?USB3快點出來吧,拜托了!”。Raspberry Pi 3 B+幾乎是完美的微型計算機,但是仍然不適用于網絡附屬存儲(NAS),或者快速USB,甚至USB。由于以太網連接受限而出現的鍵盤輸入滯后現象就是不良反應之一。
如果您的祖母打電話給您,問如何將她的老照片以“現代潮流的方式”進行數字化,您會怎么做呢?她只是想能夠在新型iPad上流暢地瀏覽這些照片,因為她的手指已經沒有那么大的力氣去翻閱笨重的相冊來重溫那些飽含著珍貴回憶的柯達照片了。現在,她要開始迎接使用科技產品的新生活。
但是,本文并不是專門針對數字化照片而寫的。我們這里將要介紹的是有關存儲的內容:簡單、快速的網絡存儲。
1.1 適用的網絡附屬存儲
首先,任何能夠在網絡上存儲數據并為用戶提供服務的功能都可以稱為網絡附屬存儲(NAS)。但是,該功能的實現是以一種用戶友好的、流暢且不會對用戶造成困擾的方式進行的。
例如,我的Android盒子里有KODI。它的速度不太快,并且microSD里裝滿了舊的數據。但是,在我安裝了KODI插件從而連接到本地網絡上的Samba服務器之后,觀看電影和播放音樂就都十分流暢了。它在容納千兆位音頻資源的同時,僅用了幾分鐘的時間就完成了我的舊路由器(包含未知固件)的設置,以處理從插入的USB2硬盤中獲取的數據。這就是NAS,但它是比較差的NAS。我們可以做得更好一些。
優質的NAS具有穩定、可快速傳輸數據、延遲少的特點,且具有冗余性(例如RAIDI),在系統運行時可以支持磁盤的熱交換,并且提供了用于訪問所存儲數據的少量協議。如FTP,SMB/CIFS,NFS和AFP等現在常用的協議。多年來,我一直在尋找一種性能優于USB2和100Mbit/s,且具有足夠的CPU能源和RAM來承載所有服務內容的低耗能系統。我對具有出色的SATA 端口的Cubieboard 2十分有興趣,但是Armbian對我來說實在太陌生了。
當所有希望都變成絕望的時候,Raspberry Pi 4發布了,它具有四核1.5GHz CPU,1/2/4GB DDR4 RAM,真正的千兆以太網和USB 3.0。您再也不會因為以太網端口被USB2總線阻塞而被迫使用Wi-Fi了。它具有雙microHDMI端口,不過對性能來說無功無過。
我現在需要一臺小型的臺式微型計算機, 來驗證其是否能夠在處理一些較大的網絡傳輸負載的同時還可以可靠地運行。
我用這種方式對Raspberry Pi 4進行了測試,并且測試成功了。當然,會產生發熱的問題。在卸載后,該微型計算機會通過自發熱來進行調節。加載時,它的系統溫度將會迅速達到176華氏度,這時候計算機并沒有死機或者壞掉,也沒有冒出什么奇特的煙霧,它只是變成了一個無法使用的紙壓——以600MHz的頻率運行。但是,有一個方法可以解決這個問題,就如您將會在第2部分看到的那樣,使用一種破解版GPIO控制的功率小于或等于45瓦的散熱風扇。
盡管有過熱問題,這款Pi還是非常適合于家庭/工作組NAS,并且2.5″的USB3硬盤足夠了。如果您希望能夠獲得最佳性能,建議您在磁盤托架中安裝一個12V 3.5″的驅動器,而不是只用一根線纜的2.5″驅動器。我的2.5″USB驅動器使用一根線纜,最大功率為4.48W,所以如果您選擇了不帶外部電源的2.5″驅動器,那么肯定需要為您的Pi提供15W的電源。
1.2 啟動并運行自己的NAS
讓我們來構建一個Raspberry Pi 4 NAS吧!
請注意,如果您使用的是較早的Pi型號,仍然可以按照本文中的說明進行操作,不過Pi 2是最低要求。在Pi 3上,您應該通過Wi-Fi接口傳輸文件,因為這樣更快!
首先要做的是對Pi進行設置。按照此處的說明進行操作,您將會很快實現Pi的啟動和運行。我們假設您已經準備好外部硬盤驅動裝置了。這里需要注意的一點是,如果是在Slashdot上,相信馬上就會引發一場關于“btrfs”(或者那些完美主義者所堅持的寫法“Btrfs”)優點的討論。我使用過它,也使用過ZFS。除非您想要拍快照,不然無論是btrfs還是ZFS都是無關緊要的,對于家庭/工作組NAS也是如此。這是一個磁盤的單獨設置,您絕對應該使用ext4,這很酷。
對您的系統進行更新。將以下指令復制并粘貼到您的Pi終端。
export DEBIAN_FRONTEND DEBIAN_PRIORITY DEBCONF_NOWARNINGS apt update || e c h o "[!] Failed to update index lists!" dpkg --configure -a || e c h o "[!] Failed to fix interrupted upgrades!" apt --fix-broken --fix-missing install || e c h o "[!] Failed to fix conflicts!" apt -y --allow-downgrades --fix-broken --fix-missing dist-upgrade
然后重新啟動,運行以下指令,這將會安裝ProFTPd,Samba,一個密碼生成器,SMB/CIFS的客戶端以及用于實現簡單GPIO控制的WiringPi。
sudo apt-get -y install proftpd samba pwgen smbclient wiringpi
1.2.1 磁盤設置
如果您不是一個極簡主義者,那么您很可能使用的是Pi上的圖形用戶界面。如果是這樣,請按照以下說明設置磁盤。注意:請牢記您打算設置的磁盤,而不是對連接的microSD卡或者任何您不打算修改的磁盤進行設置。
如果您選擇僅安裝Raspbian Lite(沒有圖形用戶界面),則可以使用“cfdisk”對磁盤進行設置。確保沒有其他USB驅動器連接到您的Pi后,我們就可以將其稱為“sda”了。將USB驅動器插入您的Pi,打開一個終端窗口,然后發送指令:“sudo cfdisk /dev/sda”。
選擇 “dos”。
如果已經有了一個分區,選擇“Delete(刪除)”。然后,選擇“New(新建)”。或者可以直接選擇“New(新建)”。其類型將會是“Linux”,如下圖所示。使用驅動器上的所有可用空間。
使用箭頭鍵將高亮區移動到“Write(寫入)”的地方,并在出現提示對話框時點擊“yes(是)”。然后,將高亮區移動到“Quit(退出)”的地方,按回車鍵。
回到提示對話框,讓我們稍事休息,思考一下。在一個沒有承載任何系統文件的文件系統上,我們是否要為“root”用戶保留磁盤空間的5%,甚至10%?畢竟這不是“/var”或者“/”。
不需要。我們希望所有的可用空間都被用于奶奶的照片數字化工作以及媒體/工作組的數據。mkfs.ext4的“-m”用于設置為“root”用戶保留的空間。“-L”用于設置磁盤名稱,您可以將其設置為任意名稱。如果有疑問,可以使用“FOO”進行查詢。現在,發出指令:
sudo mkfs.ext4 -L FOO -m 0 /dev/sda1
稍后,您的日志文件系統就在“/dev/sda1”上準備好了。
您可以將其掛載在任意位置,但是我們還是為NAS創建一個用戶吧。我們稱他為“nas”。我們將他的私人目錄設置為在任何地方都可寫且可粘滯。可粘滯即像“/tmp”那樣可以暫存文件。復制并粘貼以下指令到您的終端。
sudo useradd -b /home -m -p $( pwgen --secure 32 1 ) -c "NAS account" nas sudo chmod 1777 /home/nas sudo mount -o rw,noatime,nodev,nosuid,noexec /dev/sda1 /home/nas sudo chown nas:nas /home/nas sudo chmod 1777 /home/nas
為了確保我們每次都在“/home/nas”處掛載此磁盤,請使用磁盤標識符。“/dev/sda1”設備可能會被更改。“sda”可能會變成下一次啟動時的USB拇指驅動硬盤。但是,磁盤標識符不會被更改。那我們就來實現它吧!
sudo fdisk -l /dev/sda
將輸出類似以下的內容:
Disk /dev/sda: 223.6 GiB, 240057409536 bytes, 468862128 sectors Disk model: Crucial_CT240M50 Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disklabel type: dos Disk identifier: 0x0acb1143 Device Boot Start End Sectors Size Id Type /dev/sda1 2048 468862127 468860080 223.6G 83 Linux
我們想要命令行以“磁盤標識符”作為開頭。刪除“0x0acb1143”中開頭的“0x”,并在后面加上“-01”,這樣您就能夠得到與“/dev/sda1”意義相同、并且具有唯一性的磁盤標識符了。現在我們把所需要的字符串“0acb1143-01”添加到fstab:
PARTUUID=0acb1143-01 /home/nas ext4 defaults,noatime,nodev,nosuid,noexec,noauto 0 0
最后一個掛載參數是“noauto”,含義為在系統啟動時Pi不會自動將該分區掛載到指定掛載點中。這在您忘記插入磁盤的時候會很有用。在您準備部署NAS的時候可以忽略“noauto”。“noauto”的唯一缺點是您必須以“pi”的身份登錄并運行以下指令:
sudo mount /home/nas
…… 每次重啟之后。
現在使用以下指令掛載磁盤:
sudo mount /home/nas
一切都進展的很順利!好吧,也不完全是。
1.2.2 NAS服務
您需要啟用一些服務功能。幸運的是,我們安裝了ProFTPd,Samba,并且在第一次啟動的時候就已經安裝了OpenSSH。
首先,將此文件解壓到“pi”主目錄中。您將會進行大量的文件傳輸,所以最好現在安裝FileZilla 。將rpi4_nas+hurricane.zip復制到您Pi上的“/home/pi”中,然后將以下內容復制并粘貼到Pi的終端:
unzip rpi4_nas+hurricane.zip sudo cp -vp /etc/proftpd/proftpd.conf /etc/proftpd/proftpd.conf.bak sudo cp -v proftpd.conf /etc/proftpd sudo chown root:root /etc/proftpd/proftpd.conf sudo chmod 0644 /etc/proftpd/proftpd.conf sudo cp -vp /etc/samba/smb.conf /etc/samba/smb.conf.bak sudo cp -v smb.conf /etc/samba/smb.conf sudo chown root:root /etc/samba/smb.conf sudo chmod 0644 /etc/samba/smb.conf sudo service proftpd restart sudo systemctl enable proftpd echo "ProFTPd (FTP) has been started and enabled on boot!" sudo service smbd restart sudo systemctl enable smbd echo "Samba (SMB/CIFS) has been started and enabled on boot!" sudo service ssh start sudo systemctl enable ssh echo "Secure Shell (SSH) has been started and enabled on boot!" echo "Enter SMB/CIFS password to be used for user 'nas'" sudo smbpasswd nas echo "Enter SMB/CIFS password to be used for user 'pi'" echo "(This does not need to match your 'pi' login password!)" sudo smbpasswd pi
當您的Pi完成了指令的接收后(并且您已經輸入了一些密碼),您就可以通過FTP、SMB/CIFS以及SSH訪問您的NAS了。FTP和SSH都可以讓您使用“nas”用戶的密碼登錄到您的NAS中。您可以根據需要使用“sudo passwd nas”指令對密碼進行更改。“smbclient”已經安裝好了,那么我們來看一下您的系統為網絡提供了哪些功能:
smbclient -N -L //localhost
輸出內容
Anonymous login successful Sharename Type Comment --------- ---- ------- homes Disk User Home Directories IPC$ IPC Service (Samba 4.9.5-Debian) Reconnecting with SMB1 for workgroup listing. Anonymous login successful Server Comment --------- ------- Workgroup Master --------- ------- WORKGROUP
用我的“nas”用戶名(密碼為“foo bar baz”)進行登錄,并將磁盤掛載到“/home/nas”中。
pi@uNAS 0 ~ $ smbclient --encrypt //localhost/homes --user=nas%'foo bar baz' Try "help" to get a list of possible commands. smb: > ls . D 0 Wed Jul 31 10:54:46 2019 .. D 0 Wed Jul 31 08:15:21 2019 nas D 0 Tue Jul 30 20:48:48 2019 lost+found D 0 Sun Oct 7 15:10:07 2018 disk_speed_test.log N 215 Wed Jul 31 09:16:49 2019 disk_speed_test.sh N 795 Wed Jul 31 07:10:49 2019 479639216 blocks of size 1024. 455131416 blocks available smb: > exit
“smbclient”的程序可能不太簡單易懂,但是我們只需要關注兩個指令就可以了。這兩個指令是相同的,不過第一個是說明性的,第二個會連接到“nas”用戶的主文件夾。
smbclient --encrypt //IP_ADDRESS/SERVICE --user=USERNAME%PASSWORD smbclient --encrypt //127.0.0.1/homes --user=nas%'foo bar baz'
1.2.3 磁盤和網絡性能
USB3.0的傳輸速度最高可以達到5Gbit/s (625MByte/s),但是幾乎沒有旋轉(如磁力)驅動器的傳輸速度可以超過800Mbit/s (100MByte/s)。那要怎么辦呢?
在這種情況下,使用2.5″驅動器,并且使用少于5W的功率是個不錯的選擇。我在網絡上和本地Pi上的速度測試結果幾乎都約為640Mbit/s。您可以通過包含“disk_speed_test.sh”的腳本自己進行測試,或者直接用以下指令進行測試:
sudo ./disk_speed_test.sh [!] Unmounting /dev/sda1 (if mounted) ... vm.drop_caches = 0 [!] Testing write speed (cached) ... 1024+0 records in 1024+0 records out 1073741824 bytes (1.1 GB, 1.0 GiB) copied, 12.1259 s, 88.5 MB/s vm.drop_caches = 3 [!] Testing write speed (uncached) ... 1024+0 records in 1024+0 records out 1073741824 bytes (1.1 GB, 1.0 GiB) copied, 12.6074 s, 85.2 MB/s removed '/mnt/nulls.dd' vm.drop_caches = 0 [!] Testing cached/buffered read speeds (three times) ... /dev/sda: Timing cached reads: 1648 MB in 2.00 seconds = 824.24 MB/sec Timing buffered disk reads: 244 MB in 3.02 seconds = 80.78 MB/sec /dev/sda: Timing cached reads: 1658 MB in 2.00 seconds = 829.26 MB/sec Timing buffered disk reads: 242 MB in 3.01 seconds = 80.46 MB/sec /dev/sda: Timing cached reads: 1656 MB in 2.00 seconds = 827.66 MB/sec Timing buffered disk reads: 242 MB in 3.00 seconds = 80.65 MB/sec
USB2的理論最高傳輸速度為480Mbit/s (~60Mbyte/s),但實際上卻從來沒有達到過這個速度,所以從這一點來說是一個很大的進步。基于這種數據傳輸速率,您可以在一分鐘以內傳輸約5.1GB的數據量,一小時內傳輸超過300GB的數據量。如果測試性能不佳,使用指令“sudo hdparm -B 255 /dev/sda”,然后再次進行測試。如果沒有成功,用“lsusb”指令檢查一下您的USB3設備是否真的是一個USB3設備。查找bcdUSB。我的磁盤報告顯示的是“bcdUSB 3.0”。您的結果呢?
pi@uNAS 0 ~ $ lsusb # ... Bus 002 Device 003: ID 1058:0748 Western Digital Technologies, Inc. My Passport (WDBKXH, WDBY8L) # ... # Only look at specific device, use USB VID:PID pi@uNAS 0 ~ $ lsusb -d 1058:0748 Bus 002 Device 003: ID 1058:0748 Western Digital Technologies, Inc. My Passport (WDBKXH, WDBY8L) # More verbose, please pi@uNAS 0 ~ $ lsusb -d 1058:0748 -v | egrep 'bcdUSB|MaxPower' bcdUSB 3.00 MaxPower 896mA
報告的內容很全面,而且我的驅動器確實是USB3。同時,它顯示使用了最大功率4.48W。太好了!
對于網絡,請使用CAT6線纜,如果您的路由器和Pi之間有交換機,請確保是千兆交換機。我費了較大的功夫才找到了適用于許多TCP數據包的最佳設置,事實證明Raspbian在這方面已經做的很好了。如果您發現有什么問題,請在您的Pi終端嘗試以下操作:
sudo sysctl -w net.ipv4.tcp_window_scaling=1 sudo sysctl -w net.core.rmem_max=16777216 sudo sysctl -w net.core.wmem_max=16777216 sudo sysctl -w net.ipv4.tcp_rmem='4096 87380 16777216' sudo sysctl -w net.ipv4.tcp_wmem='4096 16384 16777216'
如果有幫助的話,請按照以下方式來保存您的更改,使其不會在重啟后失效:
sudo cat>>/etc/sysctl.conf<<-"EOF" net.ipv4.tcp_window_scaling = 1 net.core.rmem_max = 16777216 net.ipv4.tcp_rmem = 4096 87380 16777216 net.ipv4.tcp_wmem = 4096 16384 16777216 EOF sysctl -p
2 附加收獲:Raspberry Pi “HURRiCANE!”冷卻系統
大量的能耗會產生大量的熱量。Raspberry Pi 4無法避免溫度高達176度的過熱問題,而這種過熱問題會導致CPU的頻率低至600MHz。您大可以將四個Raspberry Pi的集群設備放置到您的桌面上,但是如果沒有冷卻裝置,您就只能瀏覽文本形式的網頁,以及用vi來閱讀電子書了。
有兩種方法可以解決這個問題。第一個方法是使用像ICE Tower CPU散熱器這樣的僅對CPU進行散熱的裝置。第二個方法是在每個負載下發熱的芯片上都安裝一個小尺寸的長款散熱片,然后將足夠的氣流推入并穿過這些芯片。但是在本項目中,我僅使用了一個3W的風扇,就將系統溫度降低到了約104度。CPU風扇需要能在12伏電壓下運行。讓我們一起來實現它吧!
2.1 BOM:
1x ROHM SLR343BC4TT32 3mm LED | https://www.avnet.com/shop/us/products/rohm/slr343bc4tt32-3074457345627700657 |
Raspberry Pi 4 | https://www.adafruit.com/product/4296 |
Raspberry Pi 4 電源 (USB-C) | https://www.raspberrypi.org/products/type-c-power-supply/ |
microHDMI 到 HDMI 適配器 | https://www.newark.com/pro-signal/psg03627/audio-video-connector-a-hdmi-plug/dp/86T1307 |
16GB microSD 卡 | https://www.newark.com/transcend/tsraspi10-16gv2/microsd-card-raspberry-pi-board/dp/49AC7645 |
USB3 硬盤 | https://www.amazon.com/Seagate-Portable-External-Drive-STGX1000400/dp/B07CRG7BBH |
1x IRLZ24N N通道 MOSFET | https://www.newark.com/infineon/irlz24npbf/n-channel-mosfet-55v-18a-to-220ab/dp/63J7702 |
2x BAT86 肖特基二極管 | https://www.newark.com/nexperia/bat86/rectifier-diode-single-50-v-200/dp/96K6771 |
2x 330 歐姆電阻 | https://www.newark.com/multicomp/mccfr0w4j0331a50/carbon-film-resistor-330-ohm-250mw/dp/58K5042 |
1x 4K7 歐姆電阻 | https://www.newark.com/multicomp/mccfr0w4j0472a50/carbon-film-resistor-4-7kohm-250mw/dp/58K5056 |
1x 12V 1A 電源 | https://www.newark.com/xp-power/vel12us120-us-ja/adaptor-ac-dc-12v-1a/dp/71Y7923 |
1x 12V 風扇 | https://www.newark.com/sanyo-denki/9a0812h401/axial-fan-80mm-12vdc-130ma/dp/96M6913 |
跳線 | https://www.newark.com/adafruit/758/kit-contents/dp/88W2570 |
萬用板 | https://www.newark.com/multicomp/mc001796/stripboard-100mm-x-100mm/dp/24AC5039 |
面包板 | https://www.newark.com/global-specialties/ubs-100/breadboard-mold-in-bus-strips/dp/17C6982 |
3x 2P 2.54mm 螺絲端子 | https://www.newark.com/phoenix-contact/1725656/terminal-block-pcb-2-position/dp/71C4107 |
焊接 | https://www.newark.com/kester-solder/24-6040-0027/solder-wire-60-40-sn-pb-190-c/dp/34C5648 |
3x 長款散熱片 | https://www.adafruit.com/product/3082 |
2.2 ‘HURRiCANE!’ Raspberry Pi 控制腳本
首先,將以下腳本程序復制到您的Pi主文件下。復制后,在您的Pi終端輸入“cat >>hurricane.sh<<-“EOF”。然后,粘貼腳本,按回車鍵,輸入EOF,再按回車鍵。
[begin hurricane.sh]
#! /usr/bin/env bash # Depends on the 'wiringpi' package. set -u -o pipefail trap 'printf "n[!] Cleaning up pin modes and bailing out!n" ; /usr/bin/gpio export 18 low ; /usr/bin/gpio export 23 low ; exit ' INT TERM _fan_pin=18 # BCM18, BOARD12 _led_pin=23 # BCM23, BOARD16 # Don't let it run for too long _temp_upper=55 # Start at _temp_lower=45 # Stop at _is_cooling_active=0 _interval=5 _gpio=$( which gpio || NO ) if [ $_gpio = NO ] ; then echo "ERROR: Is wiringpi installed? Do 'sudo apt-get -y install wiringpi'." exit 1 fi function printBanner { cat < ${_temp_f}F" return $_temp_f } # Fahrenheit to celsius: C = ( F - 32 ) * 5/9 function fahrenheit2celsius { local _temp_c=$( echo $1 | awk '{ printf( "%.1dn", ( $1 - 32 ) * 5/9 ) }' ) #echo "${1}F => ${_temp_c}C" return "$_temp_c" } function hurricane { if [ $# -eq 0 ] ; then echo no args? ; return 1 ; fi if [ $1 -eq 1 ] ; then echo "HURRiCANE cooling system: ACTIVE" $_gpio export $_fan_pin high $_gpio export $_led_pin high _is_cooling_active=1 elif [ $1 -eq 0 ] ; then echo "HURRiCANE cooling system: INACTIVE" $_gpio export $_fan_pin low $_gpio export $_led_pin low _is_cooling_active=0 fi } printBanner while true ; do _temp=$( vcgencmd measure_temp | awk -F= '{print $2} ' | awk -F. '{print $1}' ) _temp_f=$( celsius2fahrenheit $_temp ) if [[ $_temp -ge $_temp_upper && _is_cooling_active -eq 0 ]] then hurricane 1 elif [[ $_temp -le $_temp_lower && _is_cooling_active -eq 1 ]] then hurricane 0 fi celsius2fahrenheit $_temp printf "System temperature: ${_temp}C / %iFn" $? sleep $_interval done
[end hurricane.sh]
需要注意的是變量“_temp_upper”和“_temp_lower”之間的間隔很短。第一個設定的是您希望能夠觸發冷卻系統啟動的溫度值,第二個設定的是風扇停止運作的最低溫度值。這樣既可以降低噪音,也可以延長風扇的使用壽命。
剩下的就是制作電路板了。不用擔心這會很復雜,其實非常簡單。
2.3 項目完成!
看這張Fritzing示意圖!展示的是已經應用到NASA太空實驗室以外的微型計算機上的最棒的通風系統!什么?通風系統?因為外太空太冷了,冷卻系統其實就相當于一個氣閥室,而且全面通風對于太空站來說是完全不可能的。
好吧,我們先來看一下兩種不同的冷卻方式:
功能強大,但是閑置的時候溫度為55C/131F。
很多電子設備會因為熱應力導致損壞,尤其是沒有移動部件的電子設備。熱應力來自于物體尺寸的膨脹和收縮,而這種尺寸變化肉眼是無法識別的。幾年更換一次風扇要比無形中損失一個Pi好得多。Robinsons可承擔不了失去機器人朋友帶來的損失。
所幸的是,“HURRiCANE!”可以解決所有問題!我們想要的是在CPU和Wi-Fi/藍牙芯片上,在主板的左上方,以及在CPU左邊的芯片上能夠有一些不錯的長款散熱器。銅的導熱性很好,但是鋁能夠更容易地將其釋放到“HURRiCANE!”的氣流中。
豎高型的結構可以增加散熱的表面積,這意味著我們可以避免Raspberry Pi 4發生遲滯。
以上組件列表中的散熱器均帶有導熱膠帶。我們之所以需要三個,是因為Raspberry Pi左上角的三個大的芯片高度不均勻。
CPU 和Wi-Fi/藍牙芯片上有RF屏蔽罩,這使得在上面放置一個大尺寸散熱器變得非常困難。在接入三個散熱器之前,請務必先用蘸有異丙醇的棉簽將其擦拭干凈。
我為我的Raspberry Pi 4購買了性能最好的小型“動態冷卻系統”產品中的一種。但是它沒有達到冷卻的效果,反而吸收了很多熱量。IRLZ24N MOSFET消除了所有不合理的功率問題,在2V電壓下順利導通(所以3.1V電壓會更好),并且以防MOSFET出現故障,我們使用BAT86肖特基勢壘二極管來保護我們的輸出引腳BCM18/BOARD12和BCM23/BOARD16。注意,BCM18/BOARD12引腳是PWM引腳,您可以根據需要將電壓降低到3.1V以下。
將12V電壓連接到風扇的正極端子,并將風扇的負極端子連接到MOSFET的漏極后,我們可以將負載放置到相應位置。然后,我們將MOSFET的源極接地,將BCM18/BOARD12與一個正向偏置到柵極的BAT86二極管串聯,最后連接一個330歐姆的電阻以將最大電流限制在10mA。
請注意,從柵極到GND有一個4K7下拉電阻,如果沒有這個電阻,當柵極的供電沒有達到3.1V時會產生振蕩,這樣的話就無法可靠地(或者快速地)關閉MOSFET。所以一定記得加上下拉電阻。
然后,制作小尺寸電路板。
使用三個2P 2.54mm螺絲端子可以讓您Raspberry Pi的信號線連接變得更加容易,您需要為其做上永久性的標記。我標記的是“Fan S+”,“12V”,“GND”和“LED S+”,而在風扇上,我只標記了“+”和“-”。
保護您Pi輸出引腳的兩個二極管很重要。如果您的二極管偏置錯誤,就必須把它們拆解下來并進行翻轉。您需要將陰極面向Pi引腳,陽極面向MOSFET和LED的陽極。在上面的圖示中,陽極用黑色小環進行了標記。肖特基二極管僅產生大約0.2V的壓降,所以我們可以放心地將它們與Pi配合使用, 并且可以保證MOSFET啟動時產生合理的導通電阻。在3W的負載下,我們的IRLZ24N溫度甚至不會升高到室溫以上。如果您使用大功率CPU風扇,比如10-12W,那可能需要連接一個1W的小散熱器,尺寸不要太大。
組裝并焊接好電路板后,將其連接到您的Raspberry Pi 4,該冷卻系統可以持續工作很多很多年。使用WiringPi庫可以使其比上文中的腳本簡單很多,我們只用將引腳上的電壓值在3.3V和0V之間進行翻轉就可以了。需要注意的是,使用12伏的風扇只是因為它們功率大并且數量多。您也可以根據自己的需要選擇5伏的風扇。
祝您玩得愉快!
Lasse Efrayim Jespersen
Lasse出生于以色列,后移居到緯度較冷的地區。出于個人天然的興趣愛好,他一步步走近了直接的Perl、高效的C/C++、以及優雅的MicroPython。他非常喜歡用ESP8266/ESP32/Raspberry Pi 和Arduino來構建機器。
審核編輯黃宇
-
服務器
+關注
關注
12文章
9123瀏覽量
85324 -
NAS
+關注
關注
11文章
284瀏覽量
112440 -
Raspberry Pi
+關注
關注
2文章
558瀏覽量
22196
發布評論請先 登錄
相關推薦
評論