gpt4 book ai didi

java - Android通过蓝牙向Arduino发送数据

转载 作者:行者123 更新时间:2023-11-29 20:02:05 26 4
gpt4 key购买 nike

使用各种教程,我成功地将我的 Android 手机连接到连接到 Arduino 的 HC-05 蓝牙模块。我想要做的是设置 5 个按钮,只有当按钮被按下时,每个按钮才会传输一个唯一的整数,否则它们会在按钮被释放时发送一个“0”。 ergo BUTTON1 按下时发送“1”,释放时发送“0”,BUTTON2 按下时发送“2”,释放时发送“0”。目前,我不知道如何通过连接发送任何数据。通过阅读和观看各种教程,我获得了一点理解,但似乎遗漏了一些东西。

在 public void run() 中我的代码底部,我已经为我的一个按钮设置了一个 OnClickListener 来尝试发送...好吧,一旦它被按下只是为了看看我是否可以发送一些有用的东西给阿杜诺。

这是我的 OnClickListener。我相信我应该向 Arduino 发送“T”。

pUpBtn.setOnClickListener(new OnClickListener()

{
@Override
public void onClick(View v) {
String testr="T:";
byte[] msgBuffer = testr.getBytes();
try {

mmOutStream.write(msgBuffer);
} catch (IOException e) {
e.printStackTrace();
}
}
});

最佳答案

首先

基本上根据您的要求,您不能使用 onClickListner 而是使用 onTouchListner

示例

button.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_DOWN) {
//send integer value here.(pressed)
} else if (event.getAction() == MotionEvent.ACTION_UP) {
//Send zero here.(released)
}
}
};

这里是从蓝牙SPP发送和接收数据的示例代码

此方法是将蓝牙设备连接到远程设备

private void connectToDevice(BluetoothDevice mBTDevice) {
try {
SPP_UUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");

mBtSocket = mBTDevice.createRfcommSocketToServiceRecord(SPP_UUID);
mBtSocket.connect();

} catch (IOException e) {
Log.d("connectBT", "while connecting device");
e.printStackTrace();

} catch (Exception e) {
e.printStackTrace();

}
}

用它来发送字节。

public void send(String data) {

byte[] buffer = data.getBytes();
try {
mOutputStream = mBtSocket.getOutputStream();
mOutputStream.write(buffer);
Log.d("message", data + " sent");
} catch (IOException e) {
e.printStackTrace();

}
}

使用这个函数发送整数

 public void send() {

byte[] buffer = new bytes[size];
buffer[0]=(byte)'1';//prepare data like this
..
..
try {
mOutputStream = mBtSocket.getOutputStream();
mOutputStream.write(buffer);
Log.d("message", " sent");
} catch (IOException e) {
e.printStackTrace();

}
}

希望这有帮助:)

关于java - Android通过蓝牙向Arduino发送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36119183/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com