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