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