-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

自己動手設計物聯網

( 簡體 字)
作者:黃峰達類別:1. -> 程式設計 -> 物聯網
譯者:
出版社:電子工業出版社自己動手設計物聯網 3dWoo書號: 44661
詢問書籍請說出此書號!

缺書
NT售價: 295

出版日:6/1/2016
頁數:252
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787121290534
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:



很久之前讀過一本關于芯片技術的書籍,在書的前言中作者講述了一個故事。大意是這位教授在某次講座中說到:“以后芯片的數量肯定是現在的幾十倍,到時候我們都會享受到各種芯片強大的計算能力。”
這時一位聽眾當場起來反駁他道:“難道這棟大廈也會安裝幾個芯片嗎?”隨后引來哄堂大笑。
十年后當這位教授再次來到這棟大廈開講座時,這里已經安裝了不止幾十個芯片。每個門側都有一個門禁芯片,走廊里面各種傳感芯片負責感應溫度變化來檢測火情等。
反觀現在,如果我們說“以后電視、冰箱、空調甚至菜刀、鍋碗、窗戶都可以上網”,也一定會迎來不少人的嘲笑。但是我們依然有理由堅信——這些正在慢慢成為現實。
上過大學的人都有感觸,自行車、飯卡、女朋友,三者其一如果沒有弄丟過,那么你的大學是不完整的。當手機不知道放在哪了,我們可以用朋友的手機撥通這個號碼,這樣就可以根據來電聲音找到手機。但是當鑰匙不知道放哪了,除了翻箱倒柜地找之外,貌似沒有更好的辦法了。如果鑰匙也能夠接入網絡的話,那么我們就可以輕松地定位鑰匙于千里之外。
互聯網的發展飛速地改變著世界,也改變著我們。而細看互聯網的發展你會發現,之前我們使用互聯網檢索信息,這時的互聯網連接的是“人與信息”,可以廣義地稱之為“人與物”。隨著QQ、微信、人人網等社交網站的興起,互聯網連接的是“人與人”。而下一個互聯網的發展方向則是連接“物與物”——我們稱之為物聯網。
小時候我們總會幻想有一個哈利?波特那樣的魔法世界,或者西游記那樣的神話世界,而長大后我們則會暢想鋼鐵俠那樣的科幻世界。
下班后當你拖著疲憊的身體坐在地鐵上,拿出手機更新自己的狀態為下班路上,這時電飯煲會自動開啟,里面的米飯進入蒸煮狀態,窗戶自動關閉,而空調自動打開并根據室內溫度調整到最適合的溫度……不過最霸氣的當然還是每天早上,你睜開朦朧睡眼,大喊一聲“要有光”,于是整個屋子都亮了。
雖然如此便捷,但是你是一個保守派,于是你并沒有把root權限給它們,凡是都要親自做決定,這時打開E-mail將是你最忙的時候。
冰箱給你發來2封郵件,“牛奶不夠了,我已經查詢了各大商城和附近超市,建議從家樂福訂購打折促銷的純牛奶”,“提示:最新發現您的各項飲食指標不平衡,所攝取的食物中維生素C的含量偏低,是否購買半斤芹菜。”
床發來1封郵件,“最近七天睡眠質量圖表如下……”
就連菜刀都發來了1封郵件:“我該磨了。”
而這一切天方夜譚似的故事正在工程師們的智慧和努力下成為現實。本書就講述了如何設計并構建一個完善的物聯網系統。
最初在網上了解Phodal是那篇在GitHub連擊300天的文章,按活躍度來講Phodal應該是國內最活躍的開源貢獻者了。
當作者Phodal告訴我,他的書要出版了,讓我寫個序。我最初以為是Growth增長全棧,當他告訴我是關于物聯網的時候,確實有些吃驚。當我再重讀Phodal 的《編程之路》時發現,他不僅僅是一名前端加后端的全棧工程師,更是一位軟件加硬件的全能工程師。
去年Phodal曾向我問Flarum接口API的情況,當時我正在國內為Flarum布道,遂給他介紹了一下Flarum的源碼、接口、文檔,以及中文社區的建設情況。沒過幾天Phodal告訴我,他用Growth為Flarum做了一個全平臺的客戶端——iOS、Android、WinPhone、Windows、Mac、其他。但愿有一天我家的微波爐也可以在Flarum論壇發帖。
Phodal來寫這本物聯網的書,那么注定這本書將是一本科普與實戰相結合的進階讀物。里面不會有太多的名詞概念的解釋,更多的是如何設計,如何實現。
如果你是一名創客、極客,那么這本書很適合你。
Just enjoy it.


justjavac
Flarum中國社區創始人
2016年5月,天津


前 言

在最開始的時候,人們使用CGI來開發動態網頁。在那個時候,人們也使用CGI來開發一些聯網應用。早先及現有的物聯網應用使用Web技術作為基礎的技術,接著人們開始將一些不錯的協議使用在物聯網中,如MQTT。又有一些組織在制定一些協議,如CoAP。同時越來越多的國家和組織在出臺自己的標準。
幸運的是,這些技術都是依據現有的技術發展而來的。技術在過去的幾十年里發生了快速的變化,但是它們的本質是解決問題。而問題并沒有發生快速的變化——還是一樣的問題,只是我們有了更多可用的解決方案。
本書目標
本書不是一本詳細介紹物聯網系統的書籍,也不會和國內的一些教程一樣主要集中于射頻、ZigBee、WiFi、藍牙等。我相信這些知識你已經在其他書中學到過了,而這些書籍更多的是側重于硬件層級的構建,沒有從系統級別、架構級別對系統進行設計。設計這樣一個完整的系統,則是本書的核心。本書旨在教會用戶如何去設計的思想,以及如何打造物聯網系統的過程。至于系統底層硬件的實現細節則需要用戶去把握。
本書遵循循序漸進的思想,從設計一個極其簡單的物聯網系統,再到基于以互聯網為基礎的物聯網系統,最后打造了一個基于物聯網協議的物聯網系統。在這個過程中我們還將教會讀者打造物聯網的相關應用——手機APP、溫度趨勢、網頁端控制等。
由于設計這個物聯網系統本身有太多的知識點,并且涉及方方面面的知識,本書將盡可能地向讀者推薦一些擴展閱讀資料,并且建議讀者多多實踐。同時,由于章節間是一步步加深的關系,如果你在這其中遇到什么問題可以及時與作者聯系。
目標讀者:對物聯網感興趣的創客、極客、程序員、設計師;對物聯網感興趣的大學、中學師生;想自己動手設計完整物聯網的相關從業人員。
為什么是JavaScript
在思考著用哪門語言來編寫程序的時候,我考慮到了Python、Java、JavaScript。Python是我最喜歡的語言,JavaScript是我最擅長的語言,Java是我最常用(工作)的語言。它們都是非常不錯的跨平臺語言,它們都有廣泛的使用者。
如果考慮將其商業化,我會考慮使用Java語言。Java語言是一門“正統”的語言,即在國內的計算機科學領域,各個院校都將之列為必學語言。除去Java Web的流行帶來的需求,Android也增大了對Java語言的需求。由于Java語言是一門編譯語言,并且經過二十多年的發展,積累了大量的技術和智慧,使得它相當穩定。因而多數企業都采用這門語言作為其主要語言。盡管Java語法簡單,但是語法卻比較煩瑣、開發效率低,并不利于我們表述。
如果僅僅是考慮學習服務端,我會考慮使用Python來寫我們的物聯網系統。Python是一門簡單、易學、易懂的腳本語言,在科學計算領域非常受歡迎。并且,在書中的一些例子里我會使用Python語言。Python語言富有表現力,可以更容易地讓我們將自然語言轉換為機器語言。然而,對于讀者來說可能存在更多的學習成本。
So,JavaScript有什么優點?無論我們使用Java還是Python語言來開發我們的物聯網應用,凡是涉及到網頁前端相關的內容,我們都需要JavaScript,這就足夠了!
那么,為什么我們不使用JavaScript來完成所有的這些工作呢?它有:
? Node.js框架——最流行的JavaScript服務端平臺,可以創建Web應用。
? Cordova框架——最流行的混合應用框架,可以使用Web技術來開發手機應用(iOS、Android、Windows Phone等)。
這就意味著,我們可以用這門語言完成所有的開發任務——服務端、客戶端、移動應用。如果你想,也可以用這門語言完成硬件端的開發。三星推出了可以適用于嵌入式設備的小型JerryScript,谷歌的兩名前員工推出了適用于物聯網領域的軟件平臺Smart.js。并且已經有幾個開發板,如Tessel 2、Espruino,可以讓你使用JavaScript為你的芯片編程。
其他語言
在服務端、客戶端和移動應用的例子里,我們會用JavaScript、HTML、CSS來向讀者展示其中的原理。在硬件部分,我們會用C/C++語言。在Raspberry Pi上編程的時候,會使用Python。其他部分,如Dashborad和NodeMCU的介紹,會有一些Lua或者Ruby語言的例子。
我們之所以在Raspberry Pi上使用Python語言,不僅僅是因為使用Python語言更容易讀懂,而且在這個領域中主要使用的也是Python語言。同理于Dashboard的示例,我們使用了Dashing這個流行的框架,只是因為它更容易上手,并且使用的人較多。這就意味著,在我們遇到問題的時候更容易解決。
我們并不希望這些語言會阻礙你前進。在適當的時候你可以先跳過這一部分——如Dashing,我們展示了如何自己去寫類似的界面,使用這個框架只是為了開發更快。隨后在真正使用它的時候去深入它們。
為了用而學習是最有效率的學習。
本書內容
如下所示,本書分為8個章節和4個附錄。
第1章 概覽
本章介紹了物聯網的歷史背景和相關技術,以及其與互聯網的關系。
第2章 一個極簡的物聯網:hello,world
本章以一個文本文件的數據為中心,快速搭建一個極簡的物聯網原型。其中將向讀者展示物聯網的一些基礎知識。
第3章 分解物聯網系統
本章將描述常用的物聯網系統架構,并對每一個層級進行詳細的描述和介紹。
第4章 基于Web的物聯網系統
本章將介紹常用API的模式RESTful,并將帶領讀者打造基于HTTP協議的物聯網系統。
第5章 連接設備
本章將介紹一些容易上手的設備,并將這些設備連接到物聯網。不僅可以控制LED,也可以上傳傳感器數據。
第6章 物聯網應用示例
本章將介紹用趨勢圖來顯示傳感器的數據,還將展示如何打造一個跨平臺的APP來控制物聯網設備。同時,還有使用一些當前的云服務來降低開發難度。
第7章 實現超越互聯網的物聯網
本章將介紹MQTT、CoAP等物聯網協議,它們可以幫助我們更好地處理物聯網系統中的消息通信。
第8章 智能與安全
本章將關注于一些額外的話題,如安全、智能、私有化。
附錄
附錄提供了簡單的JavaScript入門指引、Ionic的一些介紹、物聯網資料及Raspberry Pi的初始化等。
下面是代碼的一些簡介,你也可以在相關的網頁上看到。
目錄 功能
手機APP 目錄下是Hybird應用相關代碼
儀表盤 儀表盤相關代碼
第2章 Nginx示例、Python基礎
第4章 基礎Web服務器代碼、RESTful服務代碼
第5章 硬件、傳感器示例、RESTful服務代碼
第6章 RESTful服務器代碼、Dashboard代碼
第7章 MQTT、CoAP協議的服務器代碼
第8章 自然語言處理示例
希望讀者沒有被上面的知識點所困擾到,知識點越多就說明越有挑戰性!難道不是嗎?
在線資源
內容簡介:

物聯網是一個跨領域的學科,涉及方方面面的知識,包括硬件、軟件、網絡、協議等,這些知識很難在一本書里詳細展開。目前很多關于物聯網的圖書集中于射頻、ZigBee、WiFi、藍牙等硬件層級的構建。本書從自己動手打造一個物聯網出發,旨在教會讀者如何從系統級別、架構級別去設計物聯網,從而掌握打造物聯網系統的全過程。本書在講解的過程中遵循循序漸進的思想。首先,設計一個基于文本文件的物聯網系統,向讀者展示一個基本的物聯網體系。然后,實現以互聯網為基礎的物聯網系統,即以HTTP協議與Web編程為基礎的物聯網系統。最后,打造一個能結合多個物聯網協議的物聯網系統。在這個過程中,讀者還將學會如何打造物聯網的相關應用——手機APP、溫度趨勢、網頁端控制等,以及如何打造智能、安全的物聯網系統的相關內容。

目錄:

第1章 概覽 1
1.1 物聯網發展歷史 1
1.2 物聯網概念 3
1.3 聯網——各式各樣的聯網設備 4
1.4 物聯網系統的核心是網絡 5
1.5 小結 6
第2章 一個極簡的物聯網:hello,world 8
2.1 數據的傳輸過程 9
2.1.1 將數據快遞到用戶手中 10
2.1.2 數據與服務中心 14
2.2 一個文本的物聯網 16
2.2.1 從瀏覽器到服務器 17
2.2.2 獲取數據與狀態 22
2.3 設備狀態改變 23
2.3.1 用Raspberry Pi來讀取數據 24
2.3.2 使用Raspberry Pi控制LED 28
2.4 小結 32
2.5 練習建議 33
2.6 問題回顧 33
2.7 相關閱讀資料 33
第3章 分解物聯網系統 34
3.1 物聯網的層級結構 35
3.1.1 一個常見場景下的層級結構 35
3.1.2 理想的物聯網層級結構 38
3.1.3 與真實世界交互的物理層 41
3.1.4 物聯網的神經中樞——協調層 45
3.1.5 物聯網的核心——應用層 47
3.1.6 通信 49
3.2 小結 51
3.3 相關閱讀資料 52
第4章 基于Web的物聯網系統 53
4.1 Web應用架構 54
4.1.1 MVC 55
4.1.2 領域與適配器層 56
4.1.3 最小的HTTP API 57
4.1.4 RESTful API 58
4.2 數據持久化 63
4.2.1 數據庫簡介 63
4.2.2 連接MongoDB數據庫 65
4.3 視圖與應用層 76
4.3.1 視圖 76
4.3.2 控制層界面 78
4.4 部署 84
4.5 小結 85
4.6 練習建議 86
4.7 相關閱讀資料 86
第5章 連接設備 87
5.1 連接控制器 88
5.1.1 一個重復的示例以及仿造API 89
5.1.2 Raspberry Pi + Arduino 90
5.1.3 Arduino與網絡模塊 94
5.1.4 NodeMCU 98
5.2 連接執行器 103
5.2.1 直接控制示例 103
5.2.2 間接控制示例 106
5.2.3 示例代碼 109
5.3 連接傳感器 111
5.3.1 讓API支持上傳傳感器數據 112
5.3.2 土壤濕度傳感器 114
5.3.3 溫度傳感器 115
5.3.4 數據合并 121
5.4 小結 123
5.5 相關閱讀資料 123
第6章 物聯網應用示例 124
6.1 數據可視化 125
6.1.1 可視化用戶數據 127
6.1.2 儀表盤 129
6.2 儀表盤類型示例:溫度趨勢圖 130
6.2.1 移動設備上查看 139
6.2.2 使用Dashing 140
6.3 創建手機應用 146
6.3.1 Ionic簡介 147
6.3.2 趨勢圖 153
6.3.3 控制硬件 155
6.3.4 用藍牙來與硬件通信 158
6.4 使用AWS云平臺構建物聯網 162
6.5 小結 167
6.6 相關閱讀資料 168
第7章 真正的物聯網:MQTT與CoAP協議 169
7.1 MQTT 171
7.1.1 MQTT消息訂閱示例 171
7.1.2 創建MQTT服務 174
7.1.3 整合MQTT服務 179
7.1.4 MQTT-SN 189
7.2 CoAP 189
7.2.1 CoAP協議示例 191
7.2.2 創建CoAP服務 194
7.2.3 整合CoAP服務 197
7.3 小結 200
7.4 相關閱讀資料 200
第8章 智能與安全 201
8.1 回顧我們的物聯網系統 202
8.2 智能化 204
8.2.1 自然語言處理 204
8.2.2 機器學習之貝葉斯分類器 207
8.3 安全與隱私 209
8.3.1 網絡攻擊 209
8.3.2 認證 211
8.3.3 私有物聯網 212
8.3.4 隱私 212
8.4 小結 213
8.5 相關閱讀資料 214
附錄A Raspberry Pi快速指南 215
附錄B JavaScript基礎 217
附錄C Ionic簡單幫助文檔 228
附錄D 相關資源 233
序: