廣西民族大學 龍凱思 黃開連 韋世勇
?
基于ZIGBEE和STM32的農村水柜無線監控系統設計
廣西民族大學 龍凱思 黃開連 韋世勇
【摘要】水柜是解決農村用水問題的一大保證,為了解決更多農村的用水問題,提高用水的便捷性,保證家家戶戶都能解決用水難的苦惱,研究水柜的監控系統是非常有意義的。本文主要通過研究以ZIGBEE為無線傳輸核心、STM32為控制核心以及WINFORM為上位機監控中心的水柜無線監控系統,通過ZIGBEE節點采集水位信息,無線傳輸至ZIGBEE協調器,協調器通過串口傳送至STM32,STM32處理信息后顯示以及傳輸至上位機。用戶可以實時監控各個水柜節點的水位、溫度信息,也可以通過上位機或者STM32控制節點抽水機進行抽水,可以方便快捷地管理每一個節點的水柜。
【關鍵詞】ZIGBEE;STM32;水柜監控
近年來,隨著科技的發展,電子技術行業的日益發達,如何將科技帶入農村地區的供水問題值得我們思考。為了解決農村用水問題的困難,方便村民取水、用水以及節約水資源,利用電子信息及無線通信技術管理以及監控水柜,通過科技的力量取代原先的人工操作,減輕人工取水等繁重的工作,提高工作效率,改善生活質量,從而達到節約資源和減輕工作負擔的雙贏。
本文主要研究以ZIGBEE為無線傳輸核心的多節點水柜無線監控系統,STM32和上位機組成的人機交互系統。期間解決ZIGBEE無線數據的發送與接收問題,ZIGBEE與STM32的串口傳輸問題,STM32與上位機的串口傳輸問題。實現上位機、STM32遠程控制水柜節點。

整個系統包括水柜節點、主控模塊以及上位機監控中心三個部分。
水柜節點主要包括ZIGBEE節點、壓力傳感器、溫度傳感器以及電源和抽水機。每個節點周期性地采集數據并且發送所采集到的數據至協調器,實現水位的實時監控,并且能夠在最短的時間內響應協調器發送的指令,實現抽水機的運行與停止。
主控模塊部分由ZIGBEE協調器和STM32構成。協調器主要工作是創建一個ZIGBEE網絡,允許節點入網,接收各個節點發送來的信息以及發送指令控制節點。STM32單片機主要由按鍵和顯示屏構成,單片機通過串口接收到協調器發送來的節點信息,經過數據處理后顯示在液晶屏上,并且通過串口發送給上位機。用戶可以通過STM32上的按鍵控制每一個節點抽水機的工作。
上位機監控中心主要通過電腦的串口接收到單片機發送來的節點數據,經過數據分析與處理后,動態顯示水位高度在軟件界面上。用戶可以很直觀的觀測各個節點的水位信息、溫度信息,并且在電腦上控制每個節點抽水機的工作,還可以設置相應的預警水位。
系統硬件設計包括LCD12864液晶顯示屏模塊、STM32主控模塊和ZIGBEE無線傳輸模塊三個部分。
2.1 LCD12864液晶顯示屏
在系統STM32主控的顯示方面,我們采用了LCD12864液晶顯示屏。它是一款利用點陣圖形顯示的液晶模塊,該模塊具有128*64的顯示分辨率,可以顯示32個16*16點陣大小的字體。使用簡單,成本較低。
2.2 STM32主控單片機
系統采用采用F103系列的RCT6作為微型處理芯片。它采用ARM32位的Cortex-M3CPU,最高工作頻率可達72MHz,具有20K字節的SRAM。由此可見STM32的功能非常強大,足夠滿足設計的要求。
2.3 Zigbee無線傳輸模塊
系統的ZIGBEE模塊采用的是CC2530芯片,CC2530使用的是8051CPU,它是一個單周期的兼容性內核。其具有128KB字節的系統內可編程內存、極其高的接受靈敏度和抗干擾能力,具備IEEE802.15.4兼容無線收發器,芯片內置RF內核控制無線模塊,此外它還提供一組連接外部設備的端口,從而可以發出命令和讀取狀態,控制各執行電路的事件執行順序。
系統軟件設計包括上位機軟件設計、STM32單片機軟件設計和ZIGBEE無線模塊軟件設計三個部分。
3.1 上位機軟件設計
上位機設計使用了.NET開發平臺下的WINFORM,操作簡單,界面功能豐富,可以形象生動地顯示出水柜蓄水量。因為有三個水柜節點,所以首先根據串口接收到的數據進行分析,接收到的一串數據幀中,以字符“$”作為幀頭,緊接著是地址符,“A”、“B”、“C”依次代表一到三號水柜。確定了此數據幀是哪個水柜的信息后,緊接著把數據信息接收處理,最后接收到了結束符“#”后,說明數據幀接收完畢。數據接收完成后進行數據類型轉換,將每個節點信息顯示到軟件界面。用戶也可以根據需要設定水位的上限值和下限值,低過下限值或者高過上限值都會發出警報。用戶還可以手動控制節點抽水機的工作,增加蓄水量。
3.2 ZIGBEE軟件設計
協調器作為ZIGBEE網絡的創建者,首先需要配置好信道號和PANID號,節點ZIGBEE只有設置與協調器相同的信道和PANID號才可以加入到ZIGBEE網絡中。為了防止協調器掉電后重新上電節點不能加入的問題,筆者在宏定義中加入了NV_RESTORE=1的預編譯選項。除此之外,協調器還需要根據簇ID判斷是哪個節點發送上來的數據,通過串口發送給STM32,也通過串口接收STM32的指令后發送數據包給相應的節點控制抽水機工作。節點主要是采集傳感器的數據,封裝成幀后通過發送數據包的方式把信息發送給協調器,或者在接收到協調器的指令后通過控制繼電器通斷打開抽水機。路由器的作用是將數據路由轉發,即當終端節點聯系不上協調器或者與協調器連接信號較弱時,會優先把數據轉發給附近的路由器,再
由路由器轉發給協調器。
3.3 STM32軟件設計
STM32的串口收發是根據一定的幀格式完成的,幀格式例如:$**,dddd,dddd,…,(CR)(LF),$作為幀頭,**代表的是某號水柜,dddd為數據域,最后接收到回車換行(CR)(LF)后代表幀結束。為了保證數據幀傳輸的穩定,解決數據丟失的問題,在每接收完一個數據幀,都會對數據域進行字符統計,看有沒有缺少或者多出,若與設置的數值不等則丟棄此幀,重新接收。最后將接收到的數據顯示在液晶屏上。
本系統以ZIGBEE作為無線網絡傳輸模塊,充分利用了ZIGBEE多節點、自組網、低功耗的特點,對多個水柜水位、溫度進行實時監控。合理放置路由器可實現更遠距離監控,加上STM32和上位機等人機交互界面,具有功能豐富、操作簡單、數據傳輸安全穩定、功耗低等優點。本系統還可以運用于其它多節點遠程監控的場合里。
參考文獻
[1]廖義奎.Cortex-M3之STM32嵌入式系統設計[M].北京﹕中國電力出版社,2012.
[2]周立功等.ARM嵌入式系統基礎教程[M].北京﹕北京航空航天大學出版社,2005.1.
[3]王小強.ZigBee無線傳感器網絡設計與實現[M].北京﹕化學工業出版社,2012.6.
[4]林小茶.C語言程序設計(第三版)[M].北京﹕中國鐵道出版社,2010,12.
[5]劉軍,張洋,嚴漢宇.原子教你玩STM32(寄存器版)[M].北京﹕北京航空航天大學出版社,2012.
作者簡介:
龍凱思(1994-),男,壯族,廣西寧明人,大學本科,現就讀于廣西民族大學。