內容簡介
本書選用了11個基於ZigBee協定棧套用開發的實例,按照“突出套用,理論夠用”的原則,採取項目化教學的方式,以作品製作為載體,採用在作品製作過程中穿插講解基礎知識和基本技能的方法,由淺入深地講解了ZigBee無線網路的開發方法,包括開發環境的搭建、協定棧中串口、定時器、NV存儲器的使用方法,單播、廣播、組播通信的實現方法,無線網路的管理方法,無線感測網路的組建方法以及C程式設計的技巧。
本書立足於套用實踐,摒棄了對複雜而深奧的通信協定理論知識的講解,適用於高等職業院校物聯網、電子信息、移動通信、網路及計算機等專業作為無線組網技術課程的教材,也可作為套用型本科和物聯網培訓班的教材以及從事無線網路組建的工程技術人員學習和參考。
圖書目錄
項目1 搭建開發環境 1
任務要求 1
實現方法與步驟 1
1. 準備開發工具 1
2. 安裝開發工具包 3
3. 安裝仿真器 8
4. 新建工程 11
5. 配置工程 15
6. 編譯、連線程式 17
7. 調試程式 18
8. 燒錄程式 21
實踐總結 25
習題 25
項目2 在協定棧中控制LED閃爍 26
任務要求 26
相關知識 26
1. 協定與協定棧 26
2. ZigBee網路中的設備 26
3. 系統事件與用戶事件 27
4. osal_msg_receive()函式 29
5. osal_msg_deallocate()函式 29
6. osal_start_timerEx()函式 29
7. HalLedSet()函式 30
8. HalLedBlink()函式 31
實現方法與步驟 31
1. 準備程式檔案 31
2. 編寫協調器程式 34
3. 編制頭檔案Coordinator.h 38
4. 修改OSAL_SampleApp.c檔案 39
5. 移除App組中的多餘檔案 39
6. 編譯下載程式 40
程式分析 42
1. App組中的檔案 42
2. Coordinator.c檔案中的代碼分析 44
3. Coordinator.h檔案中的代碼分析 52
實踐拓展 53
1. 在無協調器的條件下運行程式 53
2. 在有協調器的條件下運行程式 55
實踐總結 56
習題 56
項目3 用事件驅動處理串口接收數據 58
任務要求 58
相關知識 58
1. HalUARTOpen()函式 58
2. HalUARTRead()函式 60
3. HalUARTWrite()函式 60
4. osal_set_event()函式 61
5. 連線埠的概念 61
實現方法與步驟 62
1. 編制協調器的程式檔案Coordinator.c 62
2. 編製程序接口檔案Coordinator.h 64
3. 修改OSAL_SampleApp.c檔案 65
4. 程式編譯與下載運行 67
程式分析 71
1. Coordinator.c檔案中的代碼分析 71
2. OSAL_SampleApp.c檔案中的代碼分析 74
3. OSAL工作原理分析 76
實踐拓展 81
用新任務處理串口數據 81
實踐總結 84
習題 85
項目4 用回調函式處理串口接收數據 86
任務要求 86
相關知識 86
1. 回調函式 86
2. osal_memcmp()函式 87
3. osal_strlen()函式 87
4. osal_memset()函式 88
實現方法與步驟 88
編制協調器的程式檔案 88
程式分析 91
1. Coordinator.c檔案中的代碼分析 91
2. 串口回調函式的工作原理分析 94
實踐拓展 99
查看ZStack中串口的配置代碼 99
實踐總結 103
習題 103
項目5 用計算機控制終端節點上的LED 105
任務要求 105
相關知識 105
1. 數據包與訊息 105
2. 數據通信的3種方式 107
3. 設備的地址 108
4. AF_DataRequest()函式 108
實現方法與步驟 111
1. 編制協調器的程式檔案 111
2. 編制終端節點的程式檔案 116
3. 程式編譯與下載運行 119
程式分析 123
1. Coordinator.c檔案中的代碼分析 123
2. EndDevice.c檔案中的代碼分析 124
實踐拓展 125
修改ZStack中LED的配置 125
實踐總結 128
習題 129
項目6 分組傳輸數據 131
任務要求 131
相關知識 131
1. 信道 131
2. PAN ID 132
3. 組播通信的相關函式 133
4. 組播通信的實現方法 134
實現方法與步驟 136
1. 編程思路 136
2. 編制節點的程式檔案 138
3. 設定PANID和信道 144
4. 程式編譯與下載運行 145
程式分析 147
實踐總結 149
習題 150
項目7 用NV存儲器保存數據 151
任務要求 151
相關知識 151
1. NV存儲器 151
2. osal_nv_item_init()函式 152
3. osal_nv_read()函式 153
4. osal_nv_write()函式 153
實現方法與步驟 154
1. 定義用戶條目 154
2. 編制協調器的程式檔案 154
程式分析 159
實踐拓展 160
讀取節點的MAC地址 160
實踐總結 162
習題 163
項目8 顯示節點的地址 164
任務要求 164
相關知識 164
1. 協定棧中地址的分配機制 164
2. 獲取地址的相關函式 166
實現方法與步驟 167
1. 編制節點的程式檔案 168
2. 編制數值轉換的程式檔案 171
3. 新建User組 173
4. 程式的編譯與下載運行 175
程式分析 177
實踐拓展 178
繪製網路拓撲圖 178
實踐總結 180
習題 180
項目9 製作防盜監測器 181
任務要求 181
相關知識 181
1. 熱釋電紅外感測器的套用特性 181
2. 在協定棧中添加感測器驅動程式的方法 184
實現方法與步驟 185
1. 編制感測器驅動程式檔案 185
2. 編制協調器的程式檔案 187
3. 編制終端節點的程式檔案 190
4. 程式編譯與下載運行 193
程式分析 194
實踐總結 196
習題 196
項目10 製作光照信息採集器 198
任務要求 198
相關知識 198
1. 光敏電阻的特性 198
2. ZStack中的ADC函式 199
3. ZStack中ADC的使用方法 201
實現方法與步驟 202
1. 編制節點的程式檔案 202
2. 程式編譯與下載運行 205
程式分析 206
實踐總結 207
習題 208
項目11 製作溫濕度採集器 209
任務要求 209
相關知識 209
1. MicroWait宏 209
2. DHT11的工作特性 209
3. DHT11的訪問操作 210
實現方法與步驟 215
1. 搭建DHT11的控制電路 215
2. 編制DHT11的驅動程式檔案 215
3. 編制節點的程式檔案 217
4. 程式編譯與下載運行 223
程式分析 224
實踐總結 226
習題 226
附錄A ZigBee模組原理圖 228
附錄B 2016年全國物聯網大賽試題(ZigBee部分) 230
試題1 任務三 物聯網感知層開發調試 230
一、任務要求 230
二、任務環境 230
三、任務說明 230
試題2 任務三 物聯網感知層開發調試 233
一、任務要求 233
二、任務環境 234
三、任務說明 234