Я довольно новичок в Arduino и Processing, и я также впервые задаю вопрос о кодировании в Интернете.В настоящее время я пытаюсь сделать следующее для школьного проекта: я хочу отправить строку с данными от датчиков на моем Arduino на телефон или планшет Android через Bluetooth.Для простоты я уменьшил сложность кода, удалив каждую часть моего кода, которая не пытается облегчить перенос String из Arduino в Processing на Android.Следующий код просто пытается отправить строку «S01E» в приложение обработки на моем телефоне, сохраняя строку в «Информация о строке» и отображая эту строку в виде текста (info, 20, 110);element.
Дополнительная информация: Bluetooth-модуль Arduino - это «Bluefruit EZ-Ling BLuetooth Shield».Телефон Samsung Galaxy S8.Приложение обработки генерируется в режиме обработки Android.Мой телефон успешно сопряжен с Arduino по Bluetooth.
Код успешно компилируется, но показывает только мой текст («тестовый текст», 20, 120);на моем телефоне, но не на моем тексте (info, 20, 110); я предполагаю, что это означает, что строка не принимается и строка информации остается пустой.
Как я могу продолжить отсюда?Есть ли очевидные проблемы в моем коде.И как я могу правильно отлаживать свой код с помощью странного стека технологий, которые я использую?
Код обработки:
import netP5.*;
import android.content.Intent;
import android.os.Bundle;
import ketai.net.bluetooth.*;
import ketai.ui.*;
import ketai.net.*;
KetaiBluetooth bt;
boolean isConfiguring = true;
String info = "";
KetaiList klist;
ArrayList devicesDiscovered = new ArrayList();
// States of the two sensors
int B1in = 0;
int B2in = 0;
//********************************************************************
// The following code is required to enable bluetooth at startup.
//********************************************************************
void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
bt = new KetaiBluetooth(this);
}
void onActivityResult(int requestCode, int resultCode, Intent data) {
bt.onActivityResult(requestCode, resultCode, data);
}
void setup() {
size(displayWidth, displayHeight);
frameRate(10);
orientation(PORTRAIT);
background(255);
stroke(160);
fill(50);
//start listening for BT connections
bt.start();
//at app start select device…
isConfiguring = true;
}
void draw() {
background(255);
text(info,20,110);
text("test text",20,120);
println(info);
}
void onKetaiListSelection(KetaiList klist)
{
String selection = klist.getSelection();
bt.connectToDeviceByName(selection);
//dispose of list for now
klist = null;
}
//Call back method to manage data received
void onBluetoothDataEvent(String who, byte[] data) {
if (isConfiguring)
return;
//received
info = new String(data);
}
А вот мой код Arduino:
#include <SoftwareSerial.h>
SoftwareSerial bt(2,3); // RX, TX
// Enthält den String, der an den PC geschickt wird
String data = "S01E";
// Serielle Schnittstelle einrichten, pinModes setzen
void setup() {
bt.begin(9600);
Serial.begin(9600);
}
void loop() {
Serial.println(data);
}
Я также задавал тот же вопрос на discourse.processing.org.Ссылка на мой вопрос: https://discourse.processing.org/t/sending-string-from-arduino-to-processing-app-on-android-over-bluetooth/6106