Merhaba arkadaşlar,
Arduino ve sensörden veri okuyup HC-06 blueetooth modülü ile Android uygulamasına veri gönderiyorum. Bunun için developer.android sitesisindeki BluetootChat örneğini kullanıyorum. Bu uygulama ile bağlandım ve veri alışverişi sıkıntısız gerçekleşiyor.
Ama şöyle bir sorunum var. Andoid tarafında 3 adet TextView'i güncellemek istiyorum ama başaramıyorum. Sıkıntı ise gelen veri byte tipinde ve Arduinodan veri gönderirken hepsini aynı anda gönderiyor(3 sensör değerini, int olarak). Yani ben ayırt edemiyorum hangisi hangi veri. Peş peşe hepsini gönderiyor.
Android tarafında Handler metodu altındaki
case Constants.MESSAGE_READ:
seçeneğinin altında varsayılan olarak
byte[] readBuf = (byte[]) msg.obj;
bu geliyor ve ben
sicaklikTX.setText( readBuf[0] );
yapınca veriyi alabiliyorum. Eğer Arduino tarafında 3 tane veri gönderdiysem hepsini sırayla ekrana basıyor haliyle sadece son gönderiğim ekranda görünüyor. Yani eğer Arduino tarafında aşağıdaki gibi tek veri gönderseydim sıkıntı olmuyordu,
SoftwareSerial bt(12, 13);
bt.write(sicaklık);
Kısaca: Aynı kanaldan birden fazla veriyi nasıl gönderirim ve istediğim yere yazabilirim.
Şimdiden teşekkürler.
uygulama kodlarınızı göremediğimden pratik çözüm önerisi olarak göndereceğiniz verilerin arasına karakter koyun.hersensör değerinden sonra# işareti ile veriyi gönderin. Android tarafında da # işaretini yakalayınca sensör değerini almış olursunuz.
Alıntı Yaphepsini sırayla ekrana basıyor haliyle sadece son gönderiğim ekranda görünüyor.
byte[] bytes = {...}
String str = new String(bytes, "UTF-8"); // for UTF-8 encoding
byte[] b = new byte[1];
fos.read(b);
fos.close();
String message = new String(b);
StringBuilder builder = new StringBuilder();
for (String details : list2) {
builder.append(details + "\n");
}
custName.setText(builder.toString());
@erdcan O karakter olayını denedim ama ama tam beceremedim.
@peko Hocam ilk yazdığınız kodda fos olayını anlamadım.
İkincisinde de for yapısını tam anlamadım. Biraz yardımcı olabilir misiniz ?
Alıntı YapKısaca: Aynı kanaldan birden fazla veriyi nasıl gönderirim ve istediğim yere yazabilirim.
byte[] readBuf = (byte[]) msg.obj;
String message = new String(readBuf);
Bu şekilde message olarak aldığın bilgi nedir yazabilir misin?
@peko Eğer readBuf[0] dan okursam istediğim değeri sağlıklı okuyorum ama message den alirsam gelen veri biraz değişiyor. Mesela 30 ise gelen veri 45-50 gibi bisey oluyor .
Hakan bey merhaba, bende benzer bir işlem yapmak istiyorum ve 3 gündür uğraşıyorum ama arpa boyu yol alamadım. Yardımcı olabilirseniz sevinirim. Öncelikle benim problemim android stüdyo. Elimde hc06 Bluetooth ile yapılmış bir proje var ve ben bu projeyi android stufyo ile açınca sadece kodları görebiliyorum. Telefonun ekranında butonları nasıl yerleştirilmiş bu ekranı göremiyorum. Bunu nasıl açabilirim? Yardımcı olabilirseniz mutlu olurum.
Konu ile alakalı aşağıdaki linkte bir başlık açtım. İsterseniz oraya da yazabilirsiniz... Şimdiden teşekkürler https://www.picproje.org/index.php?topic=62633.msg485061.msg#485061
@protezdiyot Hocam BluetoothChat örneğini %90 çözdüm. Muhtemelen senin çözümün bende. Bana mail adresini ver benim projeyi sana atayım gerekli yerleri düzenleyip kullanırsın.
Ben byte olarak veri alıp gönderebiliyorum.
@hakanmelik mail attım adresinize. Teşekkürler şimdiden
çoktandır foruma girmedim belki aynı sorunu yaşayanlar vardır diye ekliyorum daha fazla yazı yazmaya gerek yok
https://www.youtube.com/watch?v=5YovICoYCLg&t=254s (https://www.youtube.com/watch?v=5YovICoYCLg&t=254s)