?

嵌入式小型多點溫度測量系統設計

2024-04-14 18:20彭偉堯孫雪茹
機電信息 2024年7期
關鍵詞:嵌入式技術

彭偉堯 孫雪茹

摘要:針對目前多數以單片機為核心控制器的數據采集系統存在處理速度有限、實時性及可靠性差等問題,設計了一種基于NanoPi NEO嵌入式開發板和RS485總線的小型多點溫度測量系統。以NanoPi NEO嵌入式開發板為核心,各從機能夠測量相應點的溫度,同時可以識別主機發送的指令并將測得的溫度數據上傳回主機。主機收集溫度數據,將溫度數據存儲到SQLite數據庫文件相應的表格中,方便日后的管理與查詢。該系統具有結構簡單、穩定可靠、操作方便、測溫精度高、應用范圍廣泛、擴展性強等特點。

關鍵詞:溫度測量;NanoPi NEO;嵌入式技術;現場總線技術;SQLite數據庫

中圖分類號:TH811? ? 文獻標志碼:A? ? 文章編號:1671-0797(2024)07-0037-05

DOI:10.19514/j.cnki.cn32-1628/tm.2024.07.010

0? ? 引言

溫度的測量與控制在工業生產與安全中起著關鍵性作用[1]?,F今市場上溫度控制成型的產品大部分以單片機為核心控制器,但是單片機的運算速度和系統處理能力十分有限,并且產品性能也無法繼續提高,更重要的是其ROM和RAM空間小,不能運行較大的程序,而基于多任務的操作系統需要的任務堆棧很多,需要的RAM空間很大,故在發展上有很大限制[2]。因此,研究一種嵌入式小型多點溫度測量系統十分必要。

目前嵌入式小型溫度測量系統的研究有:張興紅等[3]為了能夠更加精準確定超聲波傳播結束的終點時刻,保證溫度的精準測量,提出了一種優化閾值比較法,設計了一種針對液體介質的超聲波測溫系統,該系統相較傳統溫度計響應更加迅速,具有更高的靈敏度,時間測量分辨率可達10-12 s,溫度測量分辨率可達0.001 ℃;杜光月等[4]針對熱物理學中對空間內溫度梯度多點檢測用傳感器陣列數據采集同步性較差的問題,基于DS18B20設計了分布式數據采集方法,該方法較傳統方法采集溫度可縮短82.2 s,大大提高了檢測的實時性和同步性;汪欽臣等[5]為了提高PC主站與智能從站采用常規Modbus通信的實時性,設計了一種基于Modbus UDP的實時通信系統,該系統以STM32為核心,以PC為主站,以FreeRTOS開發的控制器作為從站,經優化測試可提高系統Modbus UDP通信的可靠性和實時性;許子穎等[6]通過對測量系統輸出值的調控,調節鉑電阻的激勵電流,從而抵消鉑電阻的非線性誤差,提出了一種基于壓控電流源的鉑電阻測溫非線性校正設計方法,可有效改善輸出信號的線性度,提高測溫精度。

本文嵌入式小型多點溫度測量系統基于NanoPi NEO嵌入式開發板進行設計,采用RS485總線,構成分布式多點傳輸數據采集系統,以滿足民用領域、工業領域等對多點溫度測量和數據存儲的需求。本文以單片機作為下位機,用NanoPi NEO嵌入式開發板作為上位機,搭建嵌入式Linux系統桌面開發環境[7],搭建基于64位操作系統的ARM-Linux交叉編譯環境,并采用RS485總線作為數據傳輸的載體,以NanoPi NEO開發板為核心搭建了溫度測量硬件電路。

1? ? 硬件設計方案

1.1? ? 溫度傳感器選型

嵌入式小型多點溫度測量系統設計測溫范圍為-50~120 ℃,該小型測溫系統可以測量單點或多點溫度,同時可以提供多傳感器接口。溫度傳感器成本要求低,性價比高,綜合分析,該系統的溫度傳感器將選用數字式溫度傳感器。表1是幾種型號的數字式溫度傳感器的對比。

LM74溫度傳感器轉換時間太長,且溫度準確度較差,不予選用;MAX6575和AD7418測溫準確度較差[8],不能滿足需求;而DS18B20是一個單總線器件,采用單一接口方式對數據進行傳輸,當進行多點溫度采集的時候,這是它同其他數字溫度傳感器相比的一個優勢,DS18B20單總線器件與51單片機的通信協議比較簡單,占用單片機硬件I/O接口資源少,降低了系統成本,而且該器件傳輸距離很遠[9]。綜上,采用DS18B20作為溫度傳感器。

1.2? ? NanoPi NEO

本設計基于NanoPi NEO嵌入式開發板,NanoPi NEO體積小、價格低,是一款高性能、低功耗的小體積嵌入式產品,擁有豐富的GPIO擴展接口,包括UART、SPI、I2C多種常見通信接口,同時還擁有各種各樣的擴展器件,擴展性高,完全可以替代高端的STM32產品系列,同時還兼具上位機的處理能力,實用性強[10]。

嵌入式小型多點溫度測量系統由主機NanoPi NEO模塊、從機、溫度測量系統和RS485總線組成,硬件主從模塊電路組成框圖如圖1所示。

2? ? 軟件設計方案

嵌入式小型多點溫度測量系統主程序執行流程的系統結構框圖如圖2所示。

首先作為上位機的NanoPi NEO在開機時執行SELECT語句,在SQLite數據庫中查詢主鍵sn列最大值,記錄該值,在之后的存儲過程中從此值開始插入數據,此舉的目的在于滿足SQLite數據庫的唯一性約束。上位機NanoPi NEO基于Modbus協議發送一幀報文到RS485總線,這一幀報文中指定下位機,并令該下位機執行指定指令。當上位機NanoPi發送一幀報文到下位機之后,上位機會進入監聽狀態,被指定的下位機會執行所接收到的發送數據的指令,發送一幀包含傳感器數據的報文到RS485總線中,上位機會接收該數據,并將該數據中的有效參數存儲到SQLite數據庫文件的相應表格中。通過循環語句,上位機NanoPi NEO會循環讀取每一個下位機的數據,并存儲在相應的數據庫表格中。

軟件設計分為兩個部分,第一個部分是下位機模塊,第二個部分是上位機模塊。

下位機模塊:本系統使用51單片機作為下位機,51單片機會利用循環語句不斷采集DS18B20的溫度數據,當串口中斷觸發的時候,判定接收到的數據,并據此判斷是否輸出溫度數據,如果判定為發送,則將從DS18B20采集到的數據通過串口傳輸給485轉TTL模塊。

上位機模塊:為了滿足嵌入式數據庫SQLite的唯一性約束,上位機NanoPi NEO在開機以后會使用SELECT語句查詢數據庫中的主鍵(sn列)數據,之后數據將會從sn最大值開始使用INSERT語句插入。上位機NanoPi NEO通過串口1發送一幀報文到485轉TTL模塊(該模塊會對RS485總線信號和串口信號進行互相轉換),之后將會處于監聽模式,在監聽模式下,NanoPi NEO得到從下位機傳輸過來的數據之后,會將該數據存入嵌入式數據庫SQLite相應的表格中。將數據使用數據庫保存是目前常用的一種方法,該方法存儲快速,面對輸入量具有良好的反應時間。

3? ? 系統環境搭建

系統環境搭建,包括NanoPi板上系統環境搭建、Linux 64位操作系統環境搭建、SQLite數據庫使用環境搭建、QT Creator交叉編譯環境搭建。

3.1? ? NanoPi NEO板載系統環境的搭建

準備NanoPi嵌入式開發板向TF卡中燒寫系統,打開燒寫工具,選擇相應的固件和TF卡,選擇write。燒寫成功之后將TF卡插入NanoPi,使用USB轉串口模塊連接NanoPi和電腦,接口選擇GPIO管腳圖中左下角的GND、5V、TX、RX。打開電腦上的串口調試工具,在界面上選擇相應的COM端(Linux系統中為ttyUSB),一欄波特率選擇115 200(NanoPi默認),然后點擊界面下方的“打開”按鈕,此時串口調試助手處于監聽模式,對NanoPi進行關機操作,然后開機即可。串口調試第一次時間比較長,此時系統會初始化,并對TF卡進行分區,串口調試成功后的界面如圖3所示。

3.2? ? 64位操作系統Ubuntu的搭建

NanoPi NEO的CPU為Allwinner H3 FriendlyCore,如圖4所示,應使用4.8.6版本的QT和Ubuntu 16.04 64位版本操作系統,否則QT Creator在進行交叉編譯時將會出現錯誤。

3.3? ? SQLite數據庫使用環境的搭建

進入官網下載預編譯的二進制文件,并下載qlite-

tools壓縮文件,在系統盤目錄下創建一個叫作sqlite的文件夾,解壓壓縮包到此文件夾,這時將會得到sqlite3.def、sqlite3.dll、sqlite3.exe文件。添加文件夾到PATH環境變量,就可以在命令行中使用SQLite。

Linux系統幾乎全部附帶著SQLite數據庫,創建數據庫文件和表格如圖5所示。

3.4? ? QT Creator交叉編譯環境的搭建

在NanoPi NEO的Wikipedia網站下載完相應的工具包后,首先添加QtEmbedded,然后添加C語言交叉編譯器與C++語言交叉編譯器,最后是構建套件(Kit),如圖6、圖7、圖8所示。

4? ? 系統的實驗測試

本系統設計過程中,大部分模塊是對溫度進行測量和控制的,資源數據和操作數據兩大部分組成了系統數據庫的主要部分。資源數據主要指主機收集的溫度數據,操作數據主要指的是系統在運行過程中不斷變化產生出來的數據,其添加、修改和刪除操作由相對應的操作模塊來完成。

燒錄入程序并運行軟件,主機收集的所測得的溫度數據如圖9所示,將溫度數據存儲到SQLite數據庫文件相應的表格中,圖10為單片機作為下位機進行測溫并與主機通信的照片。

5? ? 結束語

本設計以NanoPi NEO嵌入式開發板為核心,對多點溫度進行測量,實現了對溫度的實時檢測;該系統利用了DS18B20,使得硬件結構簡單、成本低廉、工作穩定。系統對于需要實時監測溫度的環境具有良好的應用前景,可以較好地發揮其作用。

[參考文獻]

[1] 肖新帥,林曉煥,胡念祖,等.多類型高精度測溫系統設計[J].國外電子測量技術,2019,38(3):75-79.

[2] 王菡,李長齊,李俊禮.一體化智能溫度變送系統的設計[J].儀表技術與傳感器,2019(4):123-126.

[3] 張興紅,任麗汾.高精度超聲波液體測溫系統[J].重慶理工大學學報(自然科學),2023,37(4):253-259.

[4] 杜光月,劉美麗,周蒙,等.基于多DS18B20傳感器陣列的數據采集方法研究[J].電子器件,2023,46(1):16-21.

[5] 汪欽臣,方益民.基于Modbus UDP協議的STM32與PC實時通信的實現[J].儀表技術與傳感器,2020(7):67-70.

[6] 許子穎,董峰,傅雨田.基于壓控電流源的鉑電阻測溫非線性校正設計[J].半導體光電,2020,41(2):223-226.

[7] 賈巧雯,馬昊玉,厲嚴,等.一種嵌入式Linux系統上的新型完整性度量架構[J].計算機研究與發展,2022,59(10):2362-2375.

[8] CHEN M W,YANG X F,GONG X Z,et al.Integrated infrared and visible tangential wide-angle viewing systems for surface temperature measurement and discharge monitoring in EAST[J].Fusion Engineering and Design,2020,150:111415.1-111415.8.

[9] CHO J C,LEE M.Building a compact convolutional neural network for embedded intelligent sensor systems using group sparsity and knowledge distillation[J].Sensors,2019,19(19):4307.

[10] 李維闊.基于NanoPi的智能配電箱設計[D].青島:山東科技大學,2018.

收稿日期:2023-12-06

作者簡介:彭偉堯(1997—),男,新疆阿克蘇人,碩士,助教,研究方向:嵌入式技術。

通信作者:孫雪茹(1995—),女,新疆阿克蘇人,碩士,助教,研究方向:測控技術與儀器。

猜你喜歡
嵌入式技術
變電站開關柜狀態及有害氣體監測報警系統研制與應用
基于嵌入式技術的微機繼電保護應用探究
基于S3C2440處理器系統的數字圖像處理技術和嵌入式技術結合機制
遠程監控工作中嵌入式技術應用
基于視覺反饋的智能環境偵察車的研究
嵌入式系統的應用與開發
油氣管道飛行器檢測系統設計與實現
嵌入式技術與工程裝備智能信息化研究
基于嵌入式Web技術的監控系統設計與實現
基于嵌入式技術的農村醫療系統設計
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合