【正文】
(%02X , rbuf[i+2])。 30 } else { OLED_DisStrLine(21 + 5, 0, )。 case 2://寫數(shù)據(jù) if(!GPIOGetValue(PORT2, 8)) { printf(\r\nRFID Write)。 } else { OLED_DisStrLine(21 + 5, 0, )。 case 3://寫數(shù)據(jù) if(!GPIOGetValue(PORT2, 8)) { printf(\r\nRFID Write)。 } else { OLED_DisStrLine(21 + 5, 0, )。 default: break。 default: break。 } } /************************光感程序 ***********************/ void Light_Test(void) { char buf[24]。 //在 第一行顯示 ”Light” I2CInit(I2CMASTER, 0)。 printf(\r\n)。 //顯示 buf printf(%d , lux)。 buf[0] = ADDR_LSB_SENSOR。 buf[0] = ADDR_MSB_SENSOR。 /* Rext = 100k */ /* E = (range(k) * DATA) / 2^n */ //return (range*data / width)。 } 。 data /= width。 I2CRead(LIGHT_I2C_ADDR, buf, 1)。 I2CRead(LIGHT_I2C_ADDR, buf, 1)。 } } /********************讀取 Light 值 ************************/ include include include include include include include uint32_t light_read(void) { uint32_t data = 0。 //讀取 Light 值 snprintf(buf, 20, %d , lux)。 light_enable()。 OLED_ClearScreen()。amp。 case KEY_ESC: = 0。 printf(\r\nFail )。 OLED_DisStrLine(21 + 6, 0, write ABCDEFGHIJ Ok)。 printf(\r\nFail )。 OLED_DisStrLine(21 + 6, 0, write 0123456789 Ok)。 printf(\r\nFail )。 if(chksum == rbuf[rbuf[0]]) { OLED_DisStrLine(21 + 6, 0, Ok )。 OLED_DisChar(21 + 5, x, 0, buf[0])。 printf(\r\n)。 Dis_Menu(menu)。 Dis_Menu(menu)。 GPIOSetDir(PORT2, 8, 0)。 [0] = Card。 uint32_t i, j。 在此 ,謹向 楊老師和姜老師 表示崇高的敬意和衷心的感謝! 28 附 錄 /************************ RFID 卡的數(shù)據(jù)讀寫程序 ***********************/ RFID 卡的數(shù)據(jù)讀寫程序: include include include include include include Menu_TypeDef menu。 從選題到開題報告,從寫作提綱,到一遍又一遍地指出每稿中的具體問題, 從軟件部分的大致框架到軟件部分的細小功能,都是 嚴格把關(guān),循循善誘 。將各個采集節(jié)點通過 Zigbee 技術(shù)建立信息采集網(wǎng)。無論在處理數(shù)據(jù)的速度上還是在功耗上,亦或是抗干擾能力上,它完全能夠勝任終端數(shù)據(jù)采集的重任。部分實驗效果如下所示。 圖 62 M0工作狀態(tài)界面 如下圖所示。 結(jié)果顯示: (1)液晶屏上顯示的溫度時刻在變; (2)對著溫濕度傳感器用口吹起氣,可以看見顯示器上的溫濕度變化; (3)擋住上面的光照時,顯示無光照,放開之后馬上顯示有光照; (4)溫度超過一定值,蜂鳴器會叫,風(fēng)扇轉(zhuǎn)動起來; (5)把實驗板慢慢轉(zhuǎn)動,可以看見三重重力值在不斷變化; 所以,實驗結(jié)果表明,這個數(shù)據(jù)和控制實驗是正確的。 } } } return 0。 } else if (39。 if (39。 } buf = nodedata。mutex_linklist)。mutex_analysis)。 while (1) { pthread_mutex_lock (amp。 蜂 鳴 器 線 程p t h r e a d _ b u z z e r ( )等 待 喚 醒p t h r e a d _ c o n d _ w a i t ( )獲 取 蜂 鳴 器 模 塊 掩 碼d e v _ b u z z e r _ m a s k控 制 蜂 鳴 器I o c t l ( d e v _ b u z z e r _ f d )信 號 喚 醒執(zhí) 行 完 畢 返 回打 開 設(shè) 備 文 件o p e n 圖 55 數(shù)據(jù)處理流程圖 在本程序中,進 行了大量的工作如數(shù)據(jù)的解析,激活數(shù)據(jù)庫線程,以及設(shè)置各倉庫設(shè)備的標(biāo)志位,并進行檢查,同時對接收的數(shù)據(jù)進行臨界檢測,部分代碼如下。通過使用這些接口,傳遞一些標(biāo)準 sql 語句(以 char * 類型)給 sqlite函數(shù), sqlite 就會為 你操作數(shù)據(jù)庫。i++) Zigbee_PutChar(*(ptr+i))。 //獲取數(shù)值 ptr = (uint8_t *)amp。 Axis3_Test()。data,最后通過 Zigbee_PutChar()函數(shù)發(fā)送;在持續(xù)的發(fā)送數(shù)據(jù)是我們是用了一個死循環(huán) while(1){} ,這樣可以實時的獲取數(shù)據(jù)并且發(fā)送實時數(shù)據(jù)。它是一種適用遠程監(jiān)控、數(shù)據(jù)傳輸、無線網(wǎng)絡(luò)組網(wǎng)運用的技術(shù)。 //進出倉庫 uint8_t goodsno。 ( 2) RFID 物品識別結(jié)構(gòu)體包含:數(shù)據(jù)頭、數(shù)據(jù)類型、 I/O、 物品 編號、 物品 數(shù)量。 uint32_t ill。 //溫度 uint8_t hum[2]。 struct sendEnv { uint8_t head[3]。 = z+ZOFF。z),讀到數(shù)據(jù)保存數(shù)據(jù)到 x, y, z 中;在讀三重加速度時,必須要有一個初始位置作為參考值(也即是要初始化這 3 個變量),一般都是以水平作為參考值。 調(diào)用讀溫濕度的接口函數(shù) Read_Temp_Hum(temp, hum)。 ( 1) M0 終端全天 24 小時采集溫度、濕度、光感數(shù)據(jù)等環(huán)境參數(shù),記錄物品刷卡信息 ; ( 2) 無用 Zigbee 無線通信方式 把采集到的環(huán)境相關(guān)數(shù)據(jù)和物品信息發(fā)送給 A8 服務(wù)器; ( 3) 數(shù)據(jù)接收由 A8 的 M0 線程負 責(zé),并激活數(shù)據(jù)庫線程對數(shù)據(jù)庫進行相應(yīng)的處理,再根據(jù)相關(guān)的數(shù)據(jù)參數(shù)進行判斷處理進行如果數(shù)據(jù)出現(xiàn)異常,則進行報警; ( 4) 通過 Zigbee 技術(shù)建立信息采集網(wǎng)。編程的程序包括:初始化程序、主程序、定時中斷服務(wù)程序、各子程序模塊等。點擊該軟件安裝,進入安裝界面如下圖。 13 圖 51 keiluv4 主界面 ( 2) IAR Embedded Workbench IDE 搭建 : 8 位、 16 位以及 32 位的微處理器和微控制器都用使用嵌入式 IAR Embedded Workbench 適用,它為用戶提供項目需要的開發(fā)環(huán)境。 ( 1) Keil 環(huán)境搭建: keil uvision4 是一款具有強大內(nèi)置編輯器的多內(nèi)核編譯調(diào)試環(huán)境,keil uvision4 具有靈活的窗口管理系統(tǒng) ,支持多臺監(jiān)視器,開發(fā)人員可以完全控制任何地方。 采用簡化的單總線通信,主機通過特定的時序?qū)ζ溥M行訪問,一次傳送給主機 40 位數(shù)據(jù),高位先出,其數(shù)據(jù)格式如下。 圖 44 CY14443/SPI 原理圖 11 圖 45 CY14443 射頻模塊工作時 序圖 溫濕度模塊電路設(shè)計 在本設(shè)計中,測溫模塊的主要器件選取的是 DHT10 數(shù)字溫濕度傳感器,它是一款含有已校準數(shù)字信號輸出的溫濕度復(fù)合傳感器。模塊的高度集成極大的簡化了設(shè)計、降低了功耗,節(jié)約了整個系統(tǒng)的成本。具有全新的硬件除錯單元,很強的的抗干擾能力。該設(shè)備具有功耗低、低速率、低本低、高可靠性、自恢復(fù)及冗余性能優(yōu)異、網(wǎng)絡(luò)路由功能強大等特點,并且具有良好的網(wǎng)絡(luò)拓撲結(jié)構(gòu),適合本設(shè)計的要求。 處理數(shù)據(jù)的速度快,功耗低,抗干擾能力強,因此本設(shè)計采用了 CortexM0 作為數(shù)據(jù)采集終端 。其優(yōu)點是其不需要任何數(shù)據(jù)庫引擎,使用者不用安裝數(shù)據(jù)庫就可以用 sqlite 來保存本設(shè)計相關(guān)的數(shù)據(jù),溫濕度,光照,物品信息等等,因此該系統(tǒng)采用數(shù)據(jù)庫 sqlite3。每個 Zigbee 網(wǎng)絡(luò)節(jié)點不僅本身可以作為監(jiān)控對象,還可以自動中轉(zhuǎn)別的網(wǎng)絡(luò)節(jié)點傳過來的數(shù)據(jù)資料。 獲取的數(shù)據(jù)主要有光度、溫濕度、三重加速度、蜂鳴器、風(fēng)扇的狀態(tài)。 ( 3) 物品信息采集 方案 :利用 CY14443 射頻模塊進行采集,該芯片特點如下:采用 微米 CMOS EEPROM 工藝;基于 ISO14443 標(biāo)準的非接觸卡讀卡機專用芯片;有特定的工作模式和安全性。它應(yīng)用專用的數(shù)字模塊采集技術(shù)和溫濕度傳感器技術(shù),該傳感器模塊包括一個 NTC 測溫元件,一個電阻式感濕元件。 Zigbee 模塊 ZIC2410 ( 1) 頻率: 250kbps(標(biāo)準 Zigbee 速率)、 500kpbs 和 1Mbps; ( 2) 16 條射頻通道; ( 3) Zigbee 模塊工作電壓: 5V ( 4) 支持超出 1 千米的傳送范圍; AES128 位加密;符合 RoHS 標(biāo)準。與此同時將各個采集 節(jié)點通過 Zigbee技術(shù)建立信息采集網(wǎng)。無線頻率信息采集系統(tǒng)提供準確性和及時性很強的信息采集技術(shù),其在倉庫中應(yīng)用最多的是使用倉庫貨物信息采集。典型的無線傳感器網(wǎng)絡(luò)節(jié)點的硬件結(jié)構(gòu)包括:微處理器( CortexM0)、傳感器接口(溫濕度、關(guān)照、三重重力)、 ADC、電源以及無線收發(fā)裝置。并且得到非常廣泛的應(yīng)用,它的發(fā)展和應(yīng)用,將帶來對人類生活和生產(chǎn)的各個領(lǐng)域產(chǎn)生深遠影響,各 傳感器節(jié)點 收集外界溫度,聲音,振動等物理信息。也正因如此,本課題就應(yīng)運而生了。無線數(shù)據(jù)傳輸技術(shù)在我們的生活中占據(jù)越來越重要的地位,不管是農(nóng)業(yè),工業(yè),還是其他行業(yè),其讓人們生活更加方便。 并且顯示的 OLED 屏上和數(shù)據(jù)打包發(fā)送到 A8 服務(wù)器。s needs, rather than a separate module. Competition in the market is very excited and want to be invincible have to make our products easy to use, low cost, reliable performance. The subject research master control processor selected FS_11C14 (hereinafter referred to as M0 terminal). M0 microprocessor peripheral hardware to plete the task of data collection, including temperature, humidity, light, RIAD credit card records and so on, and sends realtime environmental data to A8 server by Zigbee wireless module. At the same time, a single collection node also established information collection work by Zigbee technology. Collected data of between nodes can be to view, receive and transmit. In this way, we can simultaneously dete