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

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

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

定 價(jià):¥99.00

作 者: 付強(qiáng) 傅靜濤
出版社: 機(jī)械工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

購(gòu)買這本書(shū)可以去


ISBN: 9787111780397 出版時(shí)間: 2024-12-01 包裝: 平裝-膠訂
開(kāi)本: 16開(kāi) 頁(yè)數(shù): 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

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

作者簡(jiǎn)介

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

圖書(shū)目錄

目  錄 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章 常見(jiàn)的物聯(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é)議詳解與實(shí)戰(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 代碼實(shí)踐 26
4.2 訂閱與發(fā)布 29
4.2.1 PUBLISH數(shù)據(jù)包 30
4.2.2 代碼實(shí)踐:發(fā)布消息 32
4.2.3 訂閱一個(gè)主題 32
4.2.4 代碼實(shí)踐:訂閱主題 35
4.2.5 取消訂閱 37
4.3 QoS及其最佳實(shí)踐 40
4.3.1 MQTT協(xié)議中的QoS等級(jí) 40
4.3.2 QoS0 40
4.3.3 QoS1 41
4.3.4 QoS2 42
4.3.5 代碼實(shí)踐:使用不同的QoS
發(fā)布消息 45
4.3.6 實(shí)際的QoS 48
4.3.7 QoS的最佳實(shí)踐 48
4.4 Retained消息和LWT 49
4.4.1 Retained消息 49
4.4.2 代碼實(shí)踐:發(fā)布和接收
Retained消息 50
4.4.3 LWT 52
4.4.4 代碼實(shí)踐:監(jiān)控Client連接
狀態(tài) 52
4.5 Keep Alive與連接?;睢?4
4.5.1 Keep Alive 54
4.5.2 代碼實(shí)踐 56
4.5.3 連接?;睢?7
4.6 本章小結(jié) 59
第5章 MQTT 5.0協(xié)議詳解 60
5.1 協(xié)議包內(nèi)容擴(kuò)展 60
5.1.1 屬性集 60
5.1.2 原因碼 60
5.2 更完善的連接管理 63
5.2.1 獲取MQTT Broker的連接
屬性 63
5.2.2 代碼實(shí)踐:建立MQTT 5.0
連接 65
5.2.3 Client主動(dòng)斷開(kāi)連接 65
5.2.4 代碼實(shí)踐:主動(dòng)斷開(kāi)連接,
觸發(fā)遺愿機(jī)制 66
5.2.5 Broker主動(dòng)斷開(kāi)連接 67
5.2.6 代碼實(shí)踐:處理客戶端標(biāo)識(shí)符
沖突 67
5.3 更完善的會(huì)話管理 68
5.3.1 清理會(huì)話啟動(dòng) 69
5.3.2 會(huì)話過(guò)期時(shí)間 69
5.3.3 代碼實(shí)踐:在CONNECT數(shù)據(jù)包
中設(shè)定會(huì)話過(guò)期時(shí)間 70
5.3.4 代碼實(shí)踐:在DISCONNECT
數(shù)據(jù)包中更新會(huì)話過(guò)期時(shí)間 70
5.4 新增消息過(guò)期機(jī)制 71
5.4.1 消息過(guò)期時(shí)間 71
5.4.2 代碼實(shí)踐:發(fā)布帶有過(guò)期
時(shí)間的消息 72
5.5 協(xié)議級(jí)別支持共享訂閱 73
5.5.1 如何使用共享訂閱 73
5.5.2 代碼實(shí)踐:使用共享訂閱 74
5.5.3 代碼實(shí)踐:使用帶通配符的
共享訂閱 75
5.5.4 代碼實(shí)踐:多個(gè)共享訂閱組 76
5.6 數(shù)據(jù)包可攜帶用戶屬性 77
5.6.1 為什么要引入用戶屬性 77
5.6.2 典型的使用場(chǎng)景 78
5.7 可聲明消息體格式 79
5.7.1 為什么要聲明消息體格式 79
5.7.2 如何聲明消息體格式 79
5.7.3 代碼實(shí)踐:發(fā)布帶有消息體
格式的消息 79
5.8 可設(shè)置主題別名 80
5.8.1 主題名映射 81
5.8.2 代碼實(shí)踐:使用主題別名 81
5.9 新增請(qǐng)求/響應(yīng)模式 82
5.9.1 MQTT 5.0之前的解決方案 82
5.9.2 MQTT 5.0的解決方案 83
5.9.3 代碼實(shí)踐:使用請(qǐng)求/響應(yīng)模式
進(jìn)行數(shù)據(jù)交互 84
5.10 訂閱時(shí)可指定訂閱標(biāo)識(shí)符 85
5.10.1 訂閱標(biāo)識(shí)符 85
5.10.2 代碼實(shí)踐:使用訂閱標(biāo)
識(shí)符 85
5.11 更完善的訂閱選項(xiàng) 86
5.11.1 QoS等級(jí)選項(xiàng) 87
5.11.2 非本地選項(xiàng) 87
5.11.3 保留Retain標(biāo)識(shí)符選項(xiàng) 87
5.11.4 保留消息處理選項(xiàng) 87
5.11.5 代碼實(shí)踐:設(shè)置非本地
選項(xiàng) 87
5.11.6 代碼實(shí)踐:設(shè)置保留Retain
標(biāo)識(shí)符選項(xiàng) 88
5.11.7 代碼實(shí)踐:設(shè)置保留消息
處理選項(xiàng) 89
5.12 更完善的認(rèn)證機(jī)制 91
5.13 本章小結(jié) 92
第6章 MQTT協(xié)議實(shí)戰(zhàn) 93
6.1 “AI IoT”項(xiàng)目實(shí)戰(zhàn) 93
6.1.1 用TensorFlow在Android系統(tǒng)
上進(jìn)行物體識(shí)別 93
6.1.2 如何在MQTT協(xié)議里傳輸大
文件 94
6.1.3 消息去重 95
6.1.4 最終的消息數(shù)據(jù)格式 95
6.1.5 代碼實(shí)踐:上傳識(shí)別結(jié)果 95
6.1.6 在瀏覽器中運(yùn)行
MQTT Client 97
6.1.7 代碼實(shí)踐:接收識(shí)別結(jié)果 97
6.1.8 搭建私有MQTT Broker 98
6.1.9 傳輸層安全 100
6.2 MQTT常見(jiàn)問(wèn)題解答 101
6.3 開(kāi)發(fā)物聯(lián)網(wǎng)應(yīng)用,學(xué)會(huì)MQTT
協(xié)議就夠了嗎 101
6.4 本章小結(jié) 103
第三部分 實(shí)戰(zhàn):從零開(kāi)始搭建
 一個(gè)IoT平臺(tái)
第7章 準(zhǔn)備工作臺(tái) 107
7.1 安裝需要的組件 107
7.2 Maque IotHub的組成部分 108
7.3 項(xiàng)目結(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è)備注冊(cè) 112
8.1.1 設(shè)備三元組 112
8.1.2 EMQX的認(rèn)證方式 113
8.1.3 設(shè)備接入流程 117
8.1.4 Server API:設(shè)備注冊(cè) 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 完善細(xì)節(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加一點(diǎn)擴(kuò)展性 148
8.5.1 EMQX的縱向擴(kuò)展 148
8.5.2 EMQX的橫向擴(kuò)展 149
8.6 本章小結(jié) 151
第9章 上行數(shù)據(jù)處理 152
9.1 選擇一個(gè)可擴(kuò)展的方案 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ù)存儲(chǔ) 156
9.1.6 通知業(yè)務(wù)系統(tǒng) 157
9.1.7 上行數(shù)據(jù)查詢 157
9.1.8 上行數(shù)據(jù)處理流程 157
9.2 實(shí)現(xiàn)上行數(shù)據(jù)處理功能 158
9.2.1 DeviceSDK的功能實(shí)現(xiàn) 158
9.2.2 IotHub Server的功能實(shí)現(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)上報(bào) 168
9.3.1 設(shè)備狀態(tài) 168
9.3.2 DeviceSDK的實(shí)現(xiàn) 169
9.3.3 IotHub Server 的實(shí)現(xiàn) 169
9.3.4 Server API:查詢?cè)O(shè)備狀態(tài) 171
9.3.5 代碼聯(lián)調(diào) 172
9.3.6 為何不用Retained消息 172
9.4 時(shí)序數(shù)據(jù)庫(kù) 173
9.4.1 時(shí)序數(shù)據(jù) 173
9.4.2 時(shí)序數(shù)據(jù)庫(kù)概述 174
9.4.3 收集設(shè)備連接狀態(tài)變化的
數(shù)據(jù) 174
9.5 本章小結(jié) 177
第10章 下行數(shù)據(jù)處理 178
10.1 選擇一個(gè)可擴(kuò)展的方案 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端的實(shí)現(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ù)端的實(shí)現(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自動(dòng)訂閱 189
10.3.5 通知業(yè)務(wù)系統(tǒng) 190
10.3.6 代碼聯(lián)調(diào) 192
10.4 本章小結(jié) 195
第11章 IotHub的高級(jí)功能 196
11.1 RPC式調(diào)用 196
11.1.1 主題規(guī)劃 197
11.1.2 等待指令回復(fù) 198
11.1.3 服務(wù)端實(shí)現(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端實(shí)現(xiàn) 202
11.1.8 代碼聯(lián)調(diào) 203
11.2 設(shè)備數(shù)據(jù)請(qǐng)求 204
11.2.1 更新設(shè)備ACL列表 205
11.2.2 服務(wù)端實(shí)現(xiàn) 206
11.2.3 DeviceSDK端實(shí)現(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端實(shí)現(xiàn) 210
11.3.3 服務(wù)端實(shí)現(xiàn) 211
11.3.4 代碼聯(lián)調(diào) 212
11.4 設(shè)備分組 212
11.4.1 功能設(shè)計(jì) 213
11.4.2 服務(wù)端實(shí)現(xiàn) 215
11.4.3 DeviceSDK端實(shí)現(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ù)端實(shí)現(xiàn) 224
11.5.3 DeviceSDK端實(shí)現(xiàn) 225
11.5.4 代碼聯(lián)調(diào) 225
11.6 OTA升級(jí) 227
11.6.1 功能設(shè)計(jì) 227
11.6.2 服務(wù)端實(shí)現(xiàn) 229
11.6.3 DeviceSDK端實(shí)現(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ù)端實(shí)現(xiàn) 241
11.7.5 DeviceSDK端實(shí)現(xiàn) 246
11.7.6 代碼聯(lián)調(diào) 248
11.8 本章小結(jié) 250
第12章 擴(kuò)展EMQX Broker 251
12.1 EMQX的插件系統(tǒng) 251
12.1.1 Erlang語(yǔ)言 252
12.1.2 安裝編譯工具 252
12.2 我們會(huì)用到的Erlang特性 253
12.2.1 Erlang簡(jiǎn)介 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 搭建開(kāi)發(fā)和編譯環(huán)境 257
12.3.1 使用插件模板 257
12.3.2 代碼結(jié)構(gòu) 257
12.3.3 編譯和打包 260
12.4 實(shí)現(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 測(cè)試插件 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簡(jiǎn)介 271
13.1.1 CoAP的消息模型 272
13.1.2 CoAP的請(qǐng)求/響應(yīng)機(jī)制 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è)備上報(bào)數(shù)據(jù) 279
13.2.4 設(shè)備發(fā)送心跳 280
13.2.5 設(shè)備主動(dòng)斷開(kāi)連接 281
13.3 本章小結(jié) 282
第14章 使用其他語(yǔ)言擴(kuò)展
 EMQX 283
14.1 EMQX的gRPC鉤子 283
14.2 gRPC簡(jiǎn)介 284
14.3 基于EMQX的gRPC鉤子實(shí)現(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é)語(yǔ) 我們學(xué)到了什么 295
附錄A 如何運(yùn)行Maque IotHub 299

本目錄推薦

掃描二維碼
Copyright ? 讀書(shū)網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)