No.1
前言
由于本人在這段時候嗽交,看到了一個叫做樹莓派的東東卿嘲,初步了解之后覺得很有意思,于是想把整個過程記錄下來夫壁。
No.2
樹莓派是什么拾枣?
Raspberry Pi(中文名為樹莓派,簡寫為 RPi,(或者 RasPi / RPI) 是為學(xué)習(xí)計算機(jī)編程教育而設(shè)計)盒让,只有信用卡大小的微型電腦梅肤,其系統(tǒng)基于 Linux。隨著 Windows 10 IoT 的發(fā)布邑茄,我們也將可以用上運(yùn)行 Windows 的樹莓派姨蝴。
自問世以來,受眾多計算機(jī)發(fā)燒友和創(chuàng)客的追捧肺缕,曾經(jīng)一“派”難求左医。別看其外表“嬌小”,內(nèi)“心”卻很強(qiáng)大同木,視頻浮梢、音頻等功能通通皆有,可謂是麻雀雖小彤路,五臟俱全秕硝。
1. 用我的話理解
用我的話理解就是樹莓派就是一臺主機(jī),你可以外接顯示器洲尊,鍵盤鼠標(biāo)远豺,u盤等等外設(shè)奈偏,因為它體積很小,而且又有很多串口和外接的口躯护,可以直接調(diào)用很多底層硬件惊来。
2. 市面上的型號
市面上大多是 3代B+ 型,淘寶一搜樹莓派一大堆都是棺滞,價錢純主板(不要任何外設(shè))在 230+ 左右唁盏,有點(diǎn)小貴,超過我的預(yù)算检眯,所以我繼續(xù)尋找廉價的,終于讓我發(fā)現(xiàn)了一款 100+ 的樹莓派昆淡。
3. 樹莓派 zero w
樹莓派 zero w 是一款 mini 的樹莓派锰瘸,體質(zhì)只有 3b+ 的 1/3。實(shí)際到手后昂灵,你會發(fā)現(xiàn)它真的超級小避凝,超級可愛。以下是我的實(shí)物圖眨补,你可以看看大小到底有多 mini管削。
你可以看到,最上面是一根普通的黑色簽字筆撑螺,接下來是一個即插即用型的外接 wifi 網(wǎng)卡含思,然后是一個 USB 讀卡器,最底下的就是我們今天的主角 zero w甘晤。它真的超級小含潘,有木有。真的是完美的詮釋了那句“麻雀雖小线婚,五臟俱全”的話遏弱。
zero w?這款樹莓派的主要參數(shù)如下:
?? BCM2835 處理器,1GHz 主頻塞弊,512MB RAM
???BCM43438 WiFi / BT 芯片
???micro-USB 電源接口
???micro-USB OTG 接口
???miniHDMI 端口
???復(fù)合視頻和重置擴(kuò)展接口
???脆弱的 CSI 攝像頭接口
???micro-SD 卡座漱逸,存放操作系統(tǒng)
???40-pin GPIO 擴(kuò)展接口
???尺寸:65mm*30mm
你別看它的 cpu 只有 1 核,內(nèi)存只有 512MB游沿,就覺得它可能什么都做不了饰抒,但是實(shí)際上它的性能還是很好的,用于跑一個網(wǎng)站真的是小 case奏候。
4. 更多樹莓派
關(guān)于更多樹莓派型號或者使用教程你可以去樹莓派實(shí)驗室這個網(wǎng)站循集,上面有豐富的資源。
No.3
樹莓派zero w安裝系統(tǒng)
1. 準(zhǔn)備
你可能提前需要準(zhǔn)備的東西如下:
???16GB or 32GB 的 SanDisk 內(nèi)存卡(注意是以前那種放在手機(jī)上蔗草,很小的哦)
???一根最普通不過的 usb 安卓數(shù)據(jù)線(not type-c)
???u 盤格式化工具(推薦使用 SDFormatter)
???系統(tǒng)燒寫工具(Win32DiskImager)
???樹莓派系統(tǒng)(可以去官網(wǎng)下載)
我使用的是 Raspbian Stretch Lite 這個系統(tǒng)鏡像咒彤,這個系統(tǒng)是官方制作的疆柔,lite 是無桌面版的,只有黑漆漆的控制臺镶柱,優(yōu)點(diǎn)是體積小旷档,省性能和內(nèi)存。
名字帶有 desktop 的是有桌面 ui 的歇拆,對不熟悉 liunx 系統(tǒng)的朋友可能更友好鞋屈,但是體積很大,占用的性能也會更高故觅。
2. 第一步下載系統(tǒng)鏡像
下載好你需要的系統(tǒng)鏡像后厂庇,如下圖
一開始只有一個 zip 的壓縮包,大小大概 360MB 左右输吏,你需要把它解壓权旷,得到上圖的文件夾。
然后進(jìn)入文件夾可以看到一個 img 的鏡像贯溅,大小為 1.7GB 左右拄氯。
ps:這個官方的 Raspbian 鏡像,如果是其他第三方的鏡像它浅,可能下載后的壓縮包解壓后不是 img 鏡像译柏,這種情況請另行百度解決。
3. 使用 Win32DiskImager 往內(nèi)存卡中寫入鏡像
把內(nèi)存卡插入讀卡器后姐霍,插入電腦鄙麦。
打開 Win32DiskImager 軟件后,選擇 img 鏡像邮弹,設(shè)備選擇你的 U 盤黔衡,然后點(diǎn)擊寫入就可以了,寫入完成后會彈出成功的提示框腌乡。
ps: 我上圖沒有選擇設(shè)備盟劫,因為的沒插入讀卡器,僅僅是示范而已
4. 修改 boot 分區(qū)的文件
先別急著拔出讀卡器与纽,此時侣签,我們電腦可以看到 u 盤中只有一個名為 boot 的分區(qū),大小可能只有 40MB 左右急迂,不要著急影所,因為 window 不識別內(nèi)存卡中 liunx 系統(tǒng)的其他分區(qū)。?
4.1 新建 ssh 文件
因為我們的 zero w 有一個 mini hdmi 的接口僚碎,但是我不需要屏幕猴娩,所以需要使用 ssh 連接到 zero w 中的系統(tǒng),所以需要在第一次開機(jī)就能開啟 ssh 功能。
我們進(jìn)入 boot 分區(qū)內(nèi)卷中,然后新建一個名為 ssh 的文件矛双,注意不要后綴名!s≡ァR楹觥!也不要往里面寫任何東西J酢栈幸!
4.2 新建 wpa_supplicant.conf 文件
因為 ssh 連接是需要 ip 地址的,所以我們需要將 zero w 在第一次開機(jī)自動連接 wifi帮辟,使其和我們的電腦處于一個局域網(wǎng)速址,這樣我們才可以通過 ssh 連接到 zero w 的系統(tǒng)。
同樣的在 boot 分區(qū)內(nèi)由驹,新建一個名為 wpa_supplicant.conf 的文件壳繁,然后往里面寫入如下內(nèi)容后保存:
country=CN
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="你的wifi名字"
psk="你的wifi密碼"
}
5. 組裝我們的最小主機(jī)并連接
取出讀卡器中的內(nèi)存卡,然后插入到 zero w 中荔棉,使用一根 usb 安卓數(shù)據(jù)線連接電源(5V1A)即可。
等待幾分鐘蒿赢,期間我們的 zero w 的指示燈會一直閃爍润樱,很正常,等待指示燈常亮的時候羡棵,我們?nèi)ヂ酚善魃弦既簦榭匆幌聵漭傻?ip 地址。
可以看到我們 zero w 的 ip 為 192.168.0.104皂冰,然后使用 ssh 連接工具(推薦使用 putty)連接樹莓派店展,初始賬戶為 pi,密碼是 raspberry秃流。
連接成功赂蕴,如上圖所示。這樣我們的系統(tǒng)就正確無誤的安裝好了舶胀。
ps: 如果是手機(jī)開啟熱點(diǎn)當(dāng)做一個路由器的話概说,咱們手機(jī)下載一個名叫 android terminal 的 app,然后輸入 ip neigh 指令嚣伐,就可以查到連接到手機(jī)的設(shè)備的 ip 信息了糖赔。
6. 優(yōu)化咱們樹莓派的系統(tǒng)
6.1 修改源
因為國外的源,咱們在國內(nèi)的連接過去網(wǎng)速很慢轩端,所以我們需要修改為國內(nèi)的源放典,我修改的是中科大的源。
6.1.1 修改 sources.list 文件
sudo nano /etc/apt/sources.list
--注釋其他內(nèi)容,添加以下:
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
--注釋其他內(nèi)容奋构,添加以下:
deb http://mirrors.ustc.edu.cn/archive.raspberrypi.org/debian stretch main ui6.1.3 執(zhí)行更新
sudo apt-get update
sudo apt-get upgrade
6.2 修改時區(qū)
sudo dpkg-reconfigure tzdata
找到亞洲 Asia壳影,然后選擇 shanghai 就可以了。
6.3 開機(jī)自啟 ssh
第一種:
sudo raspi-config
進(jìn)入選擇找到 interfacing option 選擇声怔,然后找到 ssh态贤,按回車使能 enable 就可以了。
第二種:
在終端命令行中啟動 SSH 服務(wù)后醋火,如果系統(tǒng)重啟或關(guān)機(jī)后啟動悠汽,SSH 服務(wù)默認(rèn)是關(guān)閉的,依然需要手動啟動芥驳,為了方便可以設(shè)置 SSH 服務(wù)開機(jī)自動啟動柿冲,打開 /etc/rc.local 文件,在語句 exit 0 之前加入:/etc/init.d/ssh start
建議都試試兆旬,反之我的是可以了假抄。
7. 安裝 nginx
#安裝
sudo apt-get install nginx
#啟動
sudo /etc/init.d/nginx start
#重啟
sudo /etc/init.d/nginx restart
#停止
sudo /etc/init.d/nginx stop
打開瀏覽器訪問 192.168.0.104(你的樹莓派 ip 地址),可以看到 nginx 的頁面丽猬,說明安裝好了宿饱。
我這邊上傳了我的博客,如下圖
可以正常的看到頁面了脚祟,但是這樣只能在內(nèi)網(wǎng)(局域網(wǎng)中)看到谬以,我想讓所有人都可以訪問怎么辦?
8. 內(nèi)網(wǎng)穿透
內(nèi)網(wǎng)穿透由桌,意思就是將內(nèi)網(wǎng)(本地)的 web 應(yīng)用通過 nat 穿透到公網(wǎng)上为黎,從而讓別人可以訪問到。
內(nèi)網(wǎng)穿透目前主要由 ngrok 和 frp 兩種行您,都非常好用铭乾,國內(nèi) ngrok 免費(fèi)的有 ittun、sunny 和 natapp娃循,這三個都是免費(fèi)的炕檩,前面兩個可以自定義域名,后面的需要 vip 版本才可以自定義域名捌斧。
我這三種都試過捧书,我發(fā)現(xiàn) sunny 的 arm 版本的 ngrok 客戶端在我的樹莓派運(yùn)行不了,ittun 的和 natpp 的 ngrok 都可以骤星,由于需要自定義域名经瓷,我使用的是 ittun 的 ngrok_arm 版本的。
使用方法這三者官網(wǎng)都有詳細(xì)說明洞难,大家自行查看舆吮。
這是正常運(yùn)行時的截圖,訪問 http://zerow.ittun.com/ 時可以...
因為需要 ngrok 在后臺運(yùn)行,所以我用的是 screen 會話使其可以在后臺運(yùn)行色冀。但是開啟自啟潭袱,還沒有實(shí)現(xiàn),萬一斷電或者斷網(wǎng)了锋恬,我必須手動去運(yùn)行一下 ngrok屯换,這是目前沒有解決的痛點(diǎn)。
9. 更多
樹莓派不僅僅只是可以用于運(yùn)行一個網(wǎng)站与学,還有很多很多的功能等待你的開發(fā)彤悔,可以多去看看樹莓派實(shí)驗室里面,很多大神都寫了很多實(shí)用的教程索守。
我的 zero w 狀態(tài)信息如下:
在上面開啟了一個 nginx 和 ngrok 服務(wù)晕窑,內(nèi)存剩余還有 250MB,還是很舒服的卵佛,cpu 溫度也不算高杨赤,運(yùn)行兩天了,基本在 37-39 之間截汪。