新聞中心

        EEPW首頁 > 消費電子 > 設計應用 > 基于ATmega16的無線溫度監測系統設計

        基于ATmega16的無線溫度監測系統設計

        作者: 時間:2017-06-08 來源:網絡 收藏

        隨著社會的發展和進步,越來越多的場合對溫度的要求日臻嚴格,溫度監控系統的應用日趨受到重視。在農業發展領域,農業大棚、冷庫、培育溫室等眾多場合都需要溫度測量技術。傳統的測溫系統都是有線系統,對于一些需要多點測溫的場合,使用傳統有線測溫方式在布設、維護和更新方面存在著很多不便。為了解決這個問題,設計了一種基于單片機和無線收發模塊的無線溫度監控系統,結合溫度傳感器可以很方便構建一個多點分布式智能無線溫度監控系統。

        本文引用地址:http://www.104case.com/article/201706/351111.htm

        1 無線溫度監控系統構成

        系統主要由兩部分組成。如圖1所示,第一部分是節點溫度測量系統,第二部分是溫度顯示管理終端。節點溫度測量系統負責測量溫度,并將溫度值通過無線通信發送到溫度顯示管理終端。管理終端接收溫度信息并進行顯示和發出警報信號,而且在特殊情況下管理終端還可以逆向發送調控信息給節點溫度測量系統,實現對溫度的調控。

        1.1 節點溫度測量系統設計

        節點溫度測量系統構成如圖2所示,系統核心控制芯片采用AVR系列的單片機ATmega16。這是一款精簡指令集的單片機,高速度、低功耗,具有Sleep功能及CMOS技術,并具有高度保密性,可多次燒寫的Flash,具有多重密碼保護鎖死功能。另外內置看門狗定時器(WDT)和片內有RC振蕩器,使用起來非常方便。具有休眠省電功能和閑置低功耗功能,在實用性方面性價比相對較高。

        溫度傳感器模塊采用數字溫度傳感器,它是美國Dallas半導體公司推出的一種智能數字溫度傳感器。在與MCU連接時僅需要一條線(即單總線接口,加電源為三線接口)即可實現微處理器與的雙向通訊。使用DS18B20可以節省系統資源、使系統結構更趨簡單。DS18B20測溫范圍是-55℃~+125℃,固有測溫分辨率0.5℃。工作電源為3 V~5V/DC。在使用中不需要任何外圍元件,測量結果以9~12位數字量方式串行傳送。DS18B20內部結構主要由四部分組成:64位光刻ROM、溫度傳感器、非揮發的溫度報警觸發器TH和TL、配置寄存器。其中64位光刻ROM中存儲的是該DS18B20的地址序列號碼。其號碼的排列是:最初8位(28H)是產品類型標號,接著的48位是DS18B20自身的序列號,最后8位是前面56位的循環冗余校驗碼(CRC=X8+X5+X4+1)。光刻ROM中的地址序列碼可以區分每一個DS18B20,從而實現在同一根總線上掛接多個DS18B20。根據DS18B20的通訊協議,MCU(單片機)控制DS18B20完成溫度轉換必須經過三個步驟:

        (1)每一次讀寫之前都要對DS18B20進行復位操作

        (2)復位成功后發送一條ROM指令

        (3)最后發送RAM指令

        這樣才能對DS18B20進行預定的操作。復位要求主CPU將數據線下拉500 μs,然后釋放,當DS18B20收到信號后等待16~60μs左右,后發出60~240μs的低脈沖,主CPU收到此信號表示復位成功。論文設計的測溫系統中每一個DS18B20在與MCU連接時各占用一個I/O口,則MCU控制DS18B20完成溫度轉換的步驟如圖3所示。

        nRF24L01是Nordic公司推出的高集成的單片無線收發器件。芯片具備自動應答和自動重發功能,速度可達2 Mbps,126個可選工作頻道,很短的頻道切換時間,可用于跳頻,其輸出功率,頻道選擇以及協議設置都可以通過SPI口進行設置。其Enhanced Shock Burst模式可以同時控制應答及重發功能而無需增加微控制器的工作量。nRF24L01還具備同一頻道接收六路不同通道數據的功能,利用FDMA技術最多可實現750個點的數據采集,這使它成為無線溫度測量系統硬件實現的最佳選擇。nRF24L01模塊在與MCU進行數據傳輸時,可以使用MCU普通的I/O口,系統中直接利用ATmega16的固有資源SPI通信口,這樣從一定程度上簡化了軟件設計過程。

        液晶顯示模塊采用LCD1602液晶顯示器,模塊內部的字符發生存儲器(CGROM)已經存儲了160個不同的點陣字符圖形,這些字符有:阿拉伯數字、英文字母的大小寫、常用的符號、日文假名等,每一個字符都有一個固定的代碼,比如大寫的英文字母“A”的代碼是01000001B(41H),顯示時模塊把地址41H中的點陣字符圖形顯示出來,我們就能看到字母“A”。因為1602識別的是ASCII碼,設計中可以用ASCII碼直接賦值,在單片機編程中還可以用字符型常量或變量賦值,如A’。系統中1602采用的是8位數據線驅動,其控制端和數據傳輸均通過單片機的I/O口直接控制,電路如圖4所示。

        MCU-ATmega16、溫度傳感器DS18B20和液晶顯示器模塊1602都是用5 V供電電源。系統供電電源為5 V,可以直接使用。nRF24L01無線收發模塊需要3.3 V供電,所以采用REG1117-3.3芯片進行電源電壓變換,產生3.3 V電源供nRF24L01使用。ATmega16的SPI口在與nRF24L01無線收發模塊相接時,由于ATmega16輸出驅動電流偏大,可能會損壞無線模塊,所以要串聯2 k電阻以保護無線模塊。

        1.2 溫度顯示管理終端

        在溫度顯示管理終端,首先由無線收發模塊nRF24L01通過天線將節點溫度測量系統發送的溫度信息進行接收。通過單片機SPI串口將溫度信息數據采集到MCU,溫度不在正常監測范圍則聲音模塊發出聲音報警。最后通過RS232通信,將溫度數據送到PC進行顯示和處理。整個系統的通信屬于雙工通信,在必要情況下,電路功能可以擴展,實現PC發出控制信號,通過反方向通信調節各個節點的溫度。

        2 結束語

        本文設計的無線系統結構簡單,實現容易,系統性能好。適合多種場合進行無線




        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 永泰县| 荣昌县| 黑山县| 柏乡县| 永州市| 白城市| 湄潭县| 鸡泽县| 定远县| 民县| 林西县| 调兵山市| 临沂市| 大邑县| 德惠市| 前郭尔| 洮南市| 德令哈市| 海林市| 菏泽市| 右玉县| 通榆县| 肇州县| 通州区| 潞西市| 赤壁市| 平和县| 子洲县| 常宁市| 辽中县| 九龙坡区| 扶沟县| 江城| 清流县| 洛川县| 遵化市| 宝山区| 石台县| 东乡县| 炎陵县| 全椒县|