IoT 開發實戰:CoAP 捲

徐凱

  • 出版商: 機械工業
  • 出版日期: 2017-09-01
  • 定價: $354
  • 售價: 8.5$301
  • 語言: 簡體中文
  • 頁數: 242
  • 裝訂: 平裝
  • ISBN: 7111577809
  • ISBN-13: 9787111577805
  • 相關分類: 物聯網 IoT
  • 下單後立即進貨 (約4週~6週)

買這商品的人也買了...

商品描述

CoAP是受限制的應用協議(Constrained Application Protocol)的簡稱。隨著近幾年物聯網技術的快速發展,越來越多的設備需要接入因特網。雖然對人們而言,連接因特網方便快捷,但是對於那些低功耗受限制設備,接入因特網卻非常困難。在當前由PC機和智能手機組成的因特網世界中,信息交換一般通過TCP和HTTP協議實現。但是低功耗受限制設備要實現TCP和HTTP協議也許是一個非常苛刻的要求。為了讓低功耗受限制設可以流暢接入因特網,CoAP應運而生。 CoAP是一種物聯網應用層協議,它運行於UDP協議之上,而不是像HTTP那樣運行於TCP之上。 CoAP借鑒了HTTP協議大量的成功經驗,CoAP和HTTP都使用請求響應工作模式。與HTTP採用文本首部不同,CoAP採用完全的二進制首部,這使得CoAP的首部更短,傳輸效率更高。 CoAP為低功耗受限制設備而生,一個內存僅有20KB的單片機也可以實現CoAP服務器或客戶端。
本書主要內容包括:
學習CoAP必要的網絡基礎知識
CoAP與MQTT、HTTP之間的區別與聯繫
CoAP核心內容:二進制首部、工作模式、重傳機制、響應碼、選項和媒體類型等
CoAP擴展內容:CoAP資源描述和CoAP觀察者
使用C語言、Python或Node.js實現CoAP客戶端與服務器
使用Copper插件和Wireshark調試CoA

作者簡介

徐凱,嵌入式軟件工程師,現就職於美的集團洗衣機事業部。擅長嵌入式Web系統和6LoWPAN無線傳感網應用,精通物聯網應用層協議CoAP和物聯網操作系統Contiki。

目錄大綱

前言
第1章  物聯網與網絡協議1
1.1  本章主要內容1
1.2  物聯網與IP2
1.2.1  IPv42
1.2.2  IPv62
1.2.3  6LoWPAN3
1.3  物聯網與HTTP 6
1.3.1  HTTP6
1.3.2  REST風格6
1.4  物聯網與CoAP7
1.4.1  CoAP8
1.4.2  RFC文檔匯總8
1.5  物聯網與MQTT協議10
1.5.1  MQTT協議10
1.5.2  MQTT主題10
1.5.3  MQTT服務質量11
1.6  本章小結12

第2章  物聯網與開源硬件13
2.1  本章主要內容13
2.2  Arduino13
2.2.1  Arduino簡介13
2.2.2  常用Arduino型號14
2.2.3  Arduino擴展接口15
2.3  樹莓派16
2.3.1  樹莓派簡介16
2.3.2  常用樹莓派型號16
2.3.3  樹莓派擴展接口19
2.4  本章小結20

第3章  網絡技術回顧22
3.1  本章主要內容22
3.2  IP23
3.2.1  動手嘗試23
3.2.2  IPv4首部26
3.2.3  IPv4地址27
3.2.4  IPv6首部28
3.2.5  IPv6地址30
3.3  UDP31
3.3.1  動手嘗試31
3.3.2  UDP首部35
3.3.3  UDP示例分析35
3.4  TCP37
3.4.1  動手嘗試37
3.4.2  TCP首部41
3.4.3  TCP示例分析42
3.4.4  UDP與TCP對比43
3.5  HTTP44
3.5.1  動手嘗試44
3.5.2  HTTP工作模式50
3.5.3  HTTP首部51
3.5.4  HTTP請求方法53
3.5.5  HTTP狀態碼53
3.5.6  HTTP首部字段54
3.5.7  HTTP的優勢與問題54
3.6  本章小結56

第4章  CoAP快速入門57
4.1  本章主要內容57
4.2  Copper插件入門58
4.2.1  Copper插件安裝58
4.2.2  Copper插件入門示例59
4.3  Arduino CoAP服務器實現61
4.3.1  獲取示例61
4.3.2  示例說明62
4.3.3  動手測試67
4.3.4  著手分析70
4.4  本章小結73

第5章  CoAP核心74
5.1  本章主要內容74
5.2  CoAP首部74
5.2.1  版本編號Ver75
5.2.2  報文類型T75
5.2.3  標簽長度指示TKL75
5.2.4  準則Code76
5.2.5  報文序號Message ID77
5.2.6  標簽Token77
5.2.7  選項Options77
5.2.8  分隔符0xFF78
5.2.9  負載Payload78
5.3  CoAP工作模式78
5.3.1  邏輯分層結構79
5.3.2  報文類型79
5.3.3  請求/響應模式81
5.4  CoAP重傳機制83
5.4.1  CoAP重傳情況分析83
5.4.2  傳輸參數說明84
5.4.3  最大傳輸耗時(MAX_TRANSMIT_SPAN)85
5.4.4  最大等待時間(MAX_TRANSMIT_WAIT)86
5.5  CoAP方法87
5.5.1  GET87
5.5.2  POST87
5.5.3  PUT87
5.5.4  DELETE87
5.6  CoAP響應碼87
5.6.1  正確響應88
5.6.2  客戶端錯誤88
5.6.3  服務器錯誤89
5.7  CoAP選項90
5.7.1  選項格式90
5.7.2  URI相關選項91
5.7.3  Content-Format選項92
5.7.4  Accept選項92
5.7.5  Etag選項92
5.7.6  If-Match選項94
5.7.7  If-None-Match選項96
5.7.8  選項示例97
5.8  CoAP媒體類型99
5.8.1  link-format類型100
5.8.2  文本與二進制類型100
5.8.3  JSON類型101
5.9  本章小結102

第6章  CoAP擴展103
6.1  本章主要內容103
6.2  CoAP資源描述103
6.2.1  CoAP資源描述原理103
6.2.2  CoAP資源描述詳解105
6.3  CoAP觀察者模式106
6.3.1  觀察者模式原理106
6.3.2  CoAP觀察選項107
6.3.3  觀察者模式示例108
6.4  本章小結110

第7章  CoAP軟件實現111
7.1  本章主要內容111
7.2  libcoap112
7.2.1  libcoap安裝112
7.2.2  libcoap使用詳解114
7.2.3  libcoap入門示例117
7.3  aiocoap119
7.3.1  aiocoap安裝120
7.3.2  aiocoap入門示例120
7.3.3  aiocoap塊傳輸示例124
7.3.4  aiocoap樹莓派GPIO示例126
7.4  node-coap129
7.4.1  Node.js安裝130
7.4.2  node-coap入門示例132
7.4.3  node-coap媒體類型示例135
7.5  Californium137
7.5.1  準備工作137
7.5.2  Californium入門示例140
7.6  本章小結149

第8章  CoAP調試工具150
8.1  本章主要內容150
8.2  Copper調試工具150
8.2.1  Copper地址欄151
8.2.2  Copper工具欄152
8.2.3  Copper響應首部153
8.2.4  Copper負載內容154
8.2.5  Copper請求選項154
8.2.6  Copper使用示例155
8.3  Wireshark163
8.3.1  Wireshark安裝164
8.3.2  Wireshark使用164
8.3.3  Wireshark示例166
8.4  本章小結169

第9章  微型物聯網系統——服務器部分171
9.1  本章主要內容171
9.2  假想需求171
9.3  原型設計172
9.3.1  系統結構說明172
9.3.2  系統流程設計173
9.3.3  網頁原型設計174
9.4  詳細設計174
9.4.1  技術選型說明175
9.4.2  數據庫設計176
9.4.3  CoAP API設計176
9.4.4  HTTP API設計177
9.5  具體實現179
9.5.1  數據庫實現180
9.5.2  CoAP路由實現183
9.5.3  Web前端實現190
9.5.4  Web后端實現195
9.6  綜合測試199
9.6.1  啟動微型物聯網系統199
9.6.2  增加模擬數據200
9.6.3  訪問默認設備200
9.6.4  使用分頁功能200
9.6.5  訪問其他設備201
9.7  本章小結202

第10章  微型物聯網系統——設備部分203
10.1  本章主要內容203
10.2  設備與網絡結構說明203
10.2.1  設備說明203
10.2.2  網絡結構說明205
10.3  Contiki入門206
10.3.1  Contiki初步207
10.3.2  native入門示例211
10.3.3  安裝交叉工具鏈212
10.3.4  SensorTag入門示例213
10.4  搭建邊界路由218
10.4.1  創建Slip-Radio218
10.4.2  創建Native-Border-Router219
10.5  增加NAT64223
10.5.1  NAT64簡介223
10.5.2  安裝Jool224
10.5.3  UDP NAT64示例225
10.6  CoAP Client Sensor231
10.6.1  加入網絡并啟動任務232
10.6.2  獲取傳感器數據233
10.6.3  傳遞傳感器數據235
10.7  綜合測試238
10.7.1  啟動CoAP服務器238
10.7.2  啟動邊界路由和NAT64239
10.7.3  生成并下載固件239
10.7.4  查看運行結果239
10.8  本章小結242
參考文獻243