原文出處:http://www.ituring.com.cn/book/1580
作者:?Phodal Huang?
前言
設(shè)計物聯(lián)網(wǎng)系統(tǒng)是件有意思的事情,它需要考慮到軟件、硬件、通訊等多個不同方面。通過探索不同的語言,不同的框架,從而形成不同的解決方案。
在這里,我們將對設(shè)計物聯(lián)網(wǎng)系統(tǒng)有一個簡單的介紹,并探討如何設(shè)計一個最小的物聯(lián)網(wǎng)系統(tǒng)。
目標(biāo)讀者
目標(biāo)讀者: 初入物聯(lián)網(wǎng)領(lǐng)域,希望對物聯(lián)網(wǎng)系統(tǒng)有一個大概的認(rèn)識和把握,并學(xué)會掌握一個基礎(chǔ)的物聯(lián)網(wǎng)系統(tǒng)的設(shè)計。
- 硬件開發(fā)人員,對物聯(lián)網(wǎng)有興趣。
- 沒有web開發(fā)經(jīng)驗(yàn)
- 幾乎為0的linux使用經(jīng)驗(yàn)
- 想快速用于生產(chǎn)環(huán)境
- 對硬件了解有限的開發(fā)人員。
- 想了解以下內(nèi)容:
- RESTful與IOT
- CoAP協(xié)議
- MQTT
本文檔對一些概念(如)只做了一些基本介紹,以方便讀者理解。如果您想進(jìn)一步了解這些知識,會列出一些推薦書目,以供參考。
不適合人群
- 如果你是在這方面已經(jīng)有了豐富經(jīng)驗(yàn)的開發(fā)者。
- 不是為了學(xué)習(xí)而學(xué)習(xí)這方面的知識。
介紹
關(guān)于內(nèi)容的選擇,這是一個有意思的話題,因?yàn)槲覀兒茈y判斷不同的開發(fā)者用的是怎樣的語言,用的是怎樣的框架。
于是我們便自作主張地選擇了那些適合于理論學(xué)習(xí)的語言、框架、硬件,去除掉其他一些我們不需要考慮的因素,如語法,復(fù)雜度等等。當(dāng)然,這些語言、框架、硬件也是最流行的。
- Arduino: 如果你從頭開始學(xué)過硬件的話,那么你會愛上它的。
- Raspberry PI: 如果你從頭編譯過GNU/Linux的話,我想你會愛上她的。
- Python: 簡單地來說,你可以方便地使用一些擴(kuò)展,同時代碼就表達(dá)了你的想法。
- PHP : 這是一門容易部署的語言,我想你只需要在你的Ubuntu機(jī)器上,執(zhí)行一下腳本就能完成安裝了。而且,如果你是一個硬件開發(fā)者的話,你會更容易地找到其他開發(fā)者。
- Javascript : 考慮到j(luò)avascript這門語言已經(jīng)無處不在了,而且會更加流行。所以,在這里CoAP、MQTT等版本是基于Nodejs的。
- HTML、CSS : 這是必須的,同樣,他們?nèi)匀粺o處不在。
- GNU/Linux: 作為部署到服務(wù)器的一部分——你需要掌握他。當(dāng)然如果你要用WAMP也是可以的。
- CoAP: 用NodeJS構(gòu)建IOT CoAP物聯(lián)網(wǎng)
為什么沒有C ?
如果你還想用C學(xué)理論的話,煩請出門左拐。我想,C并不適合于學(xué)習(xí)相關(guān)硬件的理論。
為什么不是JAVA ?
大有以下兩個原因
- 學(xué)習(xí)JAVA的人很多,但是它不適合我們集中精力構(gòu)建與學(xué)習(xí),因?yàn)闊o關(guān)的代碼太多了。
- 之前以及現(xiàn)在,我還是不喜歡JAVA (我更喜歡腳本語言,可以提高工作效率)。
如何閱讀
這只是一個小小的建議,僅針對于在選擇閱讀上沒有經(jīng)驗(yàn)的讀者。
當(dāng)前狀態(tài) |
建議 |
---|
軟件初學(xué)者 |
從頭閱讀 |
硬件開發(fā)者 |
從頭閱讀 |
沒有web經(jīng)驗(yàn)的開發(fā)者 |
從第二部分開始 |
我們會在前面十章里簡單介紹一些必要的基礎(chǔ)知識,這些知識將會在后面我們構(gòu)建物聯(lián)網(wǎng)系統(tǒng)時用到。
源碼
書中所用到的代碼都托管在Github上面:
注意
: HTTP版可以在?http://b.phodal.com?預(yù)覽及使用。
更多建議: