π節(jié)談Raspberry Pi:樹(shù)莓派的9個(gè)有趣的應(yīng)用
編譯:付斌
今天,世界各地的技術(shù)團(tuán)隊(duì)一些人將會(huì)過(guò)這個(gè)極其特殊的節(jié)日——π節(jié)(圓周率日)。3月14日(在美國(guó)寫(xiě)成3/14)被稱為Pi Day,這是一個(gè)人們?cè)陴W餅吃比賽,披薩派對(duì)和數(shù)學(xué)雙關(guān)語(yǔ)中度過(guò)的假期。3月14日也恰好是阿爾伯特愛(ài)因斯坦的生日,同時(shí)也是Linux內(nèi)核1.0.0的發(fā)布紀(jì)念日,另外還是Eli Whitney為棉花申請(qǐng)專利的那一天杜松子酒。
今天是π節(jié)的第30個(gè)周年紀(jì)念日。第一次是1988年在舊金山的物理學(xué)家Larry Shaw在Exploratorium舉行的?!霸诘谝淮桅泄?jié),工作人員帶來(lái)了水果餡餅和茶壺慶?;顒?dòng),直至?xí)r間在1:59 - 跟隨3.14的pi數(shù)字 - 肖在博物館周?chē)M(jìn)行了一次圓形游行,他的音箱將pi的數(shù)字咆哮成“Pomp and Circumstance”的音樂(lè)?!爸钡?1年后,2009年3月,Pi日成為美國(guó)的官方國(guó)定假日。
盡管它始于舊金山,但在普林斯頓大學(xué)可以找到最大的π節(jié)慶?;顒?dòng)之一。該鎮(zhèn)在為期五天的活動(dòng)中舉辦了許多活動(dòng),包括愛(ài)因斯坦相似的比賽,一場(chǎng)投擲餡餅的活動(dòng)以及一場(chǎng)pi背誦比賽。有些活動(dòng)甚至為獲勝者提供314.15美元的現(xiàn)金獎(jiǎng)勵(lì)。
據(jù)了解,麻省理工學(xué)院斯隆管理學(xué)院(Twitter@MITSloan)正在慶祝π節(jié)。嵌入式工程師其實(shí)也有著π中法寶——樹(shù)莓派,下面讓我們來(lái)看一些樹(shù)莓派的有趣妙用。
媒體中心
Raspberry Pi在人們家中最常見(jiàn)的用途之一是支持多媒體文件的電視運(yùn)行媒體中心軟件。設(shè)置它很容易,Raspberry Pi提供了大量的GPU(圖形處理器)功能,可以將高清電視節(jié)目和電影呈現(xiàn)給大屏幕電視。Raspberry Pi上的Kodi(以前稱為XBMC)是播放硬盤(pán)或網(wǎng)絡(luò)附加存儲(chǔ)上的任何媒體的絕佳方式。您還可以安裝插件來(lái)播放YouTube視頻。
有幾種不同的選擇,最突出的是OSMC(開(kāi)源媒體中心)和LibreELEC,兩者都基于Kodi。它們?cè)诓シ琶襟w內(nèi)容方面表現(xiàn)良好,但OSMC具有更具視覺(jué)沖擊力的用戶界面,而LibreElec則更輕巧。您所要做的就是選擇一個(gè)發(fā)行版,下載圖像并安裝在SD卡上(或者只使用NOOBS),啟動(dòng)它,然后就可以開(kāi)始了。
SSH網(wǎng)關(guān)
如果您希望能夠通過(guò)Internet從外部訪問(wèn)家庭網(wǎng)絡(luò)上的計(jì)算機(jī)和設(shè)備,則必須在這些設(shè)備上打開(kāi)端口以允許外部流量。打開(kāi)互聯(lián)網(wǎng)端口存在安全風(fēng)險(xiǎn),這意味著您始終面臨攻擊,濫用或任何未經(jīng)授權(quán)的訪問(wèn)風(fēng)險(xiǎn)。但是,如果您在網(wǎng)絡(luò)上安裝Raspberry Pi并設(shè)置端口轉(zhuǎn)發(fā)以僅允許SSH訪問(wèn)該P(yáng)i,則可以將其用作安全網(wǎng)關(guān)以跳轉(zhuǎn)到網(wǎng)絡(luò)上的其他Pis和PC。
大多數(shù)路由器允許您配置端口轉(zhuǎn)發(fā)規(guī)則。您需要為您的Pi提供固定的內(nèi)部IP地址,并在路由器上設(shè)置端口22以映射到Raspberry Pi上的端口22。如果您的ISP為您提供靜態(tài)IP地址,您將能夠使用此作為主機(jī)地址進(jìn)行SSH連接(例如,ssh pi@123.45.56.78)。如果您有域名,則可以將子域配置為指向此IP地址,因此您不必記住它(例如,ssh pi@home.mydomain.com)。
但是,如果您要將Raspberry Pi暴露給互聯(lián)網(wǎng),您應(yīng)該非常小心,不要讓您的網(wǎng)絡(luò)面臨風(fēng)險(xiǎn)。您可以遵循一些簡(jiǎn)單的程序來(lái)確保其足夠安全:
1.建議更改你的登錄密碼(這是有道理的,因?yàn)槟J(rèn)密碼“raspberry”是眾所周知的),但這并不能防止暴力攻擊。您可以更改密碼并添加雙因素身份驗(yàn)證(因此您需要密碼和手機(jī)生成的時(shí)間相關(guān)密碼),這樣更安全。但是,我認(rèn)為保護(hù)Raspberry Pi免受入侵者攻擊的最佳方法是禁用“密碼驗(yàn)證”在SSH配置中,因此您只允許SSH密鑰訪問(wèn)。這意味著任何試圖通過(guò)猜測(cè)密碼進(jìn)入SSH的人都不會(huì)成功。只有您的私人SSH密鑰才能獲得訪問(wèn)權(quán)限。同樣,大多數(shù)人建議將SSH端口從默認(rèn)的22更改為意外的,但是IP地址的簡(jiǎn)單Nmap將顯示您真正的SSH端口。
2.理想情況下,不會(huì)對(duì)這個(gè)Pi上的其他軟件造成太大影響,所以你最終不會(huì)意外地暴露任何其他東西。如果您想運(yùn)行其他軟件,您可能最好在未暴露于互聯(lián)網(wǎng)的網(wǎng)絡(luò)上的另一個(gè)Pi上運(yùn)行它。確保通過(guò)定期升級(jí)(特別是openssh-server軟件包)使軟件包保持最新,以便修補(bǔ)任何安全漏洞。
3.安裝sshblack或fail2ban以將任何似乎惡意行為的用戶列入黑名單,例如嘗試暴力破解您的SSH密碼。
一旦您保護(hù)了Raspberry Pi并將其置于在線狀態(tài),您就可以從世界上任何地方登錄您的網(wǎng)絡(luò)。在使用Raspberry Pi后,您可以使用其本地IP地址(例如,192.168.1.31)通過(guò)網(wǎng)絡(luò)連接到網(wǎng)絡(luò)上的其他設(shè)備。如果您在這些設(shè)備上有密碼,只需使用密碼即可。如果它們也只是SSH密鑰,則需要確保使用-A標(biāo)志通過(guò)SSH轉(zhuǎn)發(fā)密鑰:ssh -A pi@123.45.67.89。
寵物相機(jī)
另一個(gè)有趣的項(xiàng)目是設(shè)置相機(jī)模塊來(lái)拍攝照片或流式傳輸視頻,捕獲和保存文件,或在內(nèi)部流式傳輸或上傳到互聯(lián)網(wǎng)。您可能希望這樣做有很多原因,但兩個(gè)常見(jiàn)的用例是自制安全攝像頭或監(jiān)視寵物。
這個(gè)樹(shù)莓派相機(jī)模塊是非常棒的配件。它提供全高清照片和視頻,許多高級(jí)配置,并且編程簡(jiǎn)單。該紅外相機(jī)是適合這種用途,并用紅外LED,另外還具有夜視功能。
如果你想定期拍攝靜態(tài)圖像來(lái)關(guān)注事物,你可以寫(xiě)一個(gè)簡(jiǎn)短的Python腳本或使用命令行工具raspistill,并安排它在Cron中重現(xiàn)。您可能希望將它們保存到Dropbox或其他Web服務(wù),將它們上載到Web服務(wù)器,或者甚至可以創(chuàng)建Web應(yīng)用程序來(lái)顯示它們。
如果你想在內(nèi)部或外部流式傳輸視頻,那也很容易。picamera文檔中提供了一個(gè)簡(jiǎn)單的MJPEG(Motion JPEG)示例(在“web streaming”下)。只需將該代碼下載或復(fù)制到文件中,運(yùn)行它并訪問(wèn)端口8000的Pi的IP地址,您就會(huì)看到相機(jī)的輸出正常顯示。
更先進(jìn)的流媒體項(xiàng)目,pistreaming,是可用的,它使用JSMpeg與Web服務(wù)器和獨(dú)立運(yùn)轉(zhuǎn)相機(jī)流的WebSocket(一個(gè)JavaScript視頻播放器)。此方法性能更高,并且與上一個(gè)示例一樣容易運(yùn)行,但涉及的代碼更多,如果設(shè)置為在Internet上流式傳輸,則需要打開(kāi)兩個(gè)端口。
設(shè)置好網(wǎng)絡(luò)流媒體后,您可以將相機(jī)放置在您想要的位置。我有一個(gè)設(shè)置來(lái)關(guān)注我的寵物烏龜:
如果希望能夠控制相機(jī)實(shí)際指向的位置,可以使用伺服器進(jìn)行控制。一個(gè)簡(jiǎn)潔的解決方案是使用Pimoroni的Pan-Tilt HAT,它允許您在兩個(gè)維度上輕松移動(dòng)相機(jī)。
如果你想把你的樹(shù)莓派放在外面,你需要一個(gè)防水外殼和一些方法來(lái)獲得派的電源。PoE(以太網(wǎng)供電)電纜是實(shí)現(xiàn)這一目標(biāo)的好方法。
家庭自動(dòng)化和物聯(lián)網(wǎng)
它是2017年,到處都有互聯(lián)網(wǎng)設(shè)備,特別是在家里。我們的燈泡有Wi-Fi,我們的烤面包比以前更聰明,我們的茶壺有遭受俄羅斯攻擊的危險(xiǎn)。只要您保持設(shè)備安全,或者如果不需要將它們連接到互聯(lián)網(wǎng),那么您就可以充分利用物聯(lián)網(wǎng)設(shè)備來(lái)自動(dòng)完成家中的任務(wù)。
您可以購(gòu)買(mǎi)或訂購(gòu)許多服務(wù),例如Nest Thermostat或Philips Hue燈泡,無(wú)論您是在家還是在外,您都可以分別通過(guò)手機(jī)控制加熱或照明。您可以使用Raspberry Pi通過(guò)根據(jù)一組涉及計(jì)時(shí)或甚至傳感器的規(guī)則自動(dòng)與它們進(jìn)行交互來(lái)提高這些類型設(shè)備的功能。飛利浦Hue無(wú)法做到的一件事就是當(dāng)你進(jìn)入房間時(shí)燈亮了,但是使用Raspberry Pi和運(yùn)動(dòng)傳感器,你可以使用Python API打開(kāi)燈。同樣地,你可以配置你的Nest在家里打開(kāi)暖氣,但如果只有至少兩個(gè)人在家的話你只想打開(kāi)它怎么辦?編寫(xiě)一些Python代碼來(lái)檢查網(wǎng)絡(luò)上的哪些手機(jī)以及是否至少有兩部手機(jī),如果不與現(xiàn)有的物聯(lián)網(wǎng)設(shè)備集成并且只使用簡(jiǎn)單的組件,您可以做更多的事情。自制的防盜報(bào)警器,自動(dòng)雞舍開(kāi)門(mén)機(jī),夜燈,音樂(lè)盒,定時(shí)加熱燈,自動(dòng)備份服務(wù)器,打印服務(wù)器或任何你能想象到的東西。
Tor代理和廣告屏蔽器
Adafruit的Onion Pi是一個(gè)Tor代理,它使您的網(wǎng)絡(luò)流量匿名,允許您使用互聯(lián)網(wǎng)免費(fèi)窺探和任何類型的監(jiān)控。關(guān)注Adafruit關(guān)于設(shè)置Onion Pi的教程,您就可以獲得寧?kù)o的匿名瀏覽體驗(yàn)。
您可以在網(wǎng)絡(luò)上安裝Raspberry Pi,攔截所有網(wǎng)絡(luò)流量并過(guò)濾掉任何廣告。只需將Pi-hole軟件下載到Pi上,您網(wǎng)絡(luò)上的所有設(shè)備都將沒(méi)有廣告(甚至可以阻止移動(dòng)設(shè)備上的應(yīng)用內(nèi)廣告)。
用Linux,Python和樹(shù)莓派釀造啤酒
十多年前,我開(kāi)始釀造自己的啤酒。像大多數(shù)家庭釀酒師一樣,我開(kāi)始在我的廚房里制作基于提取物的啤酒。這需要最少的設(shè)備,仍然產(chǎn)生非常美味的啤酒。最終,我使用一個(gè)大型冷卻器為我的搗碎桶加強(qiáng)了全谷物釀造。幾年來(lái),我一次釀造5加侖,但釀造10加侖需要相同的時(shí)間和精力(并且只需要稍微大一點(diǎn)的設(shè)備),所以幾年前我加強(qiáng)了它。移動(dòng)到10加侖之后,我偶然發(fā)現(xiàn)了StrangeBrew Elsinore,并意識(shí)到我真正需要做的是將整個(gè)系統(tǒng)轉(zhuǎn)換為全電動(dòng),然后用Raspberry Pi運(yùn)行它。
有很多很好的信息可用于構(gòu)建您自己的全電動(dòng)自制系統(tǒng),大多數(shù)釀酒商從TheElectricBrewery.com開(kāi)始。將控制面板放在一起可能會(huì)變得相當(dāng)復(fù)雜,盡管最簡(jiǎn)單的方法在那里得到了很好的概述。當(dāng)然,你也可以采取更便宜的方法,最終得到相同的結(jié)果 - 煮沸水壺和熱水箱由加熱元件供電,并由PID控制器管理。我認(rèn)為這有點(diǎn)太無(wú)聊了(這也意味著你沒(méi)有得到你的釀造過(guò)程的整潔圖表)。
五金用品
在我談到自己的項(xiàng)目之前,我決定開(kāi)始購(gòu)買(mǎi)零件。我的基本設(shè)計(jì)是熱水箱(HLT)和煮沸的水壺,其中加有5500w的加熱元件,還有一個(gè)帶有假底的搗碎桶。我將使用泵通過(guò)HLT中的50'不銹鋼盤(pán)管(“熱交換器再循環(huán)搗碎系統(tǒng)”,稱為HERMS)再循環(huán)醪液。我需要第二臺(tái)泵來(lái)循環(huán)HLT中的水,并幫助將水轉(zhuǎn)移到混合桶中。所有電氣元件都將由Raspberry Pi控制。
建立我的電動(dòng)釀造系統(tǒng)并盡可能多地自動(dòng)化意味著我將需要以下內(nèi)容:
HLT配有5500w電加熱元件
HERMS線圈(50英尺1/2英寸不銹鋼)在HLT中
煮沸的水壺配有5500w的電加熱元件
多個(gè)固態(tài)繼電器可以打開(kāi)和關(guān)閉加熱器
2個(gè)高溫食品級(jí)泵
用于打開(kāi)和關(guān)閉泵的繼電器
配件和高溫硅管
不銹鋼球閥
1線溫度探頭
很多電線
電氣箱可容納一切
構(gòu)建電氣系統(tǒng)的細(xì)節(jié)實(shí)際上已經(jīng)被The Electric Brewery所涵蓋,所以我不會(huì)重復(fù)他們的詳細(xì)信息。在計(jì)劃用Raspberry Pi替換PID控制器時(shí),您可以通讀并遵循他們的建議。
需要注意的一件重要事情是固態(tài)繼電器(SSR)信號(hào)電壓。許多教程建議使用需要12伏信號(hào)的SSR來(lái)關(guān)閉電路。但是,Raspberry Pi GPIO引腳僅輸出3v。請(qǐng)務(wù)必購(gòu)買(mǎi)將在3伏電壓下觸發(fā)的繼電器。
要運(yùn)行您的釀造系統(tǒng),您的Pi必須做兩件事:從幾個(gè)不同的位置感知溫度,打開(kāi)和關(guān)閉繼電器以控制加熱元件。Raspberry Pi很容易處理這些任務(wù)。
將溫度傳感器連接到Pi有幾種不同的方法,但我發(fā)現(xiàn)最方便的方法是使用1-Wire總線。這允許多個(gè)傳感器共享相同的線(實(shí)際上是三根線),這使其成為檢測(cè)brew系統(tǒng)中多個(gè)組件的便捷方式。如果您在線尋找防水DS18B20溫度傳感器,您會(huì)發(fā)現(xiàn)很多選擇。我在項(xiàng)目中使用了Hilitchi DS18B20防水溫度傳感器。
為了控制加熱元件,Raspberry Pi包括幾個(gè)可通過(guò)軟件尋址的通用IO(GPIO)引腳。這允許您通過(guò)簡(jiǎn)單地在文件中放入1或0來(lái)將3.3v發(fā)送到中繼。當(dāng)我第一次學(xué)習(xí)所有這些工作時(shí),使用GPIO教程的Raspberry Pi-Driving a Relay對(duì)我來(lái)說(shuō)是最有幫助的。GPIO控制多個(gè)固態(tài)繼電器,按照釀造軟件的指示打開(kāi)和關(guān)閉加熱元件。
我首先開(kāi)始在盒子上工作以容納所有組件。因?yàn)檫@將全部放在滾動(dòng)車(chē)上,我希望它相對(duì)便攜而不是永久安裝。如果我有一個(gè)地方(例如,在車(chē)庫(kù),雜物間或地下室內(nèi)),我會(huì)在墻上安裝一個(gè)更大的電箱。相反,我找到了一個(gè)體面的防水項(xiàng)目盒,我預(yù)計(jì)我可以把所有東西都塞進(jìn)去。最后,事實(shí)證明它有點(diǎn)緊張,但它確實(shí)很有效。在左下角是帶有分線板的Pi,用于將GPIO連接到1-Wire溫度探頭和固態(tài)繼電器。
為了保持240v SSR的冷卻,我在外殼上切孔,并在它們之間堆疊銅墊片,CPU冷卻油脂和安裝在盒子外面的散熱片。它工作得很好,盒子里面沒(méi)有任何冷卻問(wèn)題。在蓋子上,我為120v插座放了兩個(gè)開(kāi)關(guān),加上兩個(gè)240v LED,以顯示哪個(gè)加熱元件通電。我使用干燥器插頭和插座進(jìn)行所有連接,因此可以輕松地將水壺與所有連接件斷開(kāi)連接。第一次嘗試時(shí),一切都正常。(首先勾勒出接線圖肯定會(huì)得到回報(bào)。)
這些圖片來(lái)自“概念驗(yàn)證”版本 - 最終的生產(chǎn)系統(tǒng)應(yīng)該有兩個(gè)以上的SSR,以便切換240v電路的兩條腿。我想通過(guò)軟件切換的另一件事是泵?,F(xiàn)在,它們通過(guò)盒子前面的物理開(kāi)關(guān)進(jìn)行控制,但它們可以通過(guò)繼電器輕松控制。
我需要的另一件事是有點(diǎn)棘手的找到溫度探頭的壓縮配件。探頭安裝在T型接頭中,位于HLT和醪槽中最低艙壁上的閥門(mén)之前。只要液體流過(guò)溫度傳感器,它就會(huì)準(zhǔn)確。我想在水壺中添加一個(gè)熱電偶套管,但我意識(shí)到根據(jù)我的釀造工藝對(duì)我來(lái)說(shuō)不會(huì)有用。無(wú)論如何,我購(gòu)買(mǎi)了1/4“壓縮配件,他們完美地完成了。
軟件
一旦硬件整理好,我就有時(shí)間玩這個(gè)軟件了。我在Pi上運(yùn)行了最新的Raspbian發(fā)行版 ; 操作系統(tǒng)方面沒(méi)有什么特別之處。
我開(kāi)始使用Strangebrew Elsinore釀造軟件,當(dāng)朋友問(wèn)我是否聽(tīng)說(shuō)過(guò)Hosehead(一種基于Raspberry Pi的釀造控制器)時(shí),我發(fā)現(xiàn)了這種軟件。我認(rèn)為Hosehead看起來(lái)很棒,但我不想購(gòu)買(mǎi)釀酒控制器,而是想要建立自己的挑戰(zhàn)。
設(shè)置Strangebrew Elsinore很簡(jiǎn)單 - 文檔很徹底,我沒(méi)有遇到任何問(wèn)題。即使Strangebrew Elsinore工作得很好,但Java有時(shí)似乎會(huì)對(duì)我的第一代Pi造成負(fù)擔(dān),而且它不止一次地撞到了我身上。我也很遺憾看到發(fā)展失速,并且似乎沒(méi)有一個(gè)大型社區(qū)的額外貢獻(xiàn)者(雖然有 - 并且仍然有很多人使用它)。
CraftBeerPi
然后我偶然發(fā)現(xiàn)了CraftBeerPI,它是用Python編寫(xiě)的,并得到了活躍貢獻(xiàn)者的開(kāi)發(fā)社區(qū)的支持。原作者(和現(xiàn)任維護(hù)者)Manuel Fritsch非常善于處理貢獻(xiàn)并就人們開(kāi)放的問(wèn)題提供反饋??寺』刭?gòu)并開(kāi)始只花了我?guī)追昼?。README還有一個(gè)很好的連接DS1820溫度傳感器的例子,以及與Pi或CHIP計(jì)算機(jī)連接硬件的注意事項(xiàng)。
在啟動(dòng)時(shí),CraftBeerPi會(huì)引導(dǎo)用戶完成一個(gè)配置過(guò)程,該過(guò)程會(huì)發(fā)現(xiàn)可用的溫度探測(cè)器,并允許您指定哪些GPIO引腳管理哪些設(shè)備。
使用此系統(tǒng)運(yùn)行brew很容易。我可以指望它可靠地保持溫度,我可以為多溫步驟混合輸入步驟。使用CraftBeerPi讓我的釀造時(shí)間變得有點(diǎn)無(wú)聊,但我很樂(lè)意用傳統(tǒng)的手動(dòng)管理丙烷燃燒器的“興奮”來(lái)?yè)Q取這個(gè)系統(tǒng)的效率和一致性。
CraftBeerPI的用戶友好性激勵(lì)我設(shè)置另一個(gè)控制器來(lái)運(yùn)行“發(fā)酵室”。在我的情況下,這是一個(gè)二手冰箱,我找到了50美元加25美元的加熱器)在里面。CraftBeerPI可輕松控制冷卻和加熱元件,并可設(shè)置多個(gè)溫度步驟。例如,該圖顯示了我最近制作的IPA會(huì)議的發(fā)酵溫度。發(fā)酵室將發(fā)酵麥芽汁在67°F保持4天,然后每12小時(shí)升高一度直至其在72°F。這個(gè)溫度是為了兩天的雙乙酰休息。之后它被設(shè)定為下降到65F五天,在此期間我“干”跳啤酒。最后,啤酒被冷落到38F。CraftBeerPI添加了每個(gè)步驟,讓軟件管理發(fā)酵變得容易。
我也一直在試驗(yàn)TILT比重計(jì),通過(guò)藍(lán)牙連接的浮動(dòng)傳感器監(jiān)測(cè)發(fā)酵啤酒的重力。有一些集成計(jì)劃可以讓它與CraftBeerPI一起使用,但是現(xiàn)在它將重力記錄到Google電子表格中。一旦這個(gè)比重計(jì)可以與發(fā)酵控制器交談,設(shè)置直接根據(jù)酵母活動(dòng)采取行動(dòng)的自動(dòng)發(fā)酵配置文件將很容易 - 而不是在四天內(nèi)完成初級(jí)發(fā)酵,您可以設(shè)置溫度斜坡在重力后啟動(dòng)穩(wěn)定24小時(shí)。
與此類任何項(xiàng)目一樣,成像和計(jì)劃改進(jìn)以及其他組件也很容易。盡管如此,我對(duì)今天的情況感到滿意。我用這種設(shè)置釀造了很多啤酒,每次都達(dá)到了預(yù)期的醪液效率,啤酒一直都很美味。我最重要的客戶 - 我很滿意我在廚房里放的東西。
在樹(shù)莓派上部署Kubernetes
當(dāng)我對(duì)ARM設(shè)備,特別是Raspberry Pi 感興趣時(shí),我的第一個(gè)項(xiàng)目是OpenVPN服務(wù)器。
通過(guò)將Raspberry Pi作為家庭網(wǎng)絡(luò)的安全網(wǎng)關(guān),我可以使用手機(jī)控制桌面并遠(yuǎn)程播放Spotify,打開(kāi)文檔以及其他一些有趣的東西。我使用了第一個(gè)項(xiàng)目的現(xiàn)有教程,因?yàn)槲液ε略谖易约旱拿钚兄休斎肴魏螙|西。
幾個(gè)月后,這種恐懼消退了。我擴(kuò)展了我的原始項(xiàng)目,并使用Samba服務(wù)器從文件服務(wù)器中隔離了OpenVPN 服務(wù)器。這是我的第一個(gè)項(xiàng)目,我沒(méi)有按照教程逐字逐句。不幸的是,在我的Samba項(xiàng)目結(jié)束時(shí),我意識(shí)到我沒(méi)有記錄任何東西,所以我無(wú)法復(fù)制它。為了重新創(chuàng)建它,我不得不重新閱讀我用于參考的所有單獨(dú)的指南,并將項(xiàng)目重新組合在一起。
我學(xué)到了關(guān)于開(kāi)發(fā)人員工作流程的寶貴經(jīng)驗(yàn) - 跟蹤所有更改。我在本地制作了一個(gè)小git repo并記錄了我在命令行中輸入的所有命令。
發(fā)現(xiàn)Kubernetes
2015年5月,我發(fā)現(xiàn)了Linux容器和Kubernetes。對(duì)于Kubernetes,我認(rèn)為我可以參與一個(gè)技術(shù)上仍處于開(kāi)發(fā)階段的概念,這真是令人著迷 - 我實(shí)際上可以訪問(wèn)它。平臺(tái)本身及其呈現(xiàn)的可能性令人興奮。直到那時(shí),我剛剛在一個(gè)Raspberry Pi設(shè)備上運(yùn)行了一個(gè)程序。使用Kubernetes,我可以制作比以前更高級(jí)的配置。
那時(shí),ARM上的Docker(v1.6,如果我沒(méi)記錯(cuò)的話)有一個(gè)bug,這意味著在Raspberry Pi設(shè)備上運(yùn)行Kubernetes幾乎是不可能的。在早期的0.x版本中,Kubernetes發(fā)生了很快的變化。每當(dāng)我找到如何在AMD64上設(shè)置Kubernetes的指南時(shí),它就是舊版本,它與我當(dāng)時(shí)的版本完全不兼容。
無(wú)論如何,我都試圖在Raspberry Pi上創(chuàng)建一個(gè)Kubernetes節(jié)點(diǎn),并且通過(guò)v1.0.1 Kubernetes發(fā)布,我使用Docker v1.7.1 進(jìn)行了工作。這是將Kubernetes部署到ARM的第一個(gè)全功能方式。
在Raspberry Pi上運(yùn)行Kubernetes的優(yōu)勢(shì)在于,因?yàn)锳RM設(shè)備非常小,所以不會(huì)消耗大量功率。如果以正確的方式構(gòu)建程序,則可以對(duì)AMD64上的相同程序使用相同的命令。擁有小型物聯(lián)網(wǎng)板可以為教育創(chuàng)造良好機(jī)會(huì)。這對(duì)于設(shè)置您需要旅行的演示也很有用,例如會(huì)議。使用Raspberry Pi比拖拽(通常)大型Intel機(jī)器容易得多。
ARM二進(jìn)制文件隨Kubernetes自動(dòng)發(fā)布。雖然我們還沒(méi)有為ARM提供自動(dòng)CI(持續(xù)集成)系統(tǒng),但是在PR合并之前它自動(dòng)確保它在ARM上運(yùn)行,但它目前運(yùn)行良好。
Raspberry Pi上的分布式網(wǎng)絡(luò)
我通過(guò)kubeadm發(fā)現(xiàn)了Weave Net 。Weave Mesh是一個(gè)有趣的分布式網(wǎng)絡(luò)解決方案,所以我開(kāi)始閱讀更多關(guān)于它的信息。2016年12月,我收到了Weaveworks的第一份承包工作。我是Weave Net支持ARM的內(nèi)部團(tuán)隊(duì)的一員。
我很高興在Raspberry Pi上運(yùn)行Weave Net的工業(yè)用例,例如需要設(shè)備更具移動(dòng)性的工廠。目前,可能無(wú)法將Weave Scope或Weave Cloud部署到Raspberry Pi(盡管可以想象其他ARM設(shè)備),因?yàn)槲也逻@個(gè)軟件需要更多可用內(nèi)存才能運(yùn)行良好。理想情況下,隨著Raspberry Pi的2GB升級(jí),我想我能夠成功地啟動(dòng)Weave Cloud。
隨著Weave Net 1.9的發(fā)布,Weave Net如何支持ARM。Kubeadm(和Kubernetes一般)在多個(gè)平臺(tái)上工作。您可以像在任何AMD64設(shè)備上一樣將Kubernetes部署到ARM,就像在所有機(jī)器上一樣安裝Docker,kubeadm,kubectl和kubelet。然后,使用以下命令初始化將運(yùn)行控制平面組件的主機(jī):
kubeadm init
接下來(lái),使用以下命令安裝pod網(wǎng)絡(luò):
kubectl apply -f https://git.io/weave-kube
以前,在ARM上運(yùn)行時(shí),你只能用Flannel安裝一個(gè)pod網(wǎng)絡(luò),但自Weave Net 1.9發(fā)布以來(lái),這個(gè)版本已經(jīng)發(fā)生了變化,現(xiàn)在它也正式支持ARM。
最后,加入你的節(jié)點(diǎn):
kubeadm join --token
就是這樣!Kubernetes已部署到您的Raspberry Pi設(shè)備中。與在Intel / AMD64上運(yùn)行相比,您不需要做任何特別的事情; ARM上的Weave Net工作正常。
利用谷歌配件搭建的樹(shù)莓派語(yǔ)音控制助理
如果想要與Raspberry Pi交談,谷歌的一個(gè)套件將為你實(shí)現(xiàn)這個(gè)夢(mèng)想。去年谷歌推出了這么一款配件專門(mén)讓樹(shù)莓派可以使用Google智能助理SDK和Google的云語(yǔ)音API將Raspberry Pi 3轉(zhuǎn)換為語(yǔ)音驅(qū)動(dòng)的數(shù)字助理,從而為您的項(xiàng)目添加語(yǔ)音交互。
像Google Home(和亞馬遜的Echo)這樣的語(yǔ)音助手是最熱門(mén)的技術(shù)趨勢(shì),科技公司正試圖盡可能廣泛地采用他們自己的特定技術(shù)??紤]到已經(jīng)銷售了超過(guò)一千萬(wàn)臺(tái)設(shè)備,鼓勵(lì)Raspberry Pi修補(bǔ)工采用谷歌的技術(shù)將是一個(gè)巨大的勝利,并且它們被用作許多小工具背后的計(jì)算能力。
另外,樹(shù)莓派的基金會(huì)曾暗示谷歌正在為樹(shù)莓派計(jì)劃一些事情,稱搜索和廣告巨頭的AI和機(jī)器學(xué)習(xí)技術(shù)可以使制造商能夠構(gòu)建更強(qiáng)大的項(xiàng)目。據(jù)了解,現(xiàn)在這款配件已經(jīng)出貨了250,000個(gè)了,并為增加了多個(gè)新的分銷商,“所以未來(lái)這款配件將會(huì)唾手可得”。
谷歌全新配件:為樹(shù)莓派量身打造的AI視覺(jué)配件,可以發(fā)現(xiàn)貓、人甚至情感
谷歌除了推出了AI語(yǔ)音的配件,也推出了可讓樹(shù)莓派擁有機(jī)器視覺(jué)的配件。這個(gè)套件由谷歌的TensorFlow機(jī)器學(xué)習(xí)型號(hào)提供支持,很快將獲得一個(gè)附帶的Android應(yīng)用程序來(lái)控制該設(shè)備。
根據(jù)Google的說(shuō)法,Vision Kit具有“設(shè)備上的神經(jīng)網(wǎng)絡(luò)加速”功能,允許基于Raspberry Pi的盒子在沒(méi)有云處理的情況下進(jìn)行計(jì)算機(jī)視覺(jué)。AIY Voice Kit依靠云進(jìn)行自然語(yǔ)言處理。
制造商需要提供自己的Raspberry Pi Zero W,Raspberry Pi相機(jī),4GB SD卡和電源。Vision Kit本身包括VisionBonnet附件板,電纜,紙板盒和框架,鏡頭設(shè)備以及隱私LED,以便在相機(jī)打開(kāi)時(shí)告訴其他人。
VisionBonnet板由Google開(kāi)發(fā),采用英特爾Movidius MA2450視覺(jué)處理芯片。這款芯片是Vision Kit的秘訣。
項(xiàng)目團(tuán)隊(duì)成員表示該芯片在執(zhí)行計(jì)算機(jī)視覺(jué)方面的速度比Raspberry Pi 3快60倍。視覺(jué)套件制造商可以使用幾種神經(jīng)網(wǎng)絡(luò)程序,第一種可以檢測(cè)人,貓和狗的程序。另一個(gè)神經(jīng)網(wǎng)絡(luò)將檢測(cè)幸福,悲傷和其他情緒。還有另一個(gè)基于MobileNets的程序可以檢測(cè)1,000個(gè)不同的對(duì)象,例如椅子,橙色或杯子。
谷歌希望開(kāi)發(fā)人員能夠建立在這些神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上并將其應(yīng)用于新的任務(wù),例如讓貓/狗/人檢測(cè)器識(shí)別兔子。為了幫助實(shí)現(xiàn)這一目標(biāo),它提供了一個(gè)工具,用于使用TensorFlow編譯再訓(xùn)練模型的模型。
谷歌建議使用Vision Kit盒來(lái)識(shí)別各種植物和動(dòng)物物種,看看狗何時(shí)在后門(mén),或者當(dāng)汽車(chē)離開(kāi)車(chē)道,分析客人的情緒,甚至建立一個(gè)定制的家庭安全系統(tǒng)。
總結(jié)
看完這么多樹(shù)莓派的有趣應(yīng)用,你是不是迸發(fā)出奇思妙想?隨著機(jī)器視覺(jué)、語(yǔ)音識(shí)別技術(shù)的越來(lái)越純屬,樹(shù)莓派也可以玩出“花”了。此前,嵌入式ARM也曾推送過(guò)樹(shù)莓派3A+(Raspberry Pi 3 Model A+): 崛起or終結(jié)?一文。對(duì)于樹(shù)莓派,你有何見(jiàn)解?
參考資料:
1.Pi Day: 12 fun facts and ways to celebrate
https://enterprisersproject.com/article/2018/3/pi-day-12-fun-facts-and-ways-celebrate
2.Brewing beer with Linux, Python, and Raspberry Pi
https://opensource.com/article/17/7/brewing-beer-python-and-raspberry-pi
3.How to deploy Kubernetes on the Raspberry Pi
https://opensource.com/article/17/3/kubernetes-raspberry-pi
4.Raspberry Pi: This Google kit will turn your Pi into a voice-controlled digital assistant
5.Google offers Raspberry Pi owners this new AI vision kit to spot cats, people, emotions
6.Brewing beer with Linux, Python, and Raspberry Pi
https://opensource.com/article/17/7/brewing-beer-python-and-raspberry-pi