基于Android平臺和藍牙的太陽輻照度采集系統
1 系統程序流程
本文引用地址:http://www.j9360.com/article/273342.htm 輻照度采集系統由標準太陽電池測試太陽輻照度,集成環境溫度、電池板溫度等測試功能,下位機通過藍牙模塊連接具有藍牙接口的Android移動終端,以利用便攜式Android設備來實時監控和記錄系統采集數據。程序執行的流程圖如圖1所示。
打開上位機Android軟件,進入到藍牙配置界面,首先打開藍牙,匹配藍牙模塊,然后搜索藍牙設備并顯示搜索到的藍牙設備名稱,點擊需要匹配的藍牙模塊名稱項目進行匹配,匹配成功即可點擊按鈕進入到采集數據界面,設置好測試間隔時間之后,按啟動按鈕進行數據采集,按停止按鈕結束采集。選上記錄復選框,自動保存采集數據結果至設備根文件目錄下。
2 Bluetooth模塊匹配連接
在采集系統中,下位機通過標準太陽電池測得太陽輻照度數據,其藍牙接口與Android設備藍牙模塊匹配之后,建立連接,進行數據采集。藍牙模塊的匹配是數據采集的前提,下面簡述匹配步驟。
(1)開啟藍牙
要使用藍牙,必須取得藍牙適配器,我們可以通過BluetoothAdapter的getDefaultAdapter()方法來取得本地藍牙適配器:
public BluetoothAdapter bluetooth= BluetoothAdapter.
getDefaultAdapter();
然后打開藍牙:bluetooth.enable();
(2) 搜索藍牙模塊
在藍牙打開之后,需要搜索藍牙設備,然后才能進行匹配操作。搜索藍牙設備需要使用BluetootDevice類,可以使用BluetoothAdapter類的getRemoteDevice方法來得到一個指定地址的BluetoothDevice。搜索藍牙設備的具體流程如圖2所示。
根據圖2,獲得藍牙設備需要分別注冊搜索完成和發現設備兩類廣播消息,并調用startDiscovery()方法。每次系統廣播事件發生后,系統就會創建對應的BroadcastReceiver實例,并自動觸發它的onReceive()方法,onReceive()方法執行完后,BroadcastReceiver的實例就會被銷毀。在該BroadcastReceiver實例的onReceive()方法中,我們處理注冊的廣播消息,將發現的藍牙設備放在設備列表中進行顯示。在點擊藍牙模塊匹配按鈕之后,調用startDiscovery()方法開始搜索。
( 3)藍牙模塊匹配
在藍牙設備搜索完成之后,采集系統下位機的藍牙模塊名稱和MAC地址顯示在藍牙設備列表中,下面是Android藍牙與下位機藍牙模塊實現連接的部分代碼:
通過藍牙設備的MAC地址獲取BluetoothDevice對象: device = bluetooth.
getRemoteDevice(BlueToothAddress);
BluetoothDevice對象通過UUID號創建一個Socket連:socket =
device.createRfcommSocketToServiceRecord(UUID.
fromString("00001101-0000-1000-8000-00805F9B34FB"));
連接遠程藍牙適配器:socket.connect();
至此,藍牙模塊匹配連接完成,將匹配的結果顯示在藍牙匹配信息列表中。
評論