【正文】
ion of temperature and humidity in the sensor node and delivers to the coordinator through wireless transmission and monitors in the LCD12864. After that, it delivers to the principle puter to display. In addition, the whole design can not only reveal the temperature and humidity of current points in the coordinator but also view records of the temperature and humidity of current point in the principle puters with the function of detecting faults of sensor nodes. This chapter systematically introduces the concept of sensor work and the feature and structure of this munication protocolZigBee designing scheme, and emphasizes on the detecting system and the designing scheme posed of CC2530 SOC chip and DHT11 digital temperature and humidity sensor. After that, it introduces the designing process of hardware circuit and the development process of systems software. Finally, it further states the development direction of wireless sensor work in the future. Keywords: wireless sensor work。無(wú)線傳感器網(wǎng)絡(luò)應(yīng)用在金融服務(wù)、醫(yī)療護(hù)理、工業(yè)生產(chǎn)、檢測(cè)環(huán)境、智能家居等各個(gè)領(lǐng)域,它具有極其廣闊的發(fā)展前景。 去年我國(guó)領(lǐng)導(dǎo)人發(fā)起了“光盤(pán)行動(dòng)”,這把糧食重要性上升到了更高的一個(gè)層面。 STM32 是意法半導(dǎo)體公司為了滿足集成高、功耗低、實(shí)時(shí)性好、具有競(jìng)爭(zhēng)性價(jià)格等優(yōu)勢(shì)。 CC2420是 TI 公司研發(fā)的無(wú)線射頻芯片, CCC2420可以通過(guò) SPI 接口方便的與 AT89S52 通信。由于此方案不需要更多的外設(shè),外圍電路相當(dāng)簡(jiǎn)單,故選用此方案。但是它的價(jià)格較貴,性價(jià)比不高。由于溫度跟濕度需要單獨(dú)采集,工程較大,故不選用此方案。 DHT11 使用單總線串行接口。它 4 是由 Pascal 慢慢轉(zhuǎn)變而來(lái)的,開(kāi)發(fā)環(huán)境就是所用圖形界面。 VC++是微軟公司開(kāi)發(fā)的一種編程語(yǔ)言, VC++主要有 WIN API 方式和 MFC方式兩種模式。它能夠以非常低的總的材料成本建立強(qiáng)大的 網(wǎng)絡(luò)節(jié)點(diǎn) 。模塊中使用的是 ,將 3個(gè) 5號(hào)電池的總電壓 降壓到 CC2530 的工作電壓 。 ( 13)存儲(chǔ)溫度區(qū)間 20℃ ~ +60℃ ,工作溫度區(qū)間 0℃ ~ +55℃ 協(xié)調(diào)器系統(tǒng)板的串口模塊設(shè)計(jì) 串口模塊的設(shè)計(jì)如圖 34 所示的 UART 所示。本設(shè)計(jì)的硬件部分由多個(gè)模塊組成,主控模塊銜接各個(gè)模塊工作,各個(gè)模塊既要跟主控模塊相聯(lián)系又和其它子模塊聯(lián)系;軟件設(shè)計(jì)部分也由多個(gè)子程序組成,主程序控制和協(xié)調(diào)各個(gè)模塊執(zhí)行相應(yīng)的任務(wù),主程序控制子程序的運(yùn)行,子程序?qū)崿F(xiàn)各個(gè)模塊具體的性質(zhì)功能,從而實(shí)現(xiàn)設(shè)計(jì)的整體效果,整個(gè)系統(tǒng)軟件的核心部分是 ZigBee協(xié)議棧 。 APP:應(yīng)用層目錄,這是用戶創(chuàng)建不同工程的區(qū)域,在這個(gè)目錄中包含了這個(gè)項(xiàng)目的主要內(nèi)容,在協(xié)議里面一般是以操作系統(tǒng)的任務(wù)實(shí)現(xiàn)。 Services:地址處理函數(shù)目錄,包含了地址模式的定義及地址處理函數(shù)文件。 圖 42 ZStack 程序流程圖 ZStack 開(kāi)發(fā)流程 從官網(wǎng)下載的協(xié)議棧本已經(jīng)放在了庫(kù)文件中,是通過(guò)文件 main 函數(shù)存在 Zmain 函數(shù)中,程序的運(yùn)行都是從 main 函數(shù)開(kāi)始的, main 函數(shù)實(shí)現(xiàn)的功能有:初始化硬件、初始化網(wǎng)絡(luò)、初始化任務(wù)列表、進(jìn)入任務(wù)處理循環(huán)。 流程圖如圖 44所示。 協(xié)調(diào)器 LCD12864 顯示模塊的測(cè)試 在把程序燒錄進(jìn)去以后,發(fā)現(xiàn) LCD12864 是白屏,按下復(fù)位鍵后黑屏,放開(kāi)還是白屏。 [12]測(cè)試時(shí),把協(xié)調(diào)器跟傳感器節(jié)點(diǎn)都接通電源,但是協(xié)調(diào)器遲遲未收到信息。數(shù)據(jù)如表 51所示 16 表 51 2021年 3月 1日所測(cè)的實(shí)際溫濕度數(shù)據(jù) 溫濕度數(shù)據(jù) 時(shí)間 8:00 10:00 12:00 14:00 16:00 傳感器節(jié)點(diǎn) 1 12℃ 39% 14℃ 38% 17℃ 38% 18℃ 38% 15℃ 38% 傳感器節(jié)點(diǎn) 2 11℃ 40% 14℃ 39% 17℃ 37% 19℃ 37% 15℃ 37% 傳感器節(jié)點(diǎn) 3 11℃ 39% 13℃ 37% 16℃ 38% 18℃ 38% 15℃ 38% 傳感器節(jié)點(diǎn) 4 12℃ 40% 14℃ 38% 17℃ 38% 18℃ 38% 15℃ 38% 氣象臺(tái)數(shù)據(jù) 11℃ 44% 15℃ 43% 19℃ 42% 21℃ 38% 16℃ 38% 由上圖可以看出,同一時(shí)間,各個(gè)傳感器節(jié)點(diǎn)所測(cè)的溫濕度基本相近,但是跟實(shí)際氣象臺(tái)數(shù)據(jù)有一些出入,特別是在 12:00 跟 14:00,這兩個(gè)時(shí)刻。在剛做本設(shè)計(jì)的時(shí)候就已經(jīng)寫(xiě)過(guò)代碼,測(cè)試過(guò)串口通信,問(wèn)題不大,就是數(shù)據(jù)有點(diǎn)亂碼,經(jīng)修改波特率和一些初始化的配置后就正常通信了,所以在這個(gè)測(cè) 17 試部分顯得非常順利了。同時(shí)也加強(qiáng)了自己的專業(yè)知識(shí),使自己對(duì)專業(yè)知識(shí)有更深一步的認(rèn)識(shí)。在制作過(guò)程中,由于經(jīng)驗(yàn)不足,使用這些陌生的器件出現(xiàn)大大小小的問(wèn)題,使用排除不斷檢測(cè)和 堅(jiān)持是我從這次設(shè)計(jì)過(guò)程中學(xué)到最深刻的經(jīng)驗(yàn)。在這個(gè)時(shí)刻,大學(xué)朋友都將朝著自己的夢(mèng)想,向著自己的希望奔跑。 //1 us 延時(shí) void Delay_10us(void)。 uchar uchardata。 while(Time) { for(i=0。amp。 while((wenshi)amp。 //18MS wenshi=1。 while((!wenshi)amp。 ucharRH_data_H_temp=uchardata。 ucharcheckdata_temp=uchardata。 } ucharT_data_H=ucharT_data_H8。 shidu_ge=0。 SAMPLEAPP_FLAGS, // int AppFlags:4。 uint8 SampleApp_TaskID。 uint8 SampleAppFlashCounter = 0。 SampleApp_NwkState = DEV_INIT。 else zgDeviceLogicalType = ZG_DEVICETYPE_ROUTER。 = SAMPLEAPP_ENDPOINT。 = (SimpleDescriptionFormat_t *)amp。 aps_AddGroup( SAMPLEAPP_ENDPOINT, amp。 // By default, all devices start out in Group 1 = 0x0001。 = amp。 // Setup for the flash mand39。= 0xbf。 void SampleApp_SerialCMD(mtOSALSerialData_t *cmdMsg)。//網(wǎng)蜂點(diǎn)對(duì)點(diǎn)通信定義 aps_Group_t SampleApp_Group。 // This is the Endpoint/Interface description. It is defined here, but // filledin in SampleApp_Init(). Another way to go would be to fill // in the structure here and make it a const (in code space). The // way it39。 SAMPLEAPP_DEVICEID, // uint16 AppDeviceId[2]。 wendu_ge=0。 ucharT_data_L=ucharT_data_L_temp。 ucharT_data_L_temp=uchardata。ucharFLAG++)。 Delay_10us()。 } } void DHT11_TEST(void) //溫濕傳感啟動(dòng) { wenshi=0。 if(wenshi)uchartemp=1。i++) { ucharFLAG=2。 } void Delay_10us(void) //10 us 延時(shí) { MicroWait(10)。 uchar ucharT_data_H,ucharT_data_L,ucharRH_data_H,ucharRH_data_L,ucharcheckdata。ctorM SemperePay225。但是,時(shí)光飛逝,緊接著我們就踏上了人生中最重要的轉(zhuǎn)折點(diǎn)。 在制作過(guò)程中,由于 ZigBee協(xié)議棧是以前聞所未聞,見(jiàn)所未見(jiàn)的東西,所以對(duì)于剛剛接觸到這一新鮮事物來(lái)說(shuō)是有非常大的問(wèn)題。 在整個(gè)設(shè)計(jì)過(guò)程中,遇到了很多問(wèn)題,通過(guò)查詢相關(guān)的資料加上自己的分析,嘗試過(guò)不同的解 決問(wèn)題的方案,修改電路和程序,使本設(shè)計(jì)達(dá)到要求。 這一部分的測(cè)試基本完成,所測(cè)試內(nèi)容溫濕度的精確度、通信距離基本能達(dá)到本設(shè)計(jì)的要求 。修改好程序以后,最終讀取數(shù)據(jù)成功。 傳感器節(jié)點(diǎn)跟協(xié)調(diào)器通信測(cè)試 這一部分的測(cè)試是本系統(tǒng)的核心部分,測(cè)試內(nèi)容包括通信距離和溫濕度的精度。通電,居然電源指示燈不亮。 [11]流程圖如圖 42所示。 [7] 圖 41 ZStack 工程目錄 13 整個(gè) ZStack 的主要工作流程分為:系統(tǒng)啟動(dòng)、驅(qū)動(dòng)初始化、 OSAL 初始化和啟動(dòng)、進(jìn)入循環(huán)。 Profile: AF 層目錄,包含 AF 層的處理函數(shù)文件。該軟件構(gòu)架可以極大的降低系統(tǒng)的功耗。 串口通過(guò) RX端口獲取溫濕度數(shù)據(jù),通過(guò) TX端口把溫濕度數(shù)據(jù)發(fā)送到上位機(jī),以實(shí)現(xiàn)單片機(jī)與上位機(jī)的遠(yuǎn)程通信,同時(shí)實(shí)現(xiàn)在上位機(jī)上顯示溫濕度的要求,這是本設(shè) 計(jì)的重要部分。并且液晶顯示屏它擁有接口方式靈活多樣,使用方便,顯示功能強(qiáng)大,體積小而輕便,低電壓低功耗,所以本設(shè)計(jì)選用液晶顯示屏作為時(shí)間與溫度的顯示。 [6] CC2530RF 射頻板的設(shè)計(jì) CC2530RF 射頻板的設(shè)計(jì)原理圖見(jiàn)圖 32所示。 …… 圖 31 系統(tǒng)總體圖 由 31圖可知,各個(gè)模塊都有電源供電,傳感器節(jié)點(diǎn)由 CC2530 配合 DHT11 采集溫濕度數(shù)據(jù),傳感器節(jié)點(diǎn)通過(guò)射頻無(wú)線傳輸把數(shù)據(jù)傳輸?shù)絽f(xié)調(diào)器點(diǎn)的 CC2530,協(xié)調(diào)器的CC2530 將數(shù)據(jù)顯示在 12864 上,同時(shí)協(xié)調(diào)器上 CC2530 配合 MAX3232 通過(guò)串口通信模式把數(shù)據(jù)發(fā)送到 PC 上位機(jī)上顯示,從而實(shí)現(xiàn)系統(tǒng)的整體功能。 它最大的優(yōu)點(diǎn)就是它的易用性,稍微對(duì) VB 懂一點(diǎn)點(diǎn)的人都能快速的去開(kāi)發(fā)程序。 上位機(jī)的開(kāi)發(fā)工具 的 選擇 方案一: Delphi。 DHT11 是一款數(shù)字輸出的復(fù)合式溫濕度傳感器,該傳感器是由一個(gè) NTC 式溫度檢測(cè)元件一個(gè)電阻感濕元件組成,可檢測(cè)溫度 0~ 50℃,濕度20~ 90% 。 DS18B20 數(shù)字溫度計(jì)提供 9位溫度讀數(shù),它使用單總線接口跟單片機(jī)相連,同時(shí)數(shù)據(jù)線能提供電源,故 DS18B20 只需要一條數(shù)據(jù)線跟一條地線。 方案二: TFT 液晶屏。各個(gè)運(yùn)行模式之間的轉(zhuǎn)換時(shí)短,進(jìn)一步確保了低功耗要求。 AT89S52 是一種 8 位微控制器,使用簡(jiǎn)單,容易上手,網(wǎng)絡(luò)資源多,該芯片使用 Atmel 非易失存儲(chǔ)器技術(shù),可重 復(fù)編程。 核心控制模塊方案的論證與選擇 該模塊是系