簡體   English   中英

在Android上使用Qt藍牙連接到arduino

[英]Use Qt Bluetooth on android to connect to an arduino

我在一個項目中需要通過藍牙連接arduino Uno和平板電腦Android。

我現在搜索了兩個星期如何使用Qt庫。 目前,我使用一個自定義庫( http://qt-project.org/forums/viewreply/193094/ ),但是該庫沒有任何信號,因此我必須使用計時器來檢查數據是否在串行上緩沖。

我想使用“官方” Qt庫來訪問信號/插槽系統。

目前,我嘗試將arduino設置為master和slave,並根據android進行設置,但沒有任何效果。 我想在android上實現什么:

啟動應用

連接到已經配對的arduino(知道地址)

從arduino板收到消息時獲取信號

我想做的一件事是使用QBluetoothSocket連接到arduino(arduino作為從設備,android作為服務器),但是QBluetoothSocket似乎僅在android的從設備模式下工作。 而且QBluetoothServer不能讓我從我的Qt應用程序連接到arduino。

感謝幫助 !

編輯:我試試這個:

    socket = new QBluetoothSocket(QBluetoothServiceInfo::RfcommProtocol);
qDebug() << "Socket créé";
socket->connectToService(QBluetoothAddress("00:13:EF:00:06:4F"), QBluetoothUuid(serviceUuid), QIODevice::ReadWrite);
qDebug() << "Tentative de connection";

但是我得到了這個:

W / System.err(4861):java.io.IOException:服務發現失敗W / System.err(4861):在android.bluetooth.BluetoothSocket $ SdpHelper.doSdp(BluetoothSocket.java:462)W / System.err( 4861):在android.bluetooth.BluetoothSocket.connect(BluetoothSocket.java:240)W / System.err(4861):在dalvik.system.NativeStart.run(Native Method)W / Qt(4861):(null): 0((null)):qt.bluetooth.android:退回到解決方法。 W / Qt(4861):(null):0((null)):qt.bluetooth.android:使用找到的rfcomm通道-1 W / Qt(4861):(null):0((null)):qt。 bluetooth.android:調用導致錯誤。

終於我明白了!

我必須使用這個uuid:

static const QString serviceUuid(QStringLiteral("00001101-0000-1000-8000-00805F9B34FB"));

因為Bt防護罩具有默認防護罩。 上面的代碼現在可以正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM