由於本人在這段時候,看到了一個叫做樹莓派的東東,初步瞭解之後覺得很有意思,於是想把整個過程記錄下來。
Raspberry Pi(中文名為樹莓派,簡寫為RPi,(或者RasPi / RPI) 是為學習計算機程式設計教育而設計),只有信用卡大小的微型電腦,
其系統基於Linux。隨著Windows 10 IoT的釋出,我們也將可以用上執行Windows的樹莓派。自問世以來,受眾多計算機發燒友和創客的追捧,
曾經一“派”難求。別看其外表“嬌小”,內“心”卻很強大,影片、音訊等功能通通皆有,可謂是麻雀雖小,五臟俱全。
這或許是一個對你有用的開源專案,專案介紹
mall專案是一套基於 SpringBoot3 + JDK 17 + Vue 實現的電商系統(Github標星60K),
採用Docker容器化部署,後端支援多模組和微服務架構。
包括前臺商城專案和後臺管理系統,能支援完整的訂單流程!涵蓋商品、訂單、購物車、許可權、優惠券、會員、支付等功能!
- Boot專案:https://github.com/macrozheng/mall
- Cloud專案:https://github.com/macrozheng/mall-swarm
- 影片教程:https://www.macrozheng.com/video/
- 我們要做的專案如下
材料準備
市面上大多是3代B+型,淘寶一搜樹莓派一大堆都是,價錢純主機板(不要任何外設)在230+左右,有點小貴,超過我的預算,所以我繼續尋找廉價的,終於讓我發現了一款100+的樹莓派。
樹莓派zero w是一款mini的樹莓派,體質只有3b+的1/3。實際到手後,你會發現它真的超級小,超級可愛。以下是我的實物圖,你可以看看大小到底有多mini。
你可以看到,最上面是一根普通的黑色簽字筆,接下來是一個即插即用型的外接wifi網路卡,然後是一個USB讀卡器,最底下的就是我們今天的主角zero w。它真的超級小,有木有。真的是完美的詮釋了那句“麻雀雖小,五臟俱全”的話。
系統引數
zero w這款樹莓派的主要引數如下:
- BCM2835處理器,1GHz主頻,512MB RAM
- BCM43438 WiFi / BT晶片
- micro-USB電源介面
- micro-USB OTG介面
- miniHDMI埠
- 複合影片和重置擴充套件介面
- 脆弱的CSI攝像頭介面
- micro-SD卡座,存放作業系統
- 40-pin GPIO擴充套件介面
- 尺寸:65mm*30mm
你別看它的cpu只有1核,記憶體只有512MB,就覺得它可能什麼都做不了,但是實際上它的效能還是很好的,用於跑一個網站真的是小case。
你可能提前需要準備的東西如下:
- 16GB or 32GB 的SanDisk記憶體卡(注意是以前那種放在手機上,很小的哦)
- 一根最普通不過的usb安卓資料線(not type-c)
- u盤格式化工具(推薦使用 SDFormatter)
- 系統燒寫工具(Win32DiskImager)
- 樹莓派系統(可以去官網下載)
我使用的是Raspbian Stretch Lite這個系統映象,這個系統是官方製作的,lite是無桌面版的,只有黑漆漆的控制檯,優點是體積小,省效能和記憶體。
名字帶有desktop的是有桌面ui的,對不熟悉liunx系統的朋友可能更友好,但是體積很大,佔用的效能也會更高。
第一步下載系統映象
下載好你需要的系統映象後,如下圖
一開始只有一個zip的壓縮包,大小大概360MB左右,你需要把它解壓,得到上圖的資料夾
然後進入資料夾可以看到一個img的映象,大小為1.7GB左右
這個官方的Raspbian映象,如果是其他第三方的映象,可能下載後的壓縮包解壓後不是img映象,這種情況請另行百度解決
3.使用Win32DiskImager往記憶體卡中寫入映象
把記憶體卡插入讀卡器後,插入電腦。開啟Win32DiskImager軟體後,選擇img映象,裝置選擇你的隨身碟,然後點選寫入就可以了,寫入完成後會彈出成功的提示框。
ps: 我上圖沒有選擇裝置,因為的沒插入讀卡器,僅僅是示範而已
4.修改boot分割槽的檔案
先別急著拔出讀卡器,此時,我們電腦可以看到u盤中只有一個名為boot的分割槽,大小可能只有40MB左右,不要著急,因為window不識別記憶體卡中liunx系統的其他分割槽。
4.1新建ssh檔案
因為我們的zero w有一個mini hdmi的介面,但是我不需要螢幕,所以需要使用ssh連線到zero w中的系統,所以需要在第一次開機就能開啟ssh功能。我們進入boot分割槽內,然後新建一個名為ssh的檔案,注意不要字尾名!!!!也不要往裡面寫任何東西!!
4.2新建wpa_supplicant.conf檔案
因為ssh連線是需要ip地址的,所以我們需要將zero w在第一次開機自動連線wifi,使其和我們的電腦處於一個區域網,這樣我們才可以透過ssh連線到zero w的系統。同樣的在boot分割槽內,新建一個名為wpa_supplicant.conf的檔案,然後往裡面寫入如下內容後儲存:
country=CN
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="你的wifi名字"
psk="你的wifi密碼"
}
5.組裝我們的最小主機並連線
取出讀卡器中的記憶體卡,然後插入到zero w中,使用一根usb安卓資料線連線電源(5V1A)即可。等待幾分鐘,期間我們的zero w的指示燈會一直閃爍,很正常,等待指示燈常亮的時候,我們去路由器上,檢視一下樹莓派的ip地址。
可以看到我們zero w的ip為192.168.0.104,然後使用ssh連線工具(推薦使用putty)連線樹莓派,初始賬戶為pi,密碼是raspberry。
連線成功,如上圖所示。這樣我們的系統就正確無誤的安裝好了。
ps: 如果是手機開啟熱點當做一個路由器的話,咱們手機下載一個名叫android terminal的app,然後輸入
ip neigh
指令,就可以查到連線到手機的裝置的ip資訊了。
6.最佳化咱們樹莓派的系統
6.1修改源
因為國外的源,咱們在國內的連線過去網速很慢,所以我們需要修改為國內的源,我修改的是中科大的源。
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修改時區
sudo dpkg-reconfigure tzdata
找到亞洲Asia,然後選擇shanghai就可以了
6.3開機自啟ssh
第一種:
sudo raspi-config
進入選擇找到interfacing option選擇,然後找到ssh,按回車使能enable就可以了
第二種:在終端命令列中啟動SSH服務後,如果系統重啟或關機後啟動,SSH服務預設是關閉的,依然需要手動啟動,為了方便可以設定SSH服務開機自動啟動,開啟/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的頁面,說明安裝好了。我這邊上傳了我的部落格,如下圖
可以正常的看到頁面了,但是這樣只能在內網(區域網中)看到,我想讓所有人都可以訪問怎麼辦?
8.內網穿透
內網穿透,意思就是將內網(本地)的web應用透過nat穿透到公網上,從而讓別人可以訪問到。
內網穿透目前主要由ngrok和frp兩種,都非常好用,國內ngrok免費的有ittun、sunny和natapp,這三個都是免費的,前面兩個可以自定義域名,後面的需要vip版本才可以自定義域名。
我這三種都試過,我發現sunny的arm版本的ngrok客戶端在我的樹莓派執行不了,ittun的和natpp的ngrok都可以,由於需要自定義域名,我使用的是ittun的ngrok_arm版本的
使用方法這三者官網都有詳細說明,大家自行檢視。
這是正常執行時的截圖:
因為需要ngrok在後臺執行,所以我用的是screen會話使其可以在後臺執行。但是開啟自啟,還沒有實現,萬一斷電或者斷網了,我必須手動去執行一下ngrok,這是目前沒有解決的痛點。
9.更多
樹莓派不僅僅只是可以用於執行一個網站,還有很多很多的功能等待你的開發,可以多去看看樹莓派實驗室裡面,很多大神都寫了很多實用的教程。
我的zero w狀態資訊如下:
在上面開啟了一個nginx和ngrok服務,記憶體剩餘還有250MB,還是很舒服的,cpu溫度也不算高,執行兩天了,基本在37-39之間。
Github上標星60K
的電商實戰專案mall,全套 影片教程(2023最新版) 已更新完畢!全套教程約40小時,共113期
,透過這套教程你可以擁有一個涵蓋主流Java技術棧的完整專案經驗
,同時提高自己獨立開發一個專案的能力
,下面是專案的整體架構圖,感興趣的小夥伴可以點選連結 mall影片教程 加入學習。
整套 影片教程 的內容還是非常完善的,涵蓋了mall專案最佳學習路線、整體框架搭建、業務與技術實現全方位解析、線上Docker環境部署、微服務專案學習等內容,你也可以點選連結 mall影片教程 瞭解更多內容。