藍牙串口app開發(fā)(藍牙串口 app)
本篇文章給大家談談藍牙串口app開發(fā),以及藍牙串口 app對應的知識點,希望對各位有所幫助,不要忘了收藏本站喔。
求教如何制作一個安卓手機藍牙制作的app程序,用于和單片機上的藍牙模塊,實現(xiàn)數(shù)據(jù)的傳送
下位機,用串口和藍牙模塊連接,通信
上位機,安卓app開發(fā)用eclipse或者是android studio,藍牙有相關的函數(shù),,連接,斷開,接受,網(wǎng)上大部分代碼套著用就行了,,如果需要修改也修改的不多,,主ui界面的時候,不能有進程的占用和其他的一些的線程的操作,所以就得到子線程里面去執(zhí)行了,還是先學學基礎吧,之后再看這些的話,就容易的多了
如何使用藍牙模塊與電腦通信,實現(xiàn)自主開發(fā)
1、通信前必須具備東西:
(1)
藍牙串口模塊;
(2)
藍牙適配器;
(3)
串口調(diào)試軟件;
(4)
藍牙測試軟件;(配套而來的)
2、配置藍牙串口模塊;
3、把藍牙適配器插上電腦,等待電腦自動安裝好驅(qū)動軟件,一般電腦都能自行安裝,如果特殊的電腦不行,請下載相關藍牙驅(qū)動軟件即可;
4、在電腦右下角的藍牙圖標上單擊,選擇“添加設備”,然后電腦自動搜索,可以看到我們的藍牙串口模塊Bluebooth了,選擇它,單擊下一步;輸入設備的配對碼:1234(如上),然后進行連接,成功連接之后電腦會自動搜索安裝藍牙外圍設備的驅(qū)動軟件;
5、進行藍牙通信。
你需要知道的藍牙傳輸?shù)脑恚?/p>
1
主從關系:
藍牙技術規(guī)定每一對設備之間進行藍牙通訊時,必須一個為主角色,另一為從角色,才能進行通信,通信時,必須由主端進行查找,發(fā)起配對,建鏈成功后,雙方即可收發(fā)數(shù)據(jù)。理論上,一個藍牙主端設備,可同時與7個藍牙從端設備進行通訊。一個具備藍牙通訊功能的設備,
可以在兩個角色間切換,平時工作在從模式,等待其它主設備來連接,需要時,轉換為主模式,向其它設備發(fā)起呼叫。一個藍牙設備以主模式發(fā)起呼叫時,需要知道對方的藍牙地址,配對密碼等信息,配對完成后,可直接發(fā)起呼叫。SKYLAB的BLE藍牙模塊作為工業(yè)級藍牙低功耗模塊,擁有:超低功耗、遠距離傳輸、寬電壓范圍的特性。功能支持:4.0
BLE協(xié)議、主從一體、電量檢測、加密傳輸、多種配置方式、Mesh組網(wǎng)、一對多廣播、iBeacon協(xié)議。
2
呼叫過程:
藍牙主端設備發(fā)起呼叫,首先是查找,找出周圍處于可被查找的藍牙設備。主端設備找到從端藍牙設備后,與從端藍牙設備進行配對,此時需要輸入從端設備的PIN碼。
如何使用MIT APP Inventor2 快速創(chuàng)建一個藍牙串口app
AppInventor開發(fā)工具與測試用的AI伴侶是同步更新的,因此某個版本的AI2要與特定版本的伴侶配合使用。你可以到新浪博客搜一下“老巫婆的博客”,置頂貼里有本土版離線包的下載地址,如果我沒記錯的話,離線包中自帶的ai伴侶就是你需要的這個版本。另:最好穩(wěn)定地使用某個版本一段時間,如果跟隨MIT頻繁地更新版本,會無端地生出一些麻煩。
關于單片機通過藍牙將數(shù)據(jù)傳輸給手機,并在app上面顯示出來怎么實現(xiàn)?
首先是藍牙通信,我想指出,如果你用的是藍牙模塊的話,那么它的單片機程序與串口的單片機程序差不多一樣,只要你會串口操作,藍牙也就解決了,如果不是用的藍牙模塊,另當別論。
然后是接受端手機這邊,你應該懂一些java東西,知道怎么調(diào)用底層程序,編寫讀取串口程序,根據(jù)發(fā)送的協(xié)議,把接受的數(shù)據(jù)轉化為十進制就可以了.
擴展資料
單片機采用51系列單片機用C51語言編寫,通過sprintf構造JSON格式文件通過藍牙串口模塊發(fā)送到安卓手機,簡要代碼如下:
sprintf(msg,"{\"RR\":\"%02x\"}\0",(unsigned int )RRtemp);
Serial_print(msg);
這里涉及到Serial_print()函數(shù)如下:
void Serial_print(char *msg)
{
while (*msg != '\0') {
S2BUF = *msg;
while ((S2CON S2TI) == 0);
S2CON = ~S2TI;
msg++;
}
}
想開發(fā)一個類似于藍牙串口助手的軟件,設置幾個按鈕,點擊相應按鈕就發(fā)送相應字符串給藍牙模塊,求解答。
如此簡單,干脆用流行的串口軟件,如格西烽火串口助手、串口調(diào)試助手等,都可以輕松實現(xiàn)。
android藍牙開發(fā),PC端模擬串口接收字符,該如何編程?
您好,android藍牙這方面還是很好搞的,因為大家的方式都是差不多的。先說說如何開啟藍牙設備和設置可見時間:
private void search() {
BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
if (!adapter.isEnabled()) {
adapter.enable();
}
Intent enable = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
enable.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 3600); //3600為藍牙設備可見時間
startActivity(enable);
Intent searchIntent = new Intent(this, ComminuteActivity.class);
startActivity(searchIntent);
}
首先,需要獲得一個BluetoothAdapter,可以通過getDefaultAdapter()獲得系統(tǒng)默認的藍牙適配器,當然我們也可以自己指定,但這個真心沒有必要,至少我是不需要的。然后我們檢查手機的藍牙是否打開,如果沒有,通過enable()方法打開。接著我們再設置手機藍牙設備的可見,可見時間可以自定義。
完成這些必要的設置后,我們就可以正式開始與藍牙模塊進行通信了:
public class ComminuteActivity extends Activity {
private BluetoothReceiver receiver;
private BluetoothAdapter bluetoothAdapter;
private ListString devices;
private ListBluetoothDevice deviceList;
private Bluetooth client;
private final String lockName = "BOLUTEK";
private String message = "000001";
private ListView listView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.search_layout);
listView = (ListView) this.findViewById(R.id.list);
deviceList = new ArrayListBluetoothDevice();
devices = new ArrayListString();
bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
bluetoothAdapter.startDiscovery();
IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
receiver = new BluetoothReceiver();
registerReceiver(receiver, filter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView? parent, View view, int position, long id) {
setContentView(R.layout.connect_layout);
BluetoothDevice device = deviceList.get(position);
client = new Bluetooth(device, handler);
try {
client.connect(message);
} catch (Exception e) {
Log.e("TAG", e.toString());
}
}
});
}
@Override
protected void onDestroy() {
unregisterReceiver(receiver);
super.onDestroy();
}
private final Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case Bluetooth.CONNECT_FAILED:
Toast.makeText(ComminuteActivity.this, "連接失敗", Toast.LENGTH_LONG).show();
try {
client.connect(message);
} catch (Exception e) {
Log.e("TAG", e.toString());
}
break;
case Bluetooth.CONNECT_SUCCESS:
Toast.makeText(ComminuteActivity.this, "連接成功", Toast.LENGTH_LONG).show();
break;
case Bluetooth.READ_FAILED:
Toast.makeText(ComminuteActivity.this, "讀取失敗", Toast.LENGTH_LONG).show();
break;
case Bluetooth.WRITE_FAILED:
Toast.makeText(ComminuteActivity.this, "寫入失敗", Toast.LENGTH_LONG).show();
break;
case Bluetooth.DATA:
Toast.makeText(ComminuteActivity.this, msg.arg1 + "", Toast.LENGTH_LONG).show();
break;
}
}
};
private class BluetoothReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (BluetoothDevice.ACTION_FOUND.equals(action)) {
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
if (isLock(device)) {
devices.add(device.getName());
}
deviceList.add(device);
}
showDevices();
}
}
private boolean isLock(BluetoothDevice device) {
boolean isLockName = (device.getName()).equals(lockName);
boolean isSingleDevice = devices.indexOf(device.getName()) == -1;
return isLockName isSingleDevice;
}
private void showDevices() {
ArrayAdapterString adapter = new ArrayAdapterString(this, android.R.layout.simple_list_item_1,
devices);
listView.setAdapter(adapter);
}
}
藍牙串口app開發(fā)的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關于藍牙串口 app、藍牙串口app開發(fā)的信息別忘了在本站進行查找喔。