发表于2024-11-23
從物聯到萬聯:Node.js與樹莓派萬維物聯網構建實戰 pdf epub mobi txt 電子書 下載 2024
√ 物聯網的潛能絕不止於解決特定場景的小問題,而是用務實|結構化的方法論來構建大型係統、實現創新、重建秩序。
√ 對 WoT 及其工具鏈的深刻理解和良好把握,讓你得以用成熟的萬維網協議建立更大、更智能、更簡單的萬維物聯網。
√ IoT 離不開更大圖景及完整生態,作者要用超前視野和大局觀,解決無數工具|標準|協議及雲服務構成的高度碎片化。
√ 易讀到物聯網新手可按圖索驥建立一個完整的端到端物聯網;深刻到創建完所有元素後你已成為熟練的物聯網開發者。
本書是介紹萬維物聯網的入門教材。作者通過將樹莓派作為物理設備網關,提齣一種構建萬物互聯的可行方案――利用現有的萬維網標準、HTTP 協議,以及HTML、CSS 和JavaScript 技術,讓智能産品終端成為開放的萬維網的一部分,最終形成物聯網和萬維網的結閤體――萬維物聯網。本書分為兩個部分,第1 章到第5 章是第I 部分,內容涵蓋萬維物聯網基本概念、JavaScript 和Node.js 介紹,通過一個簡單的例子來說明如何使用Node.js 的Web 框架與遠程設備進行交互。第6 章到第10 章是第II 部分,詳細介紹萬維物聯網技術棧中的各層架構及如何用現有的Web 技術實現各層架構,最終能夠形成物理網聚閤應用,能夠快速創建復雜應用程序,整閤各種設備和數據。本書涉獵的技術範圍廣泛,包括各種Web 和物聯網協議、Web 標準及樹莓派的原理與實踐。適閤之前沒有豐富嵌入式開發經驗,但希望探索物聯網世界的Web 開發人員閱讀,也適閤作為一本初級教程指導樹莓派開發者和Node.js 愛好者進行物聯網開發實踐。
Dominique “Dom” Guinard 是 EVRYTHNG 的 CTO 和聯閤創始人,EVRYTHNG 是一個大規模的萬維物聯網雲平颱,通過連接産品到萬維網讓它們變得更智能化。Dom 擁有蘇黎世聯邦理工大學的博士學位,他在學校期間緻力於萬維物聯網架構的早期研究:萬維物聯網架構是物聯網的一個開放的應用層。早在 2012 年,他的博士論文被授予 ETH 勛章。在這之前,Dom 花瞭十年時間研究瞭許多物聯網項目:與 Sun Microsystems 公司閤作探索大規模 RFID 網絡,研究移動電話作為物聯網網關的作用,在蘇黎世聯邦理工大學的 Auto-ID 實驗室參與諾基亞的一些研究,在麻省理工學院的 Auto-ID 實驗室將 EPCglobal RFID 網絡用於萬維物聯網,以及用四年時間在 SAP 的企業級軟件中整閤標記的對象和無綫傳感器網絡。
Vlad Trifa 是 EVRYTHNG 的聯閤創始人、産品研發的執行副總裁。他是分布式嵌入傳感器和交互式設備與使用 Web 技術的企業應用軟件集成方麵的公認專傢。曾經他是麻省理工學院的感知城市實驗室的研究員,在美國和新加坡研究城市與移動計算,在加州大學洛杉磯分校研究生物和分布式信號處理,以及在日本東京的國際電器通信基礎研究所(ATR)研究人與機器人交互和神經係統科學。他也曾經作為 SAP 的助理研究員,在工廠自動化與企業計算方麵獲得工業經驗。Vlad 以博士學位畢業於蘇黎世聯邦理工大學計算機科學專業並擁有瑞士洛桑聯邦理工學院機器人學、人工智能和機器學習方嚮的計算機科學碩士學位。
吳亮(月影)奇虎360高級技術經理,360前端團隊 奇舞團 負責人,w3ctech顧問。曾先後在微軟亞洲研究院做過訪問學生、金蝶軟件擔任項目經理,百度電子商務事業部擔任Web開發項目經理。多年來緻力於Web標準和JavaScript技術的推廣,活躍於國內各技術社區。
一係列奇妙的點子,也是對IoT工具集的一個極好的補充。
——Mike Kuniavsky 帕洛阿爾托研究中心創新服務部
IoT需要一個應用層,而改造Web的應用層是明智的做法!這本不錯的書將嚮你展示如何在幾周內達成目標。
——Sanjay Sarma
麻省理工大學AutoID實驗室
Dom和Vald是IoT界的精神領袖,他們專注於如何通過實踐達到目標。
——Andy Chew
思科(英國)
本書對WoT這樣復雜的主題進行瞭由淺入深的介紹,而且還寫得非常通俗易懂!
——Steve Grey-Wilson
PTC公司旗下Thingworx
第I 部分 物聯網與萬維物聯網基礎
1 從物聯網到萬維物聯網
1.1 定義物聯網
1.2 進入萬維物聯網
1.2.1 萬維物聯網場景:連接旅店
1.2.2 對比物聯網和萬維物聯網
1.2.3 物聯網簡史
1.3 使用案例――為什麼連接設備
1.3.1 無綫傳感器網絡和分布式傳感
1.3.2 可穿戴和自我量化
1.3.3 智能傢居和建築
1.3.4 智能城市和能源網絡
1.3.5 智能製造與工業4.0
1.3.6 智能物流和供應鏈
1.3.7 營銷2.0
1.4 萬維物聯網――增強版的物聯網
1.4.1 更容易編程
1.4.2 開放和可擴展標準
1.4.3 快速且易於部署、維護與集成
1.4.4 元素之間的鬆耦閤
1.4.5 廣泛使用的安全和隱私機製
1.4.6 萬維物聯網的弊端
1.5 總結
2 你好,萬維物聯網
2.1 初識萬維物聯網設備
2.1.1 主角登場:樹莓派
2.2 練習1――在萬維物聯網上瀏覽一個設備
2.2.1 第1 部分――Web 作為用戶界麵
2.2.2 第2 部分――Web 作為API
2.2.3 小結
2.3 練習2――從一個WoT 傳感器中輪詢數據
2.3.1 第1 部分――輪詢當前傳感器讀數
2.3.2 第2 部分――輪詢和繪製傳感器讀數
2.3.3 第3 部分――實時更新數據
2.3.4 小結
2.4 練習3――作用於現實世界
2.4.1 第1 部分――使用一個錶單來更新顯示的文字
2.4.2 第2 部分――創建你自己的錶單來控製設備
2.4.3 小結
2.5 練習4――讓彆人知道你的設備存在
2.5.1 小結
2.6 練習5――創建你的第一個物理網聚閤應用
2.6.1 小結
2.7 總結
3 Node.js 與萬維物聯網
3.1 JavaScript 崛起:從客戶端到服務端到智能産品
3.1.1 在智能産品中引入JavaScript
3.2 Node.js 簡介
3.2.1 在電腦上安裝Node.js
3.2.2 用Node.js 寫一個Web 服務器
3.2.3 以JSON 格式返迴傳感器數據
3.3 Node.js 的模塊化
3.3.1 npm――Node 的包管理器
3.3.2 通過package.json 和npm 完全管理依賴
3.3.3 你的第一個Node 模塊
3.4 理解Node.js 事件循環
3.4.1 多綫程Web 服務器
3.4.2 單綫程、非阻塞Web 服務器
3.5 開始異步編程
3.5.1 匿名迴調
3.5.2 具名迴調
3.5.3 控製流庫
3.6 總結和課外閱讀
4 嵌入式係統入門
4.1 進入嵌入式設備的世界
4.1.1 業餘愛好者的設備與工業級設備
4.1.2 實時操作係統與Linux
4.1.3 小結及超越樹莓派
4.2 建立你的第一颱WoT 設備――樹莓派
4.2.1 入手樹莓派
4.2.2 選擇你的樹莓派
4.2.3 購物清單
4.2.4 設置你的樹莓派
4.2.5 連接你的設備
4.3 安裝Node.js 到樹莓派
4.3.1 在樹莓派上使用Git 和GitHub
4.3.2 小結
4.4 連接傳感器和執行器到樹莓派
4.4.1 理解GPIO 端口
4.4.2 使用麵包闆連接電子元件
4.4.3 用Node.js 訪問GPIO
4.4.4 課外閱讀
4.5 總結
5 構建智能産品網絡
5.1 連接智能産品
5.1.1 網絡拓撲結構
5.1.2 網絡分層模型
5.2 智能産品的網絡層協議
5.2.1 從空間的角度考慮
5.2.2 網絡協議和IoT
5.2.3 IoT 個人局域網
5.2.4 IoT 廣域網
5.2.5 網絡層協議的選擇
5.3 智能産品的應用層協議
5.3.1 ZigBee 和藍牙的應用層
5.3.2 Apple HomeKit 和Google Weave
5.3.3 消息隊列遙測傳輸
5.3.4 資源受限的應用協議
5.3.5 應用層協議的選擇
5.4 萬維物聯網架構
5.4.1 第1 層:接入層
5.4.2 第2 層:發現層
5.4.3 第3 層:共享層
5.4.4 第4 層:整閤層
5.4.5 為什麼WoT 是重要的
5.4.6 課外閱讀
5.5 總結
第II 部分 構建萬維物聯網
6 接入層:智能産品的API
6.1 設備、資源和Web 智能産品
6.1.1 錶述性狀態轉移
6.1.2 為什麼需要一緻的接口
6.1.3 原則1 :可訪問資源
6.1.4 原則2 :通過錶述來操作資源
6.1.5 原則3 :自描述信息
6.1.6 原則4 :超媒體作為應用程序狀態引擎
6.1.7 小結――Web 智能産品設計過程
6.2 超越REST :實時萬維物聯網
6.2.1 WoT 需要事件
6.2.2 發布/ 訂閱
6.2.3 webhook――HTTP 迴調
6.2.4 Comet――用hack 的方式讓HTTP 支持實時Web
6.2.5 WebSocket
6.2.6 未來:從HTTP/1.1 到HTTP/2
6.3 總結
7 實現 Web 智能産品
7.1 連接設備到Web
7.2 直接集成模式――在設備上實現 REST
7.2.1 創建WoT 服務器
7.2.2 資源設計
7.2.3 錶述設計
7.2.4 接口設計
7.2.5 通過WebSocket 實現pub/sub 接口
7.2.6 小結――直接集成模式
7.3 網關集成模式――CoAP
7.3.1 運行一個CoAP 服務器
7.3.2 通過網關代理CoAP
7.3.3 小結――網關集成模式
7.4 雲端集成模式――EVRYTHNG 的MQTT
7.4.1 設置EVRYTHNG 賬號
7.4.2 創建MQTT 客戶端應用程序
7.4.3 使用action 來控製智能插座
7.4.4 創建一個簡單的Web 控製應用
7.4.5 小結――雲端集成模式1
7.5 總結
8 發現層:描述和發現Web 智能産品
8.1 可發現性問題
8.2 發現智能産品
8.2.1 網絡發現(Network discovery)
8.2.2 Web 上的資源發現
8.3 描述Web 智能産品
8.3.1 Web 智能産品模型簡介
8.3.2 元數據
8.3.3 屬性
8.3.4 行為
8.3.5 智能産品
8.3.6 在樹莓派上實現Web 智能産品模型
8.3.7 小結――Web 智能産品模型
8.4 語義化的Web 智能産品
8.4.1 關聯數據和RDFa
8.4.2 約定的語義:schema.org
8.4.3 JSON-LD
8.4.4 課外閱讀
8.5 總結
9 共享層:安全地分享Web 智能産品
9.1 保障智能産品安全性
9.1.1 加密基礎
9.1.2 Web 安全與TLS :HTTPS 的S
9.1.3 在樹莓派中啓用TLS 以支持HTTPS 和WSS
9.2 授權和訪問控製
9.2.1 通過 REST 和 API token 進行訪問控製
9.2.2 OAuth :一個Web 身份驗證框架
9.3 社交化萬維物聯網
9.3.1 社交化萬維物聯網認證代理
9.3.2 實現社交化萬維物聯網認證代理
9.4 課外閱讀
9.5 總結
10 整閤層:物理網聚閤應用
10.1 構建一個簡單的App――自動生成UI
10.1.1 Web 智能産品的通用用戶界麵
10.2 物理網聚閤應用
10.2.1 使用Node-RED 工具創建物理網聚閤應用
10.3 使用嚮導式工具來創建物理網聚閤應用:IFTTT
10.3.1 將入侵者警報推送到 Google 電子錶格上
10.3.2 使用自建通道發送請求
10.3.3 將入侵警報信息從Twitter 推送到Google 電子錶格
10.4 課外閱讀
10.4.1 從簡單的聚閤應用到大數據聚閤應用
10.4.2 更好的用戶體驗
10.5 總結
附錄A Arduino、BeagleBone、Intel Edison 與WoT
譯者序
物聯網(IoT)正在悄然改變著整個世界。以前收快遞,快遞員要拿著單子給收貨人手簽,現在隻要掃描一下就可以瞭。在圖書館裏藉閱和歸還圖書,不再需要人工一本一本地記錄,隻需要將一疊書放在掃描器上,貼著RFID 標簽的書就能被圖書管理員的電腦記錄和自動跟蹤。連接到智能手機的健康手環能夠隨時監控你的健康狀況。自己不在傢時,如果傢中有異常,安裝在傢裏的智能攝像機會第一時間拍下險情或入侵者照片並發送警報給你。傢中的一些小傢電開始具備上網的功能,當你下班將要迴傢時,可以通過手機控製傢中的暖氣或空調開始工作,以便於你進入傢門時,傢中已經達到瞭令人舒適的溫度。這一切都多虧瞭物聯網的發展。
人們對於生活的追求是無止盡的。隨著身邊的智能産品逐漸增加,我們總想要這些設備更加方便和智能。比如,有這樣一個需求:“當我人在客廳時,如果是白天,則調節窗簾打開的尺度,以保證一個讓我感到舒適的亮度”,又或者“當我打開衣櫃時,我的智能語音助手能為我播報一下今天的天氣”,再或者“當晚上8 點半時,如果我坐在書桌前,請熱水器為我開始加熱洗澡水,等水溫到達60 度時,有鬧鈴提醒我去洗澡”。想象上麵這些場景,或許這些場景在未來會漸漸多起來。這裏遇到的一個問題是,我如何讓窗簾知道我人在客廳,並且時間是白天?我打開衣櫃時,又如何知道今天的天氣?我坐在書桌前,如何知道是晚上8 點半,又如何通知熱水器加熱和設置鬧鍾?這是比物聯網更高一層次的問題,它涉及“如何建立一種通用的語言,讓不同廠商的智能産品能夠彼此通信並協同工作”的問題,而這就是本書的核心概念,即萬維物聯網(WoT)。如果說,萬維網是通過瀏覽器連接人與內容、人與人,那麼WoT 就是連接智能産品與智能産品、智能産品與應用程序、智能産品與數據,以及智能産品與人,這樣就能形成一個全球化的、萬物互聯的公共網絡。
作者在本書中提齣WoT 這樣的設想,即利用現成的Web 標準,以樹莓派這樣的單闆計算機或者Arduino 這樣更低成本的RTOS 設備作為網關,讓眾多設備以HTTP 協議進行通信,內容以JSON 或HTML 形式呈現。這樣的話,未來開發和維護IoT 設備,讓IoT 設備彼此通信,就和Web 工程師維護網頁沒有太大的區彆。更關鍵的是,通過本書的分析,作者指齣,使用現有的Web 標準和相關技術,完全可以解決IoT 相互通信麵臨的各種問題,讓智能産品進入WoT 時代!
迴到前麵的三個場景,如果用WoT 來解決,也就是智能紅外傳感器檢測到客廳有人,則推送一個事件給網關的Web 服務,隨後Web 服務發送一個POST 請求給窗簾控製器,它控製窗簾打開一定的幅度,並將結果返迴;衣櫃門鎖檢測到被開啓,則推送一個事件給網關的Web 服務,隨後Web 服務請求網絡上的天氣服務,獲得當地此刻的天氣,將數據發送給語音助手,語音助手開始播報天氣;桌麵上的智能攝像機檢測到我坐在書桌前,則推送一個事件給網關的Web 服務,隨後Web 服務發送一個GET 請求獲得當前時間,判斷時間是否是八點半,如果已經到八點半,POST 請求就被發送給熱水器控製器,讓熱水器開始加熱。如果紅外傳感器、窗簾控製器、衣櫃門、語音助手、智能攝像機、熱水器控製器都能與Web 網關通信,那麼它們之間的相互控製邏輯就可以用JavaScript 發送簡單的HTTP 請求來輕鬆完成,而且可以用HTML 和CSS 來生成控製界麵,將各個智能産品由封閉的孤島轉變成可以任意組閤的物理網聚閤應用。這就是WoT 最大的魅力!
本書的兩位作者Dominique Guinard 和Vlad Trifa 是IoT 世界的領軍人,也是WoT 的先行者,提齣以Web 的思路解決IoT 的互通問題,為我們描繪瞭萬物互聯的美好前景。而像樹莓派這樣體積小巧、功耗低並且廉價的單闆計算機,也許是未來智能傢居網關最閤適的選擇。
如果你想探索未知的智能産品世界,同時又想讓生活更美好,那麼隻要閱讀本書,你就能通過一張名片大小的“電腦”和前端程序員熟悉的HTML、CSS 和JavaScript 技術來實現,這是多麼棒的一件事!
本書沒有難懂晦澀的專業術語和多麼高深的理論,所有的技術內容都沒有脫離Web 技術的範疇,一位稍有經驗的Web 工程師應該能輕鬆理解和掌握書中所講述的內容。作者還為本書提供瞭豐富的例子,甚至考慮到沒有購買樹莓派硬件的情況,為例子提供瞭PC 模擬的方式,便於讀者理解書中的概念。當然,購買一款樹莓派和一些外設來自己動手實踐,無疑會更有趣一些。
由於Node.js 和樹莓派在最近幾年發展很快,一些標準和API 也可能發生變化,作者也考慮瞭這種情況,將書中所有例子以開源的形式放在瞭GitHub 上,如果你發現書中例子代碼不能正常運行,可以訪問 github.com/webofthings/wot-book 獲取代碼的最新版本。
本書作者在Web 和IoT 領域都有豐富的經驗,知識麵廣泛,行文流暢,介紹的內容深入淺齣。非常感謝博文視點俠少(張春雨)將這樣一本好書給我翻譯。我拿到本書時,就被書中內容深深吸引,迫不及待地入手樹莓派深入學習。這是我獨自翻譯的第一本技術書籍,我深知自己知識麵有限,翻譯過程難免疏漏。對我翻譯的書稿,奇舞團李鬆峰老師、博文視點恩惠編輯幫忙耐心審閱,提齣瞭許多中肯的修改意見,非常感謝他們。希望讀者能從書中得到知識,收獲樂趣,用樹莓派做齣更有趣的WoT 應用。期待未來WoT 讓這個世界變得更美好!
月影
序
不錯
評分正在看,
評分不錯
評分垃圾,沒有塑封,髒兮兮的
評分正在看,
評分垃圾,沒有塑封,髒兮兮的
評分好
評分正在看,
評分好
從物聯到萬聯:Node.js與樹莓派萬維物聯網構建實戰 pdf epub mobi txt 電子書 下載