注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學(xué)技術(shù)計算機/網(wǎng)絡(luò)操作系統(tǒng)物聯(lián)網(wǎng)系統(tǒng)開發(fā):從0到1構(gòu)建IoT平臺(第2版)

物聯(lián)網(wǎng)系統(tǒng)開發(fā):從0到1構(gòu)建IoT平臺(第2版)

物聯(lián)網(wǎng)系統(tǒng)開發(fā):從0到1構(gòu)建IoT平臺(第2版)

定 價:¥99.00

作 者: 付強 傅靜濤
出版社: 機械工業(yè)出版社
叢編項:
標 簽: 暫缺

購買這本書可以去


ISBN: 9787111780397 出版時間: 2024-12-01 包裝: 平裝-膠訂
開本: 16開 頁數(shù): 字數(shù):  

內(nèi)容簡介

  本書是一部從技術(shù)原理、工程實踐、設(shè)計模式和最佳實踐等多個維度詳細講解物聯(lián)網(wǎng)系統(tǒng)和產(chǎn)品開發(fā)的著作。它涵蓋物聯(lián)網(wǎng)應(yīng)用開發(fā)80%的場景,能指導(dǎo)讀者零基礎(chǔ)的讀者從0到1構(gòu)建一個功能齊備的物聯(lián)網(wǎng)平臺,并附有代碼和解釋。本書既有作者在物聯(lián)網(wǎng)行業(yè)多年實操經(jīng)驗的總結(jié),也結(jié)合了作者在高校的多年教學(xué)實踐經(jīng)驗,是一本既適合高校學(xué)生、物聯(lián)網(wǎng)初學(xué)者,也適合有經(jīng)驗的物聯(lián)網(wǎng)開發(fā)者和架構(gòu)師閱讀的佳作。本書第1版是物聯(lián)網(wǎng)系統(tǒng)開發(fā)領(lǐng)域的暢銷書,幾乎零差評。第2版新增了全面解析MQTT 5.0協(xié)議特性的內(nèi)容,同時,為了適配EMQX最新版本,對書中的相關(guān)代碼和配置均進行了更新。全書共14章,分為三大部分:第一部分(第1~2章)物聯(lián)網(wǎng)基礎(chǔ)介紹物聯(lián)網(wǎng)基礎(chǔ)知識,涵蓋物聯(lián)網(wǎng)的概念和常用協(xié)議。第二部分(第3~6章)MQTT協(xié)議詳解與實戰(zhàn)詳細講解MQTT協(xié)議,通過詳盡的示例代碼對物聯(lián)網(wǎng)的核心協(xié)議——MQTT協(xié)議的規(guī)范和特性進行講解。內(nèi)容包括MQTT 3.1.1和MQTT 5.0。第三部分(第7~14章)實戰(zhàn):從零開始搭建一個IoT平臺物聯(lián)網(wǎng)平臺開發(fā)實戰(zhàn),講解如何使用開源組件從0到1構(gòu)建一個功能完備的物聯(lián)網(wǎng)平臺。

作者簡介

  付強,資深物聯(lián)網(wǎng)技術(shù)專家,有超過15年的物聯(lián)網(wǎng)行業(yè)從業(yè)經(jīng)驗,現(xiàn)擔(dān)任某物聯(lián)網(wǎng)軟硬件解決方案公司的創(chuàng)始人兼CTO。曾就職于趨勢科技、諾基亞創(chuàng)新中心硅谷實驗室,專注于物聯(lián)網(wǎng)軟硬件產(chǎn)品和平臺的設(shè)計和開發(fā)。 CSDN專欄作者,撰寫了多篇物聯(lián)網(wǎng)和AI相關(guān)的專欄文章。傅靜濤,工信部高級項目經(jīng)理,在一流高校從事相關(guān)專業(yè)科研和教學(xué)近30年, 在物聯(lián)網(wǎng)領(lǐng)域有非常深厚的積累。主持和實施了多個物聯(lián)網(wǎng)軟硬件產(chǎn)品和平臺的研發(fā)與落地。

圖書目錄

