基于單片機與ZigBee的物聯(lián)網(wǎng)網(wǎng)絡(luò)設(shè)計與實現(xiàn)
掃描二維碼
隨時隨地手機看文章
引言
關(guān)于物聯(lián)網(wǎng)技術(shù)的應(yīng)用,最初可追溯到 20 世紀 90 年代,從此以后,物聯(lián)網(wǎng)被廣泛應(yīng)用,目前已經(jīng)遍及智能交通、環(huán)境保護、政府工作、公共安全、平安家居、智能消防、工業(yè)監(jiān)測、環(huán)境監(jiān)測、老人護理、個人健康、花卉栽培、水系監(jiān)測、食品溯源、敵情偵查和情報搜集等多個領(lǐng)域。
自 2009 年 8月溫家寶總理提出“感知中國”以來,物聯(lián)網(wǎng)被正式列為國家五大新興戰(zhàn)略性產(chǎn)業(yè)之一,目前國家已經(jīng)把傳感網(wǎng)明確列入《國家中長期科學技術(shù)發(fā)展規(guī)劃 (2006—2020 年 )》和 2050 年國家產(chǎn)業(yè)路線圖。全中國上上下下都在關(guān)注物聯(lián)網(wǎng),其受關(guān)注程度是其他各國不可比擬的。本文介紹了一種如何利用單片機學習板與 ZigBee 模塊建立一個物聯(lián)網(wǎng)網(wǎng)絡(luò)的設(shè)計及調(diào)試方法。
1 ZigBee 技術(shù)簡介
ZigBee 是一種新興的短距離無線技術(shù),可用于傳感控制應(yīng)用 (sensor and control)。此想法在 IEEE 802.15 工作組中提出后,于是便成立了 TG4 工作組并制定了 IEEE 802.15.4 規(guī)范。2001 年 8 月,ZigBee Alliance 成 立。2004 年,ZigBee V1.0誕生,它是 ZigBee 的第一個規(guī)范,但由于推出倉促,ZigBeeV1.0 存在一些錯誤。2006 年推出的 ZigBee 2006 就比較完善,2007 年底又推出 ZigBee PRO。
ZigBee 是基于 IEEE802.15.4 標準的低功耗個域網(wǎng)協(xié)議。根據(jù)這個協(xié)議規(guī)定,該技術(shù)是一種短距離、低功耗的無線通信技術(shù)。這一名稱來源于蜜蜂的八字舞,由于蜜蜂 (bee) 是靠飛翔和“嗡嗡”(zig) 地抖動翅膀的“舞蹈”來與同伴傳遞花粉所在方位信息的,也就是說,蜜蜂依靠這樣的方式構(gòu)成了群體中的通信網(wǎng)絡(luò)。其特點是近距離、低復(fù)雜度、自組織、低功耗、低數(shù)據(jù)速率、低成本,主要適合用于自動控制和遠程控制領(lǐng)域,可以嵌入各種設(shè)備。簡而言之,ZigBee 就是一種便宜的、低功耗的近距離無線組網(wǎng)通訊技術(shù)。
2 ZM2410P0 ZigBee 模塊介紹
目前,國內(nèi)外生產(chǎn) ZigBee 模塊的廠家很多,文中采用的是 ZM2410P0 ZigBee 模塊,該模塊內(nèi)嵌串口透明傳輸 ( 點對點和點對多點 ) 通訊協(xié)議,支持空中升級固件或配置遠程模塊信息。該模塊將無線通訊產(chǎn)品的復(fù)雜射頻電路集成在一塊小小的板子上,并將無線通訊產(chǎn)品復(fù)雜的通訊協(xié)議內(nèi)嵌到內(nèi)置的 8051 單片機里,可讓開發(fā)產(chǎn)品的過程最大程度地化繁為簡,
縮短產(chǎn)品的開發(fā)周期。圖 1 所示是該模塊的外型圖。
圖1 ZM2410P0 ZigBee 模塊
ZM2410P0 ZigBee 模塊共有 26 個引腳,各引腳的功能定義如表 1 所列。
3 基于 DEMO 開發(fā)板的本地模塊通訊參數(shù)配置
使用 ZM2410 評估套件 ZM-DEMO 配送 USB 通訊電纜來連接評估板和 PC 機方法如圖 2 所示。其中電源開關(guān)撥到“VBUS”位置,打開配置軟件,首次設(shè)置串口號為對應(yīng)的串口,波特率為 115 200,數(shù)據(jù)位 8,停止位 1,無校驗位。單擊“打開串口”,然后選擇“ZLG”選項卡并點擊“獲取信息”進入配置狀態(tài),此時可得到如圖 3 所示的配置信息初始狀態(tài)。
之后,在基本信息欄里分別按圖 4 所示設(shè)置兩個模塊的各項信息,點擊“更改配置”輸入初始密碼即可;接著,按同樣的方法在串口信息欄設(shè)置串口波特率為 19 200,方便后續(xù)與單片機的通訊。這樣就可輕松把兩個 ZigBee 模塊設(shè)置為點對點的通訊模式。
4 硬件通訊測試
分別把兩個帶有 ZigBee 模塊的 ZM2410 評估套件 ZM-DEMO 用配送的 USB 通訊電纜連接到評估板和 PC 機,電源開關(guān)撥到“VBUS”位置。打開兩個串口調(diào)試助手窗口,并分別按圖 5 所示的方法設(shè)置好相關(guān)參數(shù)。再打開串口,在字符串輸入框中輸入要發(fā)送的字符,點擊“發(fā)送”按鈕。如果能在各自對應(yīng)的窗口中接收到對方所發(fā)送的信息,則說明模塊硬件信息配置正確,可以正常使用模塊進行二次開發(fā)和使用。
5 ZigBee 終端節(jié)點硬件設(shè)計
圖 6 所示是根據(jù) ZM2410 模塊的用戶手冊設(shè)計 ZigBee 終端典型系統(tǒng)的硬件電路,ZigBee 模塊可通過串口與 MCU 連接實現(xiàn)數(shù)據(jù)傳輸,三個 LED 指示燈來用指示模塊的發(fā)送、接收及錯誤報警信息。
圖 5 通訊測試
6 ZigBee 終端節(jié)點的軟件設(shè)計
根據(jù) ZigBee 終端最小系統(tǒng)原理圖設(shè)計 MCU 串口數(shù)據(jù)的發(fā)送原程序如下:
#include <REG52.H>
#include <stdio.h>
void delay(unsigned int i); // 函數(shù)聲明
char code MESSAGE[]= " 深圳職業(yè)技術(shù)學院 ";
unsigned char a;
void main (void) {
SCON = 0x50; //REN=1允許串行接受狀態(tài),串口工作
模式 2
TMOD|= 0x20; // 定時器工作方式 2
PCON|= 0x80; // 波特率提高一倍
TH1= 0xFD; // 數(shù)據(jù)位 8、停止位 1、效驗位無、
晶振 (11.0592)
TL1=0xFD;
TR1=1; // 開啟定時器 1
ES=1; // 開串口中斷
EA = 1; // 開總中斷
while(1)
{a=0;
while(MESSAGE[a] != '\0')
{
SBUF = MESSAGE[a]; //SUBF 接受 / 發(fā)送緩沖器
while(!TI);
// 等特數(shù)據(jù)傳送
TI = 0;
// 清除數(shù)據(jù)傳送標志
a++;
// 下一個字符
}
delay(1000);
}
}
void delay(unsigned int i)
{
unsigned char j;
for(i; i > 0; i--)
for(j = 200; j > 0; j--) ;
}
該程序運行后,可使 C51 單片機通過串口不斷地向外發(fā)送“深圳職業(yè)技術(shù)學院”字符。
7 ZigBee 物聯(lián)網(wǎng)網(wǎng)絡(luò)的建立
利用實驗室現(xiàn)有單片機學習板并按圖 6 所示的方法設(shè)計節(jié)點硬件電路,把每個節(jié)點按圖 4 所示設(shè)置好 ZigBee 模塊信息,這樣就建立了一個點對點的物聯(lián)網(wǎng)硬件網(wǎng)絡(luò),具體如圖7 所示。如果把其中一個節(jié)點 n 的發(fā)送模式定義為“廣播模式”,其它節(jié)點的目的網(wǎng)絡(luò)地址都為節(jié)點 n 的本地網(wǎng)絡(luò)地址,就可把點對點物聯(lián)網(wǎng)硬件網(wǎng)絡(luò)變成點對多點的物聯(lián)網(wǎng)硬件網(wǎng)絡(luò),具體如圖 8 所示。
8 ZigBee 物聯(lián)網(wǎng)網(wǎng)絡(luò)通訊調(diào)試
8.1 點對點網(wǎng)絡(luò)的通訊調(diào)試
把前面程序編譯后燒錄到節(jié)點 n 的 MCU 中,然后接通電源,就可看到節(jié)點 n 的 ZigBee 模塊的 25 腳數(shù)據(jù)接收指示燈“LEDR”在有規(guī)律地閃爍著,這說明節(jié)點 n 在不停地發(fā)送數(shù)據(jù)。這時,把另一個帶有 ZigBee 模塊的節(jié)點 n+1 用 USB 通訊電纜連接到評估板和 PC 機,也把電源開關(guān)撥到“VBUS”位置,并在 PC上打開一個串口調(diào)試工具窗口,就可看到這個 ZigBee模塊的“LEDT”指示燈同樣在有規(guī)律地閃爍著,從串口調(diào)試工具窗口也可看到模塊終端接收到信息,具體如圖 9 所示。圖 9 ZigBee 接收終端8.2 點對多點網(wǎng)絡(luò)的通訊調(diào)試
在節(jié)點 n+1 到節(jié)點 n+…中的各個 MCU 中燒錄好前面所寫程序,節(jié)點 n 按點對點網(wǎng)絡(luò)試調(diào)時的設(shè)置即可,然后使各節(jié)點上電運行,就可從節(jié)點 n 的串口調(diào)試工具窗口看到模塊終端接收到如圖 9 所示的信息。
9 結(jié) 語
實踐證明,通過對 ZigBee 模塊的學習而不再需要復(fù)雜的高頻電路基礎(chǔ),就可以通過現(xiàn)有的單片機學習板掌握一種全新的無線傳輸技術(shù)。如果把這一技術(shù)應(yīng)用到單片機教學中,不僅可以增加學生對現(xiàn)有單片機系統(tǒng)的學習興趣,而且可以開闊學生的知識面。
20210915_61417e6300b73__基于單片機與ZigBee的物聯(lián)網(wǎng)網(wǎng)絡(luò)設(shè)計與實現(xiàn)