本書(shū)選用了11個(gè)基于ZigBee協(xié)議棧應(yīng)用開(kāi)發(fā)的實(shí)例,按照“突出應(yīng)用,理論夠用”的原則,采取項(xiàng)目化教學(xué)的方式,以作品制作為載體,采用在作品制作過(guò)程中穿插講解基礎(chǔ)知識(shí)和基本技能的方法,由淺入深地講解了ZigBee無(wú)線網(wǎng)絡(luò)的開(kāi)發(fā)方法,包括開(kāi)發(fā)環(huán)境的搭建、協(xié)議棧中串口、定時(shí)器、NV存儲(chǔ)器的使用方法,單播、廣播、組播通信的實(shí)現(xiàn)方法,無(wú)線網(wǎng)絡(luò)的管理方法,無(wú)線傳感網(wǎng)絡(luò)的組建方法以及C程序設(shè)計(jì)的技巧。 本書(shū)立足于應(yīng)用實(shí)踐,摒棄了對(duì)復(fù)雜而深?yuàn)W的通信協(xié)議理論知識(shí)的講解,適用于高等職業(yè)院校物聯(lián)網(wǎng)、電子信息、移動(dòng)通信、網(wǎng)絡(luò)及計(jì)算機(jī)等專業(yè)作為無(wú)線組網(wǎng)技術(shù)課程的教材,也可作為應(yīng)用型本科和物聯(lián)網(wǎng)培訓(xùn)班的教材以及從事無(wú)線網(wǎng)絡(luò)組建的工程技術(shù)人員學(xué)習(xí)和參考。
前 言
自物聯(lián)網(wǎng)被列入國(guó)家新興戰(zhàn)略產(chǎn)業(yè)以來(lái),物聯(lián)網(wǎng)在我國(guó)受到了極大的關(guān)注,應(yīng)時(shí)代發(fā)展的要求,許多高校相繼開(kāi)設(shè)了物聯(lián)網(wǎng)專業(yè)。然而物聯(lián)網(wǎng)是一個(gè)新興專業(yè),涉及計(jì)算機(jī)、通信、電子等多個(gè)學(xué)科領(lǐng)域,其固有的綜合性、復(fù)雜性、多樣性,對(duì)教學(xué)(師資力量、實(shí)踐條件、教學(xué)環(huán)境等)帶來(lái)了直接而現(xiàn)實(shí)的挑戰(zhàn),廣大應(yīng)用型本科和高職院校急需一套既涵蓋物聯(lián)網(wǎng)的基本知識(shí)又突出實(shí)踐應(yīng)用的教材。鑒于這種現(xiàn)狀以及培養(yǎng)高素質(zhì)技術(shù)型專門人才的現(xiàn)實(shí)需要,我們?cè)谡憬?yōu)勢(shì)專業(yè)的建設(shè)過(guò)程中,與上海、杭州、無(wú)錫等地企業(yè)開(kāi)展了廣泛而深入的合作,認(rèn)真分析了物聯(lián)網(wǎng)專業(yè)的崗位能力要求,與杭州哲嘉科技有限公司聯(lián)合編寫(xiě)了本書(shū)。本書(shū)具有以下特點(diǎn):
1. 按項(xiàng)目構(gòu)建課程內(nèi)容,用實(shí)例組織單元教學(xué)
本書(shū)分為11個(gè)項(xiàng)目,包括搭建開(kāi)發(fā)環(huán)境、在協(xié)議棧中控制LED閃爍、用事件驅(qū)動(dòng)處理串口接收數(shù)據(jù)、用回調(diào)函數(shù)處理串口接收數(shù)據(jù)、用計(jì)算機(jī)控制終端節(jié)點(diǎn)上的LED、分組傳輸數(shù)據(jù)、用NV存儲(chǔ)器保存數(shù)據(jù)、顯示節(jié)點(diǎn)的地址、制作防盜監(jiān)測(cè)器、制作光照信息采集器、制作溫濕度采集器,用11個(gè)項(xiàng)目講解了ZigBee無(wú)線網(wǎng)絡(luò)的開(kāi)發(fā)過(guò)程、設(shè)計(jì)方法和基本技能。全書(shū)按項(xiàng)目編排,組建ZigBee無(wú)線網(wǎng)絡(luò)所需要的基本知識(shí)和基本技能穿插在各個(gè)任務(wù)的完成過(guò)程中進(jìn)行講解,每一個(gè)任務(wù)只講解完成本任務(wù)所需要的基本知識(shí)、基本方法和基本技能,從而將知識(shí)化整為零,降低了學(xué)習(xí)的難度。
2. 融“教、學(xué)、做”于一體,突出了教材的實(shí)踐性
書(shū)中的每一個(gè)項(xiàng)目都是按照以下方式組織編排的:①任務(wù)要求,②相關(guān)知識(shí),③實(shí)現(xiàn)方法與步驟,④程序分析,⑤實(shí)踐拓展,⑥實(shí)踐總結(jié)。其中,“任務(wù)要求”主要介紹做什么和做到什么程度,是讀者實(shí)踐時(shí)的目標(biāo)要求,后續(xù)部分都是圍繞著任務(wù)的實(shí)現(xiàn)而展開(kāi)的!跋嚓P(guān)知識(shí)”部分主要介紹ZigBee無(wú)線網(wǎng)絡(luò)中的一些基本概念、ZStack中所提供的有關(guān)函數(shù)及其用法、傳感器的應(yīng)用特性及其用法,這一部分供讀者在完成任務(wù)前閱讀之用,也是本任務(wù)完成后所要掌握的基本知識(shí)!皩(shí)現(xiàn)方法與步驟”主要介紹怎么做,這一部分詳細(xì)地講解了本項(xiàng)目的實(shí)施過(guò)程,包括電路的搭建、程序的編寫(xiě)、程序的編譯下載等幾部分,讀者按照書(shū)中所介紹的方法和步驟逐步實(shí)施,就可以實(shí)現(xiàn)任務(wù)要求,這一部分是讀者實(shí)踐時(shí)必須親手做的事情。“程序分析”部分主要介紹了為什么要這樣做,這一部分詳細(xì)地講解了程序設(shè)計(jì)的思路、原則和方法!皩(shí)踐拓展”和“實(shí)踐總結(jié)”主要是進(jìn)行知識(shí)和技能的梳理與總結(jié),并適當(dāng)進(jìn)行拓展。
3. 校企聯(lián)合打造,內(nèi)容反映了企業(yè)的需求,突出了教材的實(shí)用性和實(shí)效性
一方面,杭州哲嘉科技有限公司的方勇軍博士直接參與了本書(shū)的規(guī)劃和內(nèi)容的制訂。另一方面,本書(shū)的作者是ZigBee網(wǎng)絡(luò)組建技術(shù)課程的任課教師,曾為企業(yè)開(kāi)發(fā)過(guò)智能家居系統(tǒng)、智能商鋪系統(tǒng)等多個(gè)物聯(lián)網(wǎng)應(yīng)用項(xiàng)目。本書(shū)的內(nèi)容來(lái)源于實(shí)際產(chǎn)品,反映了工程上的實(shí)際需求。
4. 提供了配套的實(shí)訓(xùn)平臺(tái),避免了教材與實(shí)訓(xùn)系統(tǒng)的相互脫節(jié)
ZigBee網(wǎng)絡(luò)組建技術(shù)是一門實(shí)踐性非常強(qiáng)的課程,除了要進(jìn)行課堂學(xué)習(xí)之外,還需要強(qiáng)有力的實(shí)踐性環(huán)節(jié)與之配合。因此,我們研制并推出了MFIoT實(shí)訓(xùn)平臺(tái)及相關(guān)的實(shí)訓(xùn)模塊,包括ZigBee網(wǎng)絡(luò)模塊、CC-Debug仿真器、相關(guān)傳感器模塊以及智能網(wǎng)關(guān)、云平臺(tái)等。其中,ZigBee網(wǎng)絡(luò)模塊、CC-Debug仿真器和傳感器模塊與本書(shū)配套,避免了以往出現(xiàn)的教材與實(shí)訓(xùn)系統(tǒng)相互脫節(jié)的情況,真正做到課堂內(nèi)外相互統(tǒng)一。如果使用本書(shū)的院校在準(zhǔn)備器件時(shí)有困難,可以與作者聯(lián)系(E-mail:lizhuqing_123@163.com),也可以到淘寶店(https://shop 359792577.taobao.com/)購(gòu)買。
5. 提供了豐富的教學(xué)資源,方便教師備課和讀者學(xué)習(xí)
本書(shū)提供了6種教學(xué)資源:11個(gè)項(xiàng)目的源程序文件;ZigBee網(wǎng)絡(luò)模塊的電路圖;書(shū)中所有芯片和傳感器的PDF文檔;書(shū)中所有習(xí)題的解答;ZigBee網(wǎng)絡(luò)開(kāi)發(fā)中的常用工具軟件;近2年全國(guó)物聯(lián)網(wǎng)大賽試題。其中,各任務(wù)的源程序供讀者學(xué)習(xí)前觀察任務(wù)的實(shí)現(xiàn)效果之用,也作學(xué)習(xí)借鑒之用,各芯片和傳感器的PDF文檔供讀者學(xué)習(xí)查閱之用,常用的工具軟件可以節(jié)省讀者收集開(kāi)發(fā)工具的時(shí)間。所有資源可直接從電子工業(yè)出版社教材服務(wù)網(wǎng)站上(www.hxedu.com.cn)下載,也可以與作者聯(lián)系。
在使用本書(shū)時(shí),建議采用“教、學(xué)、做”一體化的方式組織教學(xué),最好是在具有實(shí)物投影的實(shí)訓(xùn)室內(nèi)組織教學(xué)。教學(xué)時(shí),建議先將書(shū)中提供的程序下載至ZigBee模塊運(yùn)行中,讓學(xué)生觀看實(shí)際效果并體會(huì)任務(wù)要求的真實(shí)含義,激發(fā)學(xué)生的學(xué)習(xí)興趣。然后引導(dǎo)學(xué)生邊做邊學(xué),直至任務(wù)的完成,讓學(xué)生在做中體會(huì)和總結(jié)ZigBee網(wǎng)絡(luò)的開(kāi)發(fā)技術(shù)。本書(shū)的項(xiàng)目1是開(kāi)發(fā)環(huán)境的搭建項(xiàng)目,這一部分是后續(xù)項(xiàng)目實(shí)施的基礎(chǔ),項(xiàng)目2至項(xiàng)目8是ZStack的基本應(yīng)用項(xiàng)目,包括協(xié)議棧中單片機(jī)的功能部件的使用、協(xié)議棧的配置修改、用協(xié)議棧組建網(wǎng)絡(luò)、網(wǎng)絡(luò)的管理、數(shù)據(jù)通信的實(shí)現(xiàn)等,項(xiàng)目9至項(xiàng)目11是無(wú)線傳感網(wǎng)絡(luò)項(xiàng)目。另外,本書(shū)涉及大量代碼,因此,為了使正文中的描述與代碼等一致,全書(shū)物理量統(tǒng)一為正體。
本書(shū)是浙江工貿(mào)職業(yè)技術(shù)學(xué)院省級(jí)優(yōu)勢(shì)專業(yè)的建設(shè)成果之一。在本書(shū)成稿的過(guò)程中,曾得到了許多同仁和朋友的幫助和支持。杭州哲嘉科技有限公司的方勇軍博士參與了本書(shū)的規(guī)劃和內(nèi)容的制訂,浙江工貿(mào)職業(yè)技術(shù)學(xué)院的孫平教授對(duì)本書(shū)的編寫(xiě)進(jìn)行了深入指導(dǎo),長(zhǎng)江大學(xué)的徐愛(ài)鈞教授、湖北第二師范學(xué)院的焦啟民教授、深圳職業(yè)技術(shù)學(xué)院的王曉春教授、廣東科技職業(yè)技術(shù)學(xué)院的余愛(ài)民教授、武漢鐵道職業(yè)技術(shù)學(xué)院的鄭毛祥教授、嘉興職業(yè)技術(shù)學(xué)院的桑世慶副教授、浙江工貿(mào)職業(yè)技術(shù)學(xué)院的金慧峰副教授、長(zhǎng)江職業(yè)技術(shù)學(xué)院的鄧柳副教授等多位老師對(duì)本書(shū)的編寫(xiě)提出了許多積極寶貴的意見(jiàn),并給予極大的關(guān)心和支持。感謝電子工業(yè)出版社的編輯為本書(shū)出版所做的辛勤工作,沒(méi)有他們就沒(méi)有這本書(shū)的出版,謹(jǐn)此表示感謝﹗
盡管我們?cè)诒緯?shū)的編寫(xiě)方面做了許多努力,但由于作者的水平有限,加之時(shí)間緊迫,錯(cuò)誤不當(dāng)之處在所難免,懇請(qǐng)各位讀者批評(píng)指正,并將意見(jiàn)和建議及時(shí)反饋給我們,以便下次修訂時(shí)改進(jìn)。
編 者
2017年6月
李文華,男,教授,就職于浙江工貿(mào)職業(yè)技術(shù)學(xué)院,中國(guó)電子學(xué)會(huì)高級(jí)會(huì)員,長(zhǎng)期致力于電子信息、物聯(lián)網(wǎng)技術(shù)的相關(guān)教學(xué)
目 錄
項(xiàng)目1 搭建開(kāi)發(fā)環(huán)境 1
任務(wù)要求 1
實(shí)現(xiàn)方法與步驟 1
1. 準(zhǔn)備開(kāi)發(fā)工具 1
2. 安裝開(kāi)發(fā)工具包 3
3. 安裝仿真器 8
4. 新建工程 11
5. 配置工程 15
6. 編譯、連接程序 17
7. 調(diào)試程序 18
8. 燒錄程序 21
實(shí)踐總結(jié) 25
習(xí)題 25
項(xiàng)目2 在協(xié)議棧中控制LED閃爍 26
任務(wù)要求 26
相關(guān)知識(shí) 26
1. 協(xié)議與協(xié)議棧 26
2. ZigBee網(wǎng)絡(luò)中的設(shè)備 26
3. 系統(tǒng)事件與用戶事件 27
4. osal_msg_receive()函數(shù) 29
5. osal_msg_deallocate()函數(shù) 29
6. osal_start_timerEx()函數(shù) 29
7. HalLedSet()函數(shù) 30
8. HalLedBlink()函數(shù) 31
實(shí)現(xiàn)方法與步驟 31
1. 準(zhǔn)備程序文件 31
2. 編寫(xiě)協(xié)調(diào)器程序 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
實(shí)踐拓展 53
1. 在無(wú)協(xié)調(diào)器的條件下運(yùn)行程序 53
2. 在有協(xié)調(diào)器的條件下運(yùn)行程序 55
實(shí)踐總結(jié) 56
習(xí)題 56
項(xiàng)目3 用事件驅(qū)動(dòng)處理串口接收數(shù)據(jù) 58
任務(wù)要求 58
相關(guān)知識(shí) 58
1. HalUARTOpen()函數(shù) 58
2. HalUARTRead()函數(shù) 60
3. HalUARTWrite()函數(shù) 60
4. osal_set_event()函數(shù) 61
5. 端口的概念 61
實(shí)現(xiàn)方法與步驟 62
1. 編制協(xié)調(diào)器的程序文件Coordinator.c 62
2. 編制程序接口文件Coordinator.h 64
3. 修改OSAL_SampleApp.c文件 65
4. 程序編譯與下載運(yùn)行 67
程序分析 71
1. Coordinator.c文件中的代碼分析 71
2. OSAL_SampleApp.c文件中的代碼分析 74
3. OSAL工作原理分析 76
實(shí)踐拓展 81
用新任務(wù)處理串口數(shù)據(jù) 81
實(shí)踐總結(jié) 84
習(xí)題 85
項(xiàng)目4 用回調(diào)函數(shù)處理串口接收數(shù)據(jù) 86
任務(wù)要求 86
相關(guān)知識(shí) 86
1. 回調(diào)函數(shù) 86
2. osal_memcmp()函數(shù) 87
3. osal_strlen()函數(shù) 87
4. osal_memset()函數(shù) 88
實(shí)現(xiàn)方法與步驟 88
編制協(xié)調(diào)器的程序文件 88
程序分析 91
1. Coordinator.c文件中的代碼分析 91
2. 串口回調(diào)函數(shù)的工作原理分析 94
實(shí)踐拓展 99
查看ZStack中串口的配置代碼 99
實(shí)踐總結(jié) 103
習(xí)題 103
項(xiàng)目5 用計(jì)算機(jī)控制終端節(jié)點(diǎn)上的LED 105
任務(wù)要求 105
相關(guān)知識(shí) 105
1. 數(shù)據(jù)包與消息 105
2. 數(shù)據(jù)通信的3種方式 107
3. 設(shè)備的地址 108
4. AF_DataRequest()函數(shù) 108
實(shí)現(xiàn)方法與步驟 111
1. 編制協(xié)調(diào)器的程序文件 111
2. 編制終端節(jié)點(diǎn)的程序文件 116
3. 程序編譯與下載運(yùn)行 119
程序分析 123
1. Coordinator.c文件中的代碼分析 123
2. EndDevice.c文件中的代碼分析 124
實(shí)踐拓展 125
修改ZStack中LED的配置 125
實(shí)踐總結(jié) 128
習(xí)題 129
項(xiàng)目6 分組傳輸數(shù)據(jù) 131
任務(wù)要求 131
相關(guān)知識(shí) 131
1. 信道 131
2. PAN ID 132
3. 組播通信的相關(guān)函數(shù) 133
4. 組播通信的實(shí)現(xiàn)方法 134
實(shí)現(xiàn)方法與步驟 136
1. 編程思路 136
2. 編制節(jié)點(diǎn)的程序文件 138
3. 設(shè)置PANID和信道 144
4. 程序編譯與下載運(yùn)行 145
程序分析 147
實(shí)踐總結(jié) 149
習(xí)題 150
項(xiàng)目7 用NV存儲(chǔ)器保存數(shù)據(jù) 151
任務(wù)要求 151
相關(guān)知識(shí) 151
1. NV存儲(chǔ)器 151
2. osal_nv_item_init()函數(shù) 152
3. osal_nv_read()函數(shù) 153
4. osal_nv_write()函數(shù) 153
實(shí)現(xiàn)方法與步驟 154
1. 定義用戶條目 154
2. 編制協(xié)調(diào)器的程序文件 154
程序分析 159
實(shí)踐拓展 160
讀取節(jié)點(diǎn)的MAC地址 160
實(shí)踐總結(jié) 162
習(xí)題 163
項(xiàng)目8 顯示節(jié)點(diǎn)的地址 164
任務(wù)要求 164
相關(guān)知識(shí) 164
1. 協(xié)議棧中地址的分配機(jī)制 164
2. 獲取地址的相關(guān)函數(shù) 166
實(shí)現(xiàn)方法與步驟 167
1. 編制節(jié)點(diǎn)的程序文件 168
2. 編制數(shù)值轉(zhuǎn)換的程序文件 171
3. 新建User組 173
4. 程序的編譯與下載運(yùn)行 175
程序分析 177
實(shí)踐拓展 178
繪制網(wǎng)絡(luò)拓?fù)鋱D 178
實(shí)踐總結(jié) 180
習(xí)題 180
項(xiàng)目9 制作防盜監(jiān)測(cè)器 181
任務(wù)要求 181
相關(guān)知識(shí) 181
1. 熱釋電紅外傳感器的應(yīng)用特性 181
2. 在協(xié)議棧中添加傳感器驅(qū)動(dòng)程序的方法 184
實(shí)現(xiàn)方法與步驟 185
1. 編制傳感器驅(qū)動(dòng)程序文件 185
2. 編制協(xié)調(diào)器的程序文件 187
3. 編制終端節(jié)點(diǎn)的程序文件 190
4. 程序編譯與下載運(yùn)行 193
程序分析 194
實(shí)踐總結(jié) 196
習(xí)題 196
項(xiàng)目10 制作光照信息采集器 198
任務(wù)要求 198
相關(guān)知識(shí) 198
1. 光敏電阻的特性 198
2. ZStack中的ADC函數(shù) 199
3. ZStack中ADC的使用方法 201
實(shí)現(xiàn)方法與步驟 202
1. 編制節(jié)點(diǎn)的程序文件 202
2. 程序編譯與下載運(yùn)行 205
程序分析 206
實(shí)踐總結(jié) 207
習(xí)題 208
項(xiàng)目11 制作溫濕度采集器 209
任務(wù)要求 209
相關(guān)知識(shí) 209
1. MicroWait宏 209
2. DHT11的工作特性 209
3. DHT11的訪問(wèn)操作 210
實(shí)現(xiàn)方法與步驟 215
1. 搭建DHT11的控制電路 215
2. 編制DHT11的驅(qū)動(dòng)程序文件 215
3. 編制節(jié)點(diǎn)的程序文件 217
4. 程序編譯與下載運(yùn)行 223
程序分析 224
實(shí)踐總結(jié) 226
習(xí)題 226
附錄A ZigBee模塊原理圖 228
附錄B 2016年全國(guó)物聯(lián)網(wǎng)大賽試題(ZigBee部分) 230
試題1 任務(wù)三 物聯(lián)網(wǎng)感知層開(kāi)發(fā)調(diào)試 230
一、任務(wù)要求 230
二、任務(wù)環(huán)境 230
三、任務(wù)說(shuō)明 230
試題2 任務(wù)三 物聯(lián)網(wǎng)感知層開(kāi)發(fā)調(diào)試 233
一、任務(wù)要求 233
二、任務(wù)環(huán)境 234
三、任務(wù)說(shuō)明 234