跟我一起用云元素設(shè)計(jì)屬于自己的物聯(lián)網(wǎng)原型
譯文在物聯(lián)網(wǎng)當(dāng)中,最理想的實(shí)現(xiàn)方案就是利用開(kāi)發(fā)底板構(gòu)建設(shè)計(jì)原型——而Photon在將成果與云環(huán)境對(duì)接方面擁有著獨(dú)特的優(yōu)勢(shì)。
硬件與軟件開(kāi)發(fā)人員在構(gòu)建物聯(lián)網(wǎng)產(chǎn)品時(shí)面對(duì)著一項(xiàng)值得關(guān)注的難題:我們?cè)撊绾螌⑵浣尤敫鼮閺V闊的互聯(lián)網(wǎng)世界當(dāng)中?
當(dāng)然,直接構(gòu)建聯(lián)網(wǎng)Arduino或者使用Raspberry Pi提供的內(nèi)置以太網(wǎng)端口也是可行的。但如果我們希望能夠***程度發(fā)揮傳感器以及執(zhí)行器的全部功能,我們當(dāng)然需要以無(wú)線網(wǎng)絡(luò)技術(shù)作為立足根基——具體而言,就是利用Wi-Fi以及蜂窩網(wǎng)絡(luò)將用戶自身與設(shè)備接入網(wǎng)絡(luò)體系。
遺憾的是,我們還面臨著一道難以逾越的障礙:無(wú)線網(wǎng)絡(luò)世界在設(shè)計(jì)方面并沒(méi)有真正考慮到處理設(shè)備、特別是采用固件而非軟件驅(qū)動(dòng)的單一用途單元的實(shí)際需求。但幸運(yùn)的是,我們還有其它選項(xiàng)。
我們完全可以選擇蜂窩網(wǎng)絡(luò)服務(wù)運(yùn)營(yíng)商所使用的機(jī)器到機(jī)器模型,其中由***的設(shè)備識(shí)別碼(即IMEI以及手機(jī)號(hào)碼)處理設(shè)備的驗(yàn)證、連接與交互任務(wù),這相當(dāng)于把設(shè)備當(dāng)作應(yīng)用并加以控制。除此之外,對(duì)于像Arduino Yùn這樣的設(shè)備,我們還可以將固件與軟件加以結(jié)合,并在其中搭載一塊與微控制器固件共享內(nèi)存的無(wú)線應(yīng)用處理器。
Photon的云連接之道
由Particle公司推出的Photon售價(jià)19美元,這套方案為我們提供了另一種選擇。我曾經(jīng)在上個(gè)月的Maker Faire上買到過(guò)一套開(kāi)發(fā)工具包,并且一直饒有興味地鼓搗到現(xiàn)在。與其它眾多開(kāi)發(fā)底板一樣,它也采用ARM Cortex M3處理器并提供充足的I/O端口。
Photon出色的聯(lián)網(wǎng)能力源自其圍繞博通Wi-Fi芯片組構(gòu)建而成的Wi-Fi模塊,能夠以802.11b/g/n方式接入互聯(lián)網(wǎng)。更重要的是,這款Particle云設(shè)備擁有強(qiáng)大的聯(lián)網(wǎng)服務(wù),能夠?qū)崿F(xiàn)該設(shè)備與用戶應(yīng)用之間的橋接,并以此為基礎(chǔ)進(jìn)行代碼編寫(xiě)、更新以及設(shè)備管理等操作。
從零開(kāi)始上手Particle的服務(wù)以及開(kāi)發(fā)底板其實(shí)非常輕松——大家只需要簡(jiǎn)單下載一款iOS或者Android應(yīng)用程序即可。我們利用該應(yīng)用創(chuàng)建一個(gè)Particle賬戶,而后就能通過(guò)該公司的云服務(wù)訪問(wèn)自己的設(shè)備了。接下來(lái),大家可以使用這款手機(jī)應(yīng)用隨時(shí)接入Photon開(kāi)發(fā)底板并對(duì)其Wi-Fi連接進(jìn)行配置。在***次聯(lián)網(wǎng)時(shí),設(shè)備會(huì)下載一項(xiàng)相關(guān)固件更新。
在Photon上編寫(xiě)代碼
設(shè)置工作完成之后,接下來(lái)我們就可以著手編寫(xiě)代碼了。大家會(huì)發(fā)現(xiàn),Photon的使用感受與其它開(kāi)發(fā)底板非常相似,我們可以使用C類語(yǔ)言直接訪問(wèn)Photon的數(shù)字化與模擬端口。不過(guò)與其它開(kāi)發(fā)底板不同的是,Particle公司的固件當(dāng)中包含有多種函數(shù),用于處理設(shè)備同云服務(wù)之間的對(duì)接——大家在設(shè)置過(guò)程中需要將該服務(wù)連入自己的開(kāi)發(fā)底板。
云API調(diào)用使用的是Spark.function調(diào)用,負(fù)責(zé)將云調(diào)用鏈接到本地函數(shù)——舉例來(lái)說(shuō),我們可以將一項(xiàng)云函數(shù)調(diào)用鏈接至本地ledblink()函數(shù)處。這種處理方式簡(jiǎn)化了固件功能與外部應(yīng)用程序之間的對(duì)接途徑,從而保證用戶能夠更為輕松地對(duì)應(yīng)用程序在云與設(shè)備之間進(jìn)行映射。一條Spark.function總是接受一條字符串作為參數(shù),且永遠(yuǎn)返回一個(gè)整數(shù)結(jié)果。
發(fā)送字符串的意義在于:我們的設(shè)備端代碼能夠使用不同的字符串在多種不同選項(xiàng)之間切換,例如允許開(kāi)發(fā)者將數(shù)字輸出設(shè)定為開(kāi)或關(guān),或者改變受控輸出組合。在這種情況下,我們也能夠更輕松地發(fā)回整數(shù),因?yàn)橛赡M到數(shù)字的轉(zhuǎn)換器通常都會(huì)提供整數(shù)輸出能力。大家可以使用組件規(guī)范對(duì)返回的溫度或者亮度級(jí)別整數(shù)進(jìn)行轉(zhuǎn)換。
#p#
Particle云介紹
Particle公司推出的云服務(wù)可以被稱為是物聯(lián)網(wǎng)領(lǐng)域的Twilio。它才是實(shí)質(zhì)上的核心業(yè)務(wù),而開(kāi)發(fā)底板以及Wi-Fi模塊只能算是該服務(wù)的附屬裝置。
作為核心設(shè)計(jì)思路,Photon單純是為了設(shè)計(jì)原型方案所存在。Particle公司迎合了那些以規(guī)?;绞疆a(chǎn)出數(shù)以十萬(wàn)甚至百萬(wàn)計(jì)設(shè)備的企業(yè)——在這種情況下,這些企業(yè)用戶顯然更傾向于使用自己的芯片方案。Particle的作用只是幫助這些客戶開(kāi)發(fā)出足以同合作方所提供的芯片相匹配的模塊設(shè)計(jì)成果。
與Twilio一樣,大家需要處理的只是云REST API,其中每一臺(tái)設(shè)備都擁有一個(gè)硬編碼ID。大家可以利用自己的賬戶ID認(rèn)證相關(guān)調(diào)用——這樣我們就能將這些調(diào)用交付至服務(wù)器應(yīng)用,從而確保用戶無(wú)需訪問(wèn)驗(yàn)證令牌。由于大多數(shù)平臺(tái)都支持REST機(jī)制,因此Particle公司不必另行提供公共頁(yè)面,特別是在用戶通過(guò)Node-red等工具構(gòu)建物聯(lián)網(wǎng)應(yīng)用的情況之下。設(shè)備可以進(jìn)行重新命名,因此大家可能會(huì)采取自己的一套命名規(guī)劃,從而保證以更為精簡(jiǎn)的代碼同時(shí)對(duì)多臺(tái)設(shè)備進(jìn)行調(diào)用。
自行構(gòu)建
Particle公司的Photon開(kāi)發(fā)工具包當(dāng)中包含多塊組件與底板,幫助大家從零開(kāi)始實(shí)現(xiàn)硬件設(shè)計(jì),而配套的手機(jī)應(yīng)用則提供一系列***實(shí)用性的工具集、能夠在無(wú)需編寫(xiě)代碼的前提下支持我們直接處理這款硬件?;A(chǔ)Photon固件提供一套UI,我們可以利用其處理傳感器及輸出結(jié)果,從而構(gòu)建電路并了解其如何與Photon底板進(jìn)行交互——這對(duì)于接下來(lái)的編程工作而言不啻為重要的前提與基礎(chǔ)。
同樣重要的是,我們要記住Photon代碼由于固件范疇、且***被視為將傳感器與執(zhí)行器同云環(huán)境相對(duì)接的實(shí)現(xiàn)手段——我們的大部分業(yè)務(wù)邏輯都將在這里運(yùn)行。大家能夠在Web IDE當(dāng)中找到一套基礎(chǔ)Tinker固件副本,從而更輕松地對(duì)自有版本進(jìn)行fork并以此為起點(diǎn)構(gòu)建屬于自己的應(yīng)用程序。
大家也可以直接通過(guò)USB接入閃存設(shè)備,并利用ARM開(kāi)發(fā)工具與編譯器構(gòu)建自己的低級(jí)代碼。如果大家打算利用Particle模塊及服務(wù)作為硬件基礎(chǔ),那么這一選項(xiàng)將非常重要。
以Photon為代表的各類開(kāi)發(fā)底板適用于那些希望率先邁出物聯(lián)網(wǎng)探索之旅的用戶。大家可以獲得易于使用的云API集合,同時(shí)利用云IDE讓面向硬件的I/O代碼編寫(xiě)變得更為輕松。
雖然硬件與開(kāi)發(fā)工具同樣***吸引力,但需要強(qiáng)調(diào)的是,API才是這一切的核心所在。對(duì)云與設(shè)備之間的對(duì)接進(jìn)行簡(jiǎn)化,意味著我們能夠真正將注意力集中在關(guān)鍵性事務(wù)身上:構(gòu)建屬于自己的應(yīng)用程序及服務(wù)方案。
原文標(biāo)題:Build your own IoT prototype, cloud included