今天有一位客戶請教我做一個程序,實現LabVIEW與Arduino硬件的通訊,具體需求為:
1、Arduino硬件(其開發板單片機型號為AT89C52)采集傳感器數據,并通過串口將數據傳遞出來;
2、通過LabVIEW制作上位機軟件,實現對Arduino硬件傳遞過來的傳感器數據的可視化顯示(以曲線圖的形式顯示歷史數據),以及將所有數據存儲下來。
需求還是比較簡單而且明確的,具體實施也比較簡單,以下詳細介紹下實現過程。
一、Arduino硬件端的程序開發
我這邊采用Arduino UNO R3硬件采集一個傳感器數據,并每隔0.5s通過串口傳遞1個數據出來,具體實現代碼如下圖所示。
Arduino 代碼實現
二、LabVIEW端上位機的程序開發
LabVIEW端直接采用NI-VISA函數即可實現串口數據的讀取,再通過“寫入電子表格文件”子函數將數據存儲到一個.csv格式的電子表格文件中,具體實現代碼如下圖所示。
LabVIEW 程序框圖
具體實現流程為:打開串口(波特率需要設置正確)→清空串口緩沖區數據→While循環(檢查串口緩沖區是否有有數據可讀取,若有則將數據讀取出來,并將數據還原為浮點型數值型數據,并傳遞給波形圖表,同時還設置了若采集數據超過設定的限值時亮報警指示燈的功能),當用戶點擊了停止采集的按鈕時,會將所有采集到的數據一次性保存到指定路徑下的電子表格中。
三、效果展示
效果如下圖所示。
Arduino IDE 端監視數據
LabVIEW上位機軟件采集到的數據
存儲的電子表格數據
四、延伸
我們的物聯網模塊或一般的單片機模塊可以用于采集一些傳感器數據,但最終做上位機軟件還是得依靠一些比較強大且方便開發和展示的編程語言,如本文中提到的LabVIEW軟件,用LabVIEW軟件做上位機軟件還是比較合適的,一來這個軟件的編制是圖形化編制的,比較容易上手,二來該軟件很方便做一些可視化的展示。
-
傳感器
+關注
關注
2552文章
51294瀏覽量
755203 -
LabVIEW
+關注
關注
1975文章
3656瀏覽量
324617 -
物聯網
+關注
關注
2911文章
44832瀏覽量
375164 -
通訊
+關注
關注
9文章
911瀏覽量
34988 -
Arduino
+關注
關注
188文章
6474瀏覽量
187435
發布評論請先 登錄
相關推薦
評論