現(xiàn)在人人都在談?wù)?a target="_blank">物聯(lián)網(wǎng),物聯(lián)網(wǎng)是新一代信息技術(shù)的重要組成部分,也是“信息化”時(shí)代的重要發(fā)展階段。在上個(gè)世紀(jì)末1999年由美國(guó)人提出物聯(lián)網(wǎng)的概念,現(xiàn)在物聯(lián)網(wǎng)最大的機(jī)遇可以已經(jīng)到來。
要知道物聯(lián)網(wǎng)的核心和基礎(chǔ)仍然是互聯(lián)網(wǎng),操作系統(tǒng)是底層的核心部分,說到物聯(lián)網(wǎng)不得不提就是物聯(lián)網(wǎng)操作系統(tǒng),這里我們主要分享一下一些物聯(lián)網(wǎng)開發(fā)者的開發(fā)歷程和體驗(yàn)。
創(chuàng)客談Ruff 開發(fā)體驗(yàn)
跟Ruff的初識(shí),是在2016年10月的復(fù)旦大學(xué)HACKxFDU創(chuàng)客馬拉松,當(dāng)時(shí)Ruff是其中一個(gè)硬件贊助,本來活動(dòng)開始之前,我們隊(duì)打算做點(diǎn)大疆無人機(jī)方面的開發(fā),所以在考慮用Arduino加WiFi模塊。不過HACKxFDU沒那么給力,問來問去沒有WiFi模塊。
但是要實(shí)時(shí)的數(shù)據(jù)反饋的話,總不能用數(shù)據(jù)線連著Arduino裝在無人機(jī)上面飛來飛去吧……本來都放棄做無人機(jī)相關(guān)的開發(fā)了,不過隊(duì)長(zhǎng)發(fā)現(xiàn)Ruff可以很好替代Arduino。板載WiFi熱點(diǎn)可以說是相當(dāng)合我們意。
除了板載WiFi,它的開發(fā)優(yōu)勢(shì)也很明顯,那時(shí)候我屬于Arduino剛剛?cè)腴T,硬件懂一點(diǎn)點(diǎn),接線這些完全不行,沒有教程怎么都搞不懂……當(dāng)時(shí)我和隊(duì)友兩個(gè)高中生,有一點(diǎn)懵逼。不過正因?yàn)檫@個(gè)原因,我拿到Ruff的時(shí)候就覺得,這個(gè)命令簡(jiǎn)直拯救滄桑:
rap layout --visual
說到這還是簡(jiǎn)單介紹下Ruff吧,這是一個(gè)支持 JavaScript 開發(fā)應(yīng)用的物聯(lián)網(wǎng)操作系統(tǒng)。也有一款基于JavaScript的物聯(lián)網(wǎng)開發(fā)套件。我來評(píng)價(jià)的話,就覺得Ruff對(duì)新手小白很友好。它對(duì)硬件進(jìn)行了抽象,使用了基于事件驅(qū)動(dòng)、異步 I/O 的模型,使硬件開發(fā)變得輕量而且高效。
而現(xiàn)在新版的官網(wǎng),比之前的感覺更加簡(jiǎn)潔,UI也有明顯提升
這是當(dāng)時(shí)拿到的顏值相當(dāng)高的Ruff的盒子。作為半吊子設(shè)計(jì)師來說,我還是相當(dāng)喜歡的。
這就是Ruff的板子了,大概是Arduino的兩倍那么大,比樹莓派也還稍微大一點(diǎn),但還是相當(dāng)方便的,不虛。
認(rèn)識(shí)了Ruff就開始正經(jīng)地玩起來了,首先從它的開發(fā)過程開始吧。
跟著官方教程走的話,所有步驟都還是蠻簡(jiǎn)單的,官方教程的話可以在官網(wǎng)的起步走找到,跟著它一步一步走,就像小孩子學(xué)走路一樣,開發(fā)也變得很簡(jiǎn)單。
不過首先要下載Ruff的SDK。 Ruff SDK 根據(jù)自己電腦的版本和OS來選就行了,很方便,官網(wǎng)上就可以下載。
然后在命令行里面輸入一下這個(gè)命令,確保該裝的都搞定了:
rap --version
準(zhǔn)備工作做好,開始項(xiàng)目。我當(dāng)時(shí)沒跟著官方教程做“Hello Ruff”的項(xiàng)目。我當(dāng)時(shí)用到的是溫濕度,光亮,大按鈕,和蜂鳴器幾個(gè)設(shè)備,所以最先做的是把幾個(gè)設(shè)備的模塊從命令行中加入到自己在做的項(xiàng)目(文件夾)中:
rap是Ruff軟件包的一個(gè)管理器,所有關(guān)于上面用到的幾個(gè)模塊的具體信息都可以在Ruff官網(wǎng)的軟件包倉(cāng)庫(kù)里面找到。
選了這些模塊的最新版本就可以接著走了。當(dāng)然也可以跟著官方發(fā)布的示例走。
這就是通過這個(gè)命令打開的頁(yè)面:
照著這個(gè)圖來接線就差不多可以了,不過也可以自定義接線,在頁(yè)面上拖拽板子上線條連接的小白點(diǎn)到其他地方連接上就可以了。總之對(duì)于當(dāng)時(shí)的我來說真的就是拯救滄桑,不過現(xiàn)在好多了,又打了四場(chǎng)創(chuàng)客馬拉松之后現(xiàn)在也有第二名的小成就了,接線姑且還算是過關(guān)了吧。
以上差不多就是硬件這邊所有的內(nèi)容了,下面就是代碼部分。
?
硬件和軟件部分都說完了,就來說說到底是怎么玩Ruff板子的。
?
這就是terminal里面一些當(dāng)時(shí)我的傳感器的回饋,無視日期就行了,當(dāng)時(shí)我電腦時(shí)間有點(diǎn)問題,沒有在時(shí)間旅行……
不過,如果你會(huì)更喜歡一些顏值比較高的用戶平臺(tái)的話,可以試試這個(gè),Ruff另一個(gè)用起來我很喜歡的特點(diǎn),就是這個(gè)用戶平臺(tái)。連接到板子的熱點(diǎn)之后在瀏覽器里面輸入這個(gè)IP就行了738.702.12.7,然后你就會(huì)看到這樣一個(gè)界面:
經(jīng)過上面過程,最終給大家展示了無人機(jī)項(xiàng)目成果:
?
這里是我們最后創(chuàng)客馬拉松產(chǎn)品的樣子。整個(gè)項(xiàng)目其實(shí)是一個(gè)用了無人機(jī)來檢測(cè)并預(yù)防早期的森林山火的系統(tǒng)。它用了大疆無人機(jī)的攝像頭每隔十秒傳回一張圖片,并用Clarifai的API去識(shí)別圖內(nèi)任何和火相關(guān)詞匯的匹配度。
和其他我們裝在無人機(jī)上面的傳感器和在一起,我們可以比較好地區(qū)估計(jì)一塊區(qū)域有火苗/火焰出現(xiàn)的可能性,有的話程序會(huì)去通知人類,那么由我們?nèi)ト斯ご_認(rèn)山火是否陽(yáng)性,是的話就借助無人機(jī)的機(jī)動(dòng)性四處通知周圍人員,如此一來就不用人力監(jiān)控森林山火,耗時(shí)耗力,總體來說是一個(gè)便宜不少的解決方案。
無人機(jī)也比其他的監(jiān)測(cè)系統(tǒng)來得要靈活的多,比如說衛(wèi)星,所以在通知周圍人員這個(gè)例子上,無人機(jī)可以很好地在火源周圍做廣播。而因?yàn)樯只馂?zāi)如果擴(kuò)大,會(huì)在財(cái)產(chǎn)以及人員上會(huì)造成極大的損失,所以總體我們還是對(duì)自己的提出的解決方案挺滿意的,而Ruff在我們快速制作產(chǎn)品原型的過程中則是幫了大忙。這個(gè)項(xiàng)目最后進(jìn)了決賽成了前九,六十個(gè)大學(xué)隊(duì)伍里面唯一的只有兩個(gè)人的高中隊(duì)伍,作為第一次創(chuàng)客馬拉松,還是不錯(cuò)的成績(jī),同時(shí)我們還獲得了大疆企業(yè)創(chuàng)新獎(jiǎng),拿了個(gè)Osmo,總體還是相當(dāng)開心的。
說到這,已經(jīng)把我的Ruff 開發(fā)過程回顧了一遍,中間也遇到了一些問題,但是最后的結(jié)果還是不錯(cuò)的。這里也總結(jié)幾小點(diǎn)來供新的開發(fā)者來參考
1.Ruff不是所有設(shè)備都有驅(qū)動(dòng)的,但是驅(qū)動(dòng)是可以自己寫的,Ruff官方網(wǎng)站也有教程。
2.上手相當(dāng)簡(jiǎn)單,像起步走這種完全是小白的福音
3.容易上癮,當(dāng)有了第一次就想一直開發(fā)新的應(yīng)用
4.就這次創(chuàng)客馬拉松來說我覺得比樹莓派方便一點(diǎn),感覺有一點(diǎn)點(diǎn)像Arduino和樹莓派的結(jié)合,當(dāng)然樹莓派有其它好處
5.顏值很高,這是個(gè)人的喜好
6.有兩個(gè)設(shè)備的ID印刷的和軟件包倉(cāng)庫(kù)里面的不一樣,溫濕度是“DHT77”,但是設(shè)備上印刷的是“DH77”。大按鈕是“CK448”,但是設(shè)備上印刷的是“CK-448”,所以當(dāng)時(shí)花了點(diǎn)時(shí)間去確定。
小貼士:以上這個(gè)問題可以通過查詢官網(wǎng)軟件包倉(cāng)庫(kù)來解決。如果你想了解更多或是有疑問的話,也可以去Ruff官網(wǎng)或者是電子發(fā)燒友網(wǎng)論壇與其他創(chuàng)客一起探討。
評(píng)論
查看更多