No.1 樹(shù)莓派是什么?
Raspberry Pi(中文名為樹(shù)莓派,簡(jiǎn)寫(xiě)為 RPi,(或者 RasPi / RPI) 是為學(xué)習計算機編程教育而設計),只有信用卡大小的微型電腦,其系統基于 Linux。隨著(zhù) Windows 10 IoT 的發(fā)布,我們也將可以用上運行 Windows 的樹(shù)莓派。自問(wèn)世以來(lái),受眾多計算機發(fā)燒友和創(chuàng )客的追捧,曾經(jīng)一“派”難求。別看其外表“嬌小”,內“心”卻很強大,視頻、音頻等功能通通皆有,可謂是麻雀雖小,五臟俱全。
1. 用我的話(huà)理解
用我的話(huà)理解就是樹(shù)莓派就是一臺主機,你可以外接顯示器,鍵盤(pán)鼠標,u盤(pán)等等外設,因為它體積很小,而且又有很多串口和外接的口,可以直接調用很多底層硬件。
2. 市面上的型號
市面上大多是 3 代 B+ 型,淘寶一搜樹(shù)莓派一大堆都是,價(jià)錢(qián)純主板(不要任何外設)在 230+ 左右,有點(diǎn)小貴,超過(guò)我的預算,所以我繼續尋找廉價(jià)的,終于讓我發(fā)現了一款 100+ 的樹(shù)莓派。
3. 樹(shù)莓派 zero w
樹(shù)莓派 zero w 是一款 mini 的樹(shù)莓派,體質(zhì)只有 3b+ 的 1/3。實(shí)際到手后,你會(huì )發(fā)現它真的超級小,超級可愛(ài)。以下是我的實(shí)物圖,你可以看看大小到底有多 mini。你可以看到,最上面是一根普通的黑色簽字筆,接下來(lái)是一個(gè)即插即用型的外接 wifi 網(wǎng)卡,然后是一個(gè) USB 讀卡器,最底下的就是我們今天的主角 zero w。它真的超級小,有木有。真的是完美的詮釋了那句“麻雀雖小,五臟俱全”的話(huà)。zero w 這款樹(shù)莓派的主要參數如下:? BCM2835 處理器,1GHz 主頻,512MB RAM你別看它的 cpu 只有 1 核,內存只有 512MB,就覺(jué)得它可能什么都做不了,但是實(shí)際上它的性能還是很好的,用于跑一個(gè)網(wǎng)站真的是小 case。微信搜索readdot,關(guān)注后回復編程資源獲取23種精品資料
4. 更多樹(shù)莓派
關(guān)于更多樹(shù)莓派型號或者使用教程你可以去樹(shù)莓派實(shí)驗室這個(gè)網(wǎng)站,上面有豐富的資源。
No.2 樹(shù)莓派zero w安裝系統
1. 準備
? 16GB or 32GB 的 SanDisk 內存卡(注意是以前那種放在手機上,很小的哦)? 一根最普通不過(guò)的 usb 安卓數據線(xiàn)(not type-c)? u 盤(pán)格式化工具(推薦使用 SDFormatter)? 系統燒寫(xiě)工具(Win32DiskImager)? 樹(shù)莓派系統(可以去官網(wǎng)下載)我使用的是 Raspbian Stretch Lite 這個(gè)系統鏡像,這個(gè)系統是官方制作的,lite 是無(wú)桌面版的,只有黑漆漆的控制臺,優(yōu)點(diǎn)是體積小,省性能和內存。名字帶有 desktop 的是有桌面 ui 的,對不熟悉 liunx 系統的朋友可能更友好,但是體積很大,占用的性能也會(huì )更高。 圖片
2. 第一步下載系統鏡像
一開(kāi)始只有一個(gè) zip 的壓縮包,大小大概 360MB 左右,你需要把它解壓,得到上圖的文件夾。然后進(jìn)入文件夾可以看到一個(gè) img 的鏡像,大小為 1.7GB 左右。ps:這個(gè)官方的 Raspbian 鏡像,如果是其他第三方的鏡像,可能下載后的壓縮包解壓后不是 img 鏡像,這種情況請另行百度解決。
3. 使用 Win32DiskImager 往內存卡中寫(xiě)入鏡像
打開(kāi) Win32DiskImager 軟件后,選擇 img 鏡像,設備選擇你的 U 盤(pán),然后點(diǎn)擊寫(xiě)入就可以了,寫(xiě)入完成后會(huì )彈出成功的提示框。ps: 我上圖沒(méi)有選擇設備,因為的沒(méi)插入讀卡器,僅僅是示范而已
4. 修改 boot 分區的文件
先別急著(zhù)拔出讀卡器,此時(shí),我們電腦可以看到 u 盤(pán)中只有一個(gè)名為 boot 的分區,大小可能只有 40MB 左右,不要著(zhù)急,因為 window 不識別內存卡中 liunx 系統的其他分區。
4.1 新建 ssh 文件
因為我們的 zero w 有一個(gè) mini hdmi 的接口,但是我不需要屏幕,所以需要使用 ssh 連接到 zero w 中的系統,所以需要在第一次開(kāi)機就能開(kāi)啟 ssh 功能。我們進(jìn)入 boot 分區內,然后新建一個(gè)名為 ssh 的文件,注意不要后綴名?。。?!也不要往里面寫(xiě)任何東西??!
4.2 新建 wpa_supplicant.conf 文件
因為 ssh 連接是需要 ip 地址的,所以我們需要將 zero w 在第一次開(kāi)機自動(dòng)連接 wifi,使其和我們的電腦處于一個(gè)局域網(wǎng),這樣我們才可以通過(guò) ssh 連接到 zero w 的系統。同樣的在 boot 分區內,新建一個(gè)名為 wpa_supplicant.conf 的文件,然后往里面寫(xiě)入如下內容后保存:
country=CN
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="你的wifi名字"
psk="你的wifi密碼"
}
5. 組裝我們的最小主機并連接
取出讀卡器中的內存卡,然后插入到 zero w 中,使用一根 usb 安卓數據線(xiàn)連接電源(5V1A)即可。等待幾分鐘,期間我們的 zero w 的指示燈會(huì )一直閃爍,很正常,等待指示燈常亮的時(shí)候,我們去路由器上,查看一下樹(shù)莓派的 ip 地址。可以看到我們 zero w 的 ip 為 192.168.0.104,然后使用 ssh 連接工具(推薦使用 putty)連接樹(shù)莓派,初始賬戶(hù)為 pi,密碼是 raspberry。微信搜索readdot,關(guān)注后回復編程資源獲取23種精品資料 圖片連接成功,如上圖所示。這樣我們的系統就正確無(wú)誤的安裝好了。ps: 如果是手機開(kāi)啟熱點(diǎn)當做一個(gè)路由器的話(huà),咱們手機下載一個(gè)名叫 android terminal 的 app,然后輸入 ip neigh 指令,就可以查到連接到手機的設備的 ip 信息了。
6. 優(yōu)化咱們樹(shù)莓派的系統
6.1 修改源
因為國外的源,咱們在國內的連接過(guò)去網(wǎng)速很慢,所以我們需要修改為國內的源,我修改的是中科大的源。
6.1.1 修改 sources.list 文件
sudo nano /etc/apt/sources.list
--注釋其他內容,添加以下:
deb http://mirrors.ustc.edu.cn/raspbian/raspbian/raspbian stretch main contrib non-free rpi
6.1.2 修改 raspi.list 文件
sudo nano /etc/apt/sources.list.d/raspi.list
--注釋其他內容,添加以下:
deb http://mirrors.ustc.edu.cn/archive.raspberrypi.org/debian stretch main ui
6.1.3 執行更新
sudo apt-get update
sudo apt-get upgrade
6.2 修改時(shí)區
sudo dpkg-reconfigure tzdata
找到亞洲 Asia,然后選擇 shanghai 就可以了。
6.3 開(kāi)機自啟 ssh
進(jìn)入選擇找到 interfacing option 選擇,然后找到 ssh,按回車(chē)使能 enable 就可以了。在終端命令行中啟動(dòng) SSH 服務(wù)后,如果系統重啟或關(guān)機后啟動(dòng),SSH 服務(wù)默認是關(guān)閉的,依然需要手動(dòng)啟動(dòng),為了方便可以設置 SSH 服務(wù)開(kāi)機自動(dòng)啟動(dòng),打開(kāi) /etc/rc.local 文件,在語(yǔ)句 exit 0 之前加入:/etc/init.d/ssh start
7. 安裝 nginx
#安裝
sudo apt-get install nginx
#啟動(dòng)
sudo /etc/init.d/nginx start
#重啟
sudo /etc/init.d/nginx restart
#停止
sudo /etc/init.d/nginx stop
打開(kāi)瀏覽器訪(fǎng)問(wèn) 192.168.0.104(你的樹(shù)莓派 ip 地址),可以看到 nginx 的頁(yè)面,說(shuō)明安裝好了。 圖片可以正常的看到頁(yè)面了,但是這樣只能在內網(wǎng)(局域網(wǎng)中)看到,我想讓所有人都可以訪(fǎng)問(wèn)怎么辦?
8. 內網(wǎng)穿透
內網(wǎng)穿透,意思就是將內網(wǎng)(本地)的 web 應用通過(guò) nat 穿透到公網(wǎng)上,從而讓別人可以訪(fǎng)問(wèn)到。內網(wǎng)穿透目前主要由 ngrok 和 frp 兩種,都非常好用,國內 ngrok 免費的有 ittun、sunny 和 natapp,這三個(gè)都是免費的,前面兩個(gè)可以自定義域名,后面的需要 vip 版本才可以自定義域名。我這三種都試過(guò),我發(fā)現 sunny 的 arm 版本的 ngrok 客戶(hù)端在我的樹(shù)莓派運行不了,ittun 的和 natpp 的 ngrok 都可以,由于需要自定義域名,我使用的是 ittun 的 ngrok_arm 版本的。使用方法這三者官網(wǎng)都有詳細說(shuō)明,大家自行查看。這是正常運行時(shí)的截圖,訪(fǎng)問(wèn) http://zerow.ittun.com/ 時(shí)可以... 圖片 圖片因為需要 ngrok 在后臺運行,所以我用的是 screen 會(huì )話(huà)使其可以在后臺運行。但是開(kāi)啟自啟,還沒(méi)有實(shí)現,萬(wàn)一斷電或者斷網(wǎng)了,我必須手動(dòng)去運行一下 ngrok,這是目前沒(méi)有解決的痛點(diǎn)。
9. 更多
樹(shù)莓派不僅僅只是可以用于運行一個(gè)網(wǎng)站,還有很多很多的功能等待你的開(kāi)發(fā),可以多去看看樹(shù)莓派實(shí)驗室里面,很多大神都寫(xiě)了很多實(shí)用的教程。這個(gè)zero w 狀態(tài)信息如下: 圖片在上面開(kāi)啟了一個(gè) nginx 和 ngrok 服務(wù),內存剩余還有 250MB,還是很舒服的,cpu 溫度也不算高,運行兩天了,基本在 37-39 之間。