Я пытаюсь отправить данные из приложения в arduino, а также отправить данные из arduino в приложение. Я использую Andriod Studio для приложения. Arduino Uno для MCU. Мне удалось успешно отправить данные на h c -05, но Inputtream.read () не может получить данные от arduino. Можете ли вы помочь мне найти, что не так? Я получил код с YouTube https://www.youtube.com/watch?v=TLXpDY1pItQ&t=550s его код работает для него, но когда я попробовал сам, он не будет работать.
Это мой код для arduino uno:
byte receivedData;
int i=0;
void setup() {
Serial.begin(9600);
}
void loop() {
if(Serial.available()>0) {
receivedData = Serial.read();
if(receivedData==48){
for(int i =65;i<=90;i++){
Serial.print((char)i);
delay(100);
}
}
}
}
delay(100);
}
А это мой код для android студии:
package com.example.try1;
import androidx.appcompat.app.AppCompatActivity;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothSocket;
import android.os.Bundle;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.UUID;
public class MainActivity extends AppCompatActivity {
static final UUID mUUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
BluetoothAdapter btAdapter = BluetoothAdapter.getDefaultAdapter();
System.out.println(btAdapter.getBondedDevices());
BluetoothDevice hc05 = btAdapter.getRemoteDevice("98:D3:61:F5:BC:71");
System.out.println(hc05.getName());
BluetoothSocket btSocket = null;
int counter = 0;
do {
try {
btSocket = hc05.createRfcommSocketToServiceRecord(mUUID);
System.out.println(btSocket);
btSocket.connect();
System.out.println(btSocket.isConnected());
} catch (IOException e) {
e.printStackTrace();
}
counter++;
} while (!btSocket.isConnected() && counter < 3);
//send 0 to arduino
try {
OutputStream outputStream = btSocket.getOutputStream();
outputStream.write(48);
} catch (IOException e) {
e.printStackTrace();
}
//receive data(ABCDEF...) from arduino
InputStream inputStream = null;
try {
inputStream = btSocket.getInputStream();
inputStream.skip(inputStream.available());
for (int i = 0; i < 26; i++) {
byte b = (byte) inputStream.read();
System.out.println((char) b);
}
} catch (IOException e) {
e.printStackTrace();
}
try {
btSocket.close();
System.out.println(btSocket.isConnected());
} catch (IOException e) {
e.printStackTrace();
}
}
}