目  錄 Contents
前言
第一部分 物聯(lián)網(wǎng)基礎(chǔ)
第1章 什么是物聯(lián)網(wǎng) 2
1.1 物聯(lián)網(wǎng)和人工智能 3
1.2 物聯(lián)網(wǎng)的現(xiàn)狀與前景 4
第2章 常見的物聯(lián)網(wǎng)協(xié)議 6
2.1 MQTT協(xié)議 6
2.2 MQTT-SN協(xié)議 7
2.3 CoAP 8
2.4 LwM2M協(xié)議 9
2.5 HTTP 9
2.6 LoRaWAN協(xié)議 9
2.7 NB-IoT協(xié)議 10
2.8 本章小結(jié) 10
第二部分 MQTT協(xié)議詳解與實戰(zhàn)
第3章 MQTT協(xié)議基礎(chǔ) 13
3.1 MQTT協(xié)議的通信模型 13
3.2 MQTT的不同版本  14
3.3 MQTT Client 14
3.4 MQTT Broker 16
3.5 MQTT協(xié)議數(shù)據(jù)包格式 17
3.6 本章小結(jié) 19
第4章 MQTT 3.1.1協(xié)議詳解 20
4.1 建立到Broker的連接 20
4.1.1 CONNECT數(shù)據(jù)包 20
4.1.2 CONNACK數(shù)據(jù)包 23
4.1.3 關(guān)閉連接 25
4.1.4 代碼實踐 26
4.2 訂閱與發(fā)布 29
4.2.1 PUBLISH數(shù)據(jù)包 30
4.2.2 代碼實踐:發(fā)布消息 32
4.2.3 訂閱一個主題 32
4.2.4 代碼實踐:訂閱主題 35
4.2.5 取消訂閱 37
4.3 QoS及其最佳實踐 40
4.3.1 MQTT協(xié)議中的QoS等級 40
4.3.2 QoS0 40
4.3.3 QoS1 41
4.3.4 QoS2 42
4.3.5 代碼實踐:使用不同的QoS
發(fā)布消息 45
4.3.6 實際的QoS 48
4.3.7 QoS的最佳實踐 48
4.4 Retained消息和LWT 49
4.4.1 Retained消息 49
4.4.2 代碼實踐:發(fā)布和接收
Retained消息 50
4.4.3 LWT 52
4.4.4 代碼實踐:監(jiān)控Client連接
狀態(tài) 52
4.5 Keep Alive與連接保活 54
4.5.1 Keep Alive 54
4.5.2 代碼實踐 56
4.5.3 連接?;睢?7
4.6 本章小結(jié) 59
第5章 MQTT 5.0協(xié)議詳解 60
5.1 協(xié)議包內(nèi)容擴展 60
5.1.1 屬性集 60
5.1.2 原因碼 60
5.2 更完善的連接管理 63
5.2.1 獲取MQTT Broker的連接
屬性 63
5.2.2 代碼實踐:建立MQTT 5.0
連接 65
5.2.3 Client主動斷開連接 65
5.2.4 代碼實踐:主動斷開連接,
觸發(fā)遺愿機制 66
5.2.5 Broker主動斷開連接 67
5.2.6 代碼實踐:處理客戶端標識符
沖突 67
5.3 更完善的會話管理 68
5.3.1 清理會話啟動 69
5.3.2 會話過期時間 69
5.3.3 代碼實踐:在CONNECT數(shù)據(jù)包
中設(shè)定會話過期時間 70
5.3.4 代碼實踐:在DISCONNECT
數(shù)據(jù)包中更新會話過期時間 70
5.4 新增消息過期機制 71
5.4.1 消息過期時間 71
5.4.2 代碼實踐:發(fā)布帶有過期
時間的消息 72
5.5 協(xié)議級別支持共享訂閱 73
5.5.1 如何使用共享訂閱 73
5.5.2 代碼實踐:使用共享訂閱 74
5.5.3 代碼實踐:使用帶通配符的
共享訂閱 75
5.5.4 代碼實踐:多個共享訂閱組 76
5.6 數(shù)據(jù)包可攜帶用戶屬性 77
5.6.1 為什么要引入用戶屬性 77
5.6.2 典型的使用場景 78
5.7 可聲明消息體格式 79
5.7.1 為什么要聲明消息體格式 79
5.7.2 如何聲明消息體格式 79
5.7.3 代碼實踐:發(fā)布帶有消息體
格式的消息 79
5.8 可設(shè)置主題別名 80
5.8.1 主題名映射 81
5.8.2 代碼實踐:使用主題別名 81
5.9 新增請求/響應(yīng)模式 82
5.9.1 MQTT 5.0之前的解決方案 82
5.9.2 MQTT 5.0的解決方案 83
5.9.3 代碼實踐:使用請求/響應(yīng)模式
進行數(shù)據(jù)交互 84
5.10 訂閱時可指定訂閱標識符 85
5.10.1 訂閱標識符 85
5.10.2 代碼實踐:使用訂閱標
識符 85
5.11 更完善的訂閱選項 86
5.11.1 QoS等級選項 87
5.11.2 非本地選項 87
5.11.3 保留Retain標識符選項 87
5.11.4 保留消息處理選項 87
5.11.5 代碼實踐:設(shè)置非本地
選項 87
5.11.6 代碼實踐:設(shè)置保留Retain
標識符選項 88
5.11.7 代碼實踐:設(shè)置保留消息
處理選項 89
5.12 更完善的認證機制 91
5.13 本章小結(jié) 92
第6章 MQTT協(xié)議實戰(zhàn) 93
6.1 “AI IoT”項目實戰(zhàn) 93
6.1.1 用TensorFlow在Android系統(tǒng)
上進行物體識別 93
6.1.2 如何在MQTT協(xié)議里傳輸大
文件 94
6.1.3 消息去重 95
6.1.4 最終的消息數(shù)據(jù)格式 95
6.1.5 代碼實踐:上傳識別結(jié)果 95
6.1.6 在瀏覽器中運行
MQTT Client 97
6.1.7 代碼實踐:接收識別結(jié)果 97
6.1.8 搭建私有MQTT Broker 98
6.1.9 傳輸層安全 100
6.2 MQTT常見問題解答 101
6.3 開發(fā)物聯(lián)網(wǎng)應(yīng)用,學(xué)會MQTT
協(xié)議就夠了嗎 101
6.4 本章小結(jié) 103
第三部分 實戰(zhàn):從零開始搭建
 一個IoT平臺
第7章 準備工作臺 107
7.1 安裝需要的組件 107
7.2 Maque IotHub的組成部分 108
7.3 項目結(jié)構(gòu) 109
7.3.1 IotHub Server 109
7.3.2 IotHub DeviceSDK 109
7.4 本章小結(jié) 111
第8章 設(shè)備生命周期管理 112
8.1 設(shè)備注冊 112
8.1.1 設(shè)備三元組 112
8.1.2 EMQX的認證方式 113
8.1.3 設(shè)備接入流程 117
8.1.4 Server API:設(shè)備注冊 118
8.1.5 調(diào)整EMQX配置 120
8.1.6 修改DeviceSDK 121
8.1.7 Server API:設(shè)備信息
查詢 122
8.1.8 Server API:獲取接入IotHub
的一次性密碼(JWT) 123
8.1.9 完善細節(jié) 125
8.2 設(shè)備連接狀態(tài)管理 127
8.2.1 Poor man’s Solution 127
8.2.2 使用EMQX的解決方案 128
8.2.3 管理設(shè)備的連接狀態(tài) 132
8.3 設(shè)備的禁用與刪除 136
8.3.1 禁用設(shè)備 136
8.3.2 刪除設(shè)備 141
8.4 設(shè)備權(quán)限管理 142
8.4.1 為什么要控制Publish和
Subscribe權(quán)限 142
8.4.2 EMQX的ACL功能 142
8.4.3 集成EMQX的ACL功能 146
8.5 給IotHub加一點擴展性 148
8.5.1 EMQX的縱向擴展 148
8.5.2 EMQX的橫向擴展 149
8.6 本章小結(jié) 151
第9章 上行數(shù)據(jù)處理 152
9.1 選擇一個可擴展的方案 152
9.1.1 完全基于MQTT協(xié)議的方案 153
9.1.2 基于WebHook的方案 154
9.1.3 數(shù)據(jù)格式 155
9.1.4 主題名規(guī)劃 156
9.1.5 上行數(shù)據(jù)存儲 156
9.1.6 通知業(yè)務(wù)系統(tǒng) 157
9.1.7 上行數(shù)據(jù)查詢 157
9.1.8 上行數(shù)據(jù)處理流程 157
9.2 實現(xiàn)上行數(shù)據(jù)處理功能 158
9.2.1 DeviceSDK的功能實現(xiàn) 158
9.2.2 IotHub Server的功能實現(xiàn) 160
9.2.3 代碼聯(lián)調(diào) 162
9.2.4 通知業(yè)務(wù)系統(tǒng) 164
9.2.5 Server API歷史消息查詢 167
9.3 設(shè)備狀態(tài)上報 168
9.3.1 設(shè)備狀態(tài) 168
9.3.2 DeviceSDK的實現(xiàn) 169
9.3.3 IotHub Server 的實現(xiàn) 169
9.3.4 Server API:查詢設(shè)備狀態(tài) 171
9.3.5 代碼聯(lián)調(diào) 172
9.3.6 為何不用Retained消息 172
9.4 時序數(shù)據(jù)庫 173
9.4.1 時序數(shù)據(jù) 173
9.4.2 時序數(shù)據(jù)庫概述 174
9.4.3 收集設(shè)備連接狀態(tài)變化的
數(shù)據(jù) 174
9.5 本章小結(jié) 177
第10章 下行數(shù)據(jù)處理 178
10.1 選擇一個可擴展的方案 179
10.1.1 完全基于 MQTT協(xié)議的
方案 179
10.1.2 基于EMQX RESTful API的
方案 180
10.1.3 下行數(shù)據(jù)格式 180
10.1.4 主題名規(guī)劃 181
10.1.5 如何訂閱主題 182
10.1.6 設(shè)備端消息去重 182
10.1.7 指令回復(fù) 183
10.2 DeviceSDK端的實現(xiàn) 183
10.2.1 消息去重 183
10.2.2 提取元數(shù)據(jù) 184
10.2.3 處理指令 185
10.2.4 回復(fù)指令 186
10.3 服務(wù)端的實現(xiàn) 187
10.3.1 更新ACL 列表 187
10.3.2 EMQX發(fā)布功能 187
10.3.3 Server API:發(fā)送指令 188
10.3.4 Broker自動訂閱 189
10.3.5 通知業(yè)務(wù)系統(tǒng) 190
10.3.6 代碼聯(lián)調(diào) 192
10.4 本章小結(jié) 195
第11章 IotHub的高級功能 196
11.1 RPC式調(diào)用 196
11.1.1 主題規(guī)劃 197
11.1.2 等待指令回復(fù) 198
11.1.3 服務(wù)端實現(xiàn) 198
11.1.4 Server API:發(fā)送RPC指令 200
11.1.5 更新設(shè)備ACL列表 201
11.1.6 更新服務(wù)器訂閱列表 201
11.1.7 DeviceSDK端實現(xiàn) 202
11.1.8 代碼聯(lián)調(diào) 203
11.2 設(shè)備數(shù)據(jù)請求 204
11.2.1 更新設(shè)備ACL列表 205
11.2.2 服務(wù)端實現(xiàn) 206
11.2.3 DeviceSDK端實現(xiàn) 207
11.2.4 代碼聯(lián)調(diào) 207
11.3 NTP服務(wù) 209
11.3.1 IotHub 的 NTP 服務(wù) 209
11.3.2 DeviceSDK端實現(xiàn) 210
11.3.3 服務(wù)端實現(xiàn) 211
11.3.4 代碼聯(lián)調(diào) 212
11.4 設(shè)備分組 212
11.4.1 功能設(shè)計 213
11.4.2 服務(wù)端實現(xiàn) 215
11.4.3 DeviceSDK端實現(xiàn)  218
11.4.4 代碼聯(lián)調(diào) 221
11.5 M2M設(shè)備間通信 223
11.5.1 主題名規(guī)劃 223
11.5.2 服務(wù)端實現(xiàn) 224
11.5.3 DeviceSDK端實現(xiàn) 225
11.5.4 代碼聯(lián)調(diào) 225
11.6 OTA升級 227
11.6.1 功能設(shè)計 227
11.6.2 服務(wù)端實現(xiàn) 229
11.6.3 DeviceSDK端實現(xiàn) 233
11.6.4 代碼聯(lián)調(diào) 235
11.7 設(shè)備影子 238
11.7.1 什么是設(shè)備影子 238
11.7.2 設(shè)備影子的數(shù)據(jù)結(jié)構(gòu) 238
11.7.3 設(shè)備影子的數(shù)據(jù)流向 239
11.7.4 服務(wù)端實現(xiàn) 241
11.7.5 DeviceSDK端實現(xiàn) 246
11.7.6 代碼聯(lián)調(diào) 248
11.8 本章小結(jié) 250
第12章 擴展EMQX Broker 251
12.1 EMQX的插件系統(tǒng) 251
12.1.1 Erlang語言 252
12.1.2 安裝編譯工具 252
12.2 我們會用到的Erlang特性 253
12.2.1 Erlang簡介 253
12.2.2 變量和賦值 254
12.2.3 特殊的 Erlang 數(shù)據(jù)類型 255
12.2.4 模式匹配 255
12.2.5 模塊與函數(shù) 256
12.2.6 宏定義 257
12.2.7 OTP 257
12.3 搭建開發(fā)和編譯環(huán)境 257
12.3.1 使用插件模板 257
12.3.2 代碼結(jié)構(gòu) 257
12.3.3 編譯和打包 260
12.4 實現(xiàn)基于RabbitMQ的Hook
插件:emqx_rabbitmq?_?plugin 260
12.4.1 插件配置文件 260
12.4.2 建立RabbitMQ的連接池 261
12.4.3 處理client.connected事件 263
12.4.4 處理client.disconnected
事件 263
12.4.5 處理message.publish事件 264
12.5 使用emqx_rabbitmq?_?plugin
插件 265
12.5.1 安裝和啟用插件 265
12.5.2 測試插件 266
12.5.3 管理插件配置 267
12.5.4 集成emqx_rabbitmq?_?plugin
插件 268
12.5.5 IotHub 的全新架構(gòu) 269
12.6 本章小結(jié) 270
第13章 集成CoAP 271
13.1 CoAP簡介 271
13.1.1 CoAP的消息模型 272
13.1.2 CoAP的請求/響應(yīng)機制 272
13.1.3 CoAP OBSERVE 273
13.1.4 CoAP HTTP網(wǎng)關(guān) 273
13.2 集成CoAP到IotHub 274
13.2.1 EMQX的CoAP網(wǎng)關(guān) 274
13.2.2 設(shè)備發(fā)起連接 277
13.2.3 設(shè)備上報數(shù)據(jù) 279
13.2.4 設(shè)備發(fā)送心跳 280
13.2.5 設(shè)備主動斷開連接 281
13.3 本章小結(jié) 282
第14章 使用其他語言擴展
 EMQX 283
14.1 EMQX的gRPC鉤子 283
14.2 gRPC簡介 284
14.3 基于EMQX的gRPC鉤子實現(xiàn)
插件功能 284
14.3.1 ExHook的服務(wù)定義 284
14.3.2 代碼結(jié)構(gòu) 286
14.3.3 OnProviderLoaded接口 287
14.3.4 OnClientConnected接口 288
14.3.5 OnClientDisconnected
接口 290
14.3.6 OnMessagePublish接口 290
14.4 啟用emqx_rabbitmq?_node_
plugin 293
14.5 本章小結(jié) 294
結(jié)語 我們學(xué)到了什么 295
附錄A 如何運行Maque IotHub 299

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) www.stefanvlieger.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號