için birden fazla dizeyi birleştirir. Üzerinde bazı sensörler bulunan bir Arduino kullanıyorum. Sensör verilerini bir Xbee pro S1 olan Xbee ile bir uzak PC'ye gönderiyorum. Xbee modülü 38400 baud hızında çalışır. Kablosuz üzerinden göndermek için toplam 15 sensör verisi ve iki zaman bilgim var. Algılayıcılar hareket halindeki bir platform üzerine yerleştirildiklerinden dolayı, veri paketleri kaybolur ve bu nedenle, alıcı bilgisine ait zaman bilgisi içeren tam sensör veri seti alınamaz., Arduino + Xbee
Ben Bu benim dizeleri biçimi (statik karakter dtostrfbuffer [15];) onları çevirdim bu
URT*364.00*348.00*432.00*350.00*427.00*357.00*0.22*0.18*0.81*1.00*0.73*-0.37* 0.15*-0.06*-0.19*6.00*17324.00
URT*364.00*348.00*432.00*349.00*428.00*357.00*0.22*0.18*0.81*1.00*0.73*-0.24* 0.16*-0.06*-0.19*8.00*2976.00
URT*361.00*345.00*428.00*345.00*424.00*353.00*0.22*0.18*0.81*1.00*0.73*-0.24* 0.16*-0.06*-0.19*9.00*53812.00
URT*363.00*347.00*430.00*349.00*427.00*356.00*0.23*0.18*0.81*1.00*0.61*-0.12* 0.15*-0.05*-0.19*11.00*39380.00
benziyor Aşağıdaki kod şablon
Serial.write('U'); Serial.write('R'); Serial.write('T');
Uint1.ival=rawX_ADXL337;
dtostrf(Uint1.ival,4, 2, dtostrfbuffer);
Serial.write("*");
Serial.write(dtostrfbuffer);
Uint1.ival=rawY_ADXL337;
dtostrf(Uint1.ival,4, 2, dtostrfbuffer);
Serial.write("*");
Serial.write(dtostrfbuffer);
Uint1.ival=rawZ_ADXL337;
dtostrf(Uint1.ival,4, 2, dtostrfbuffer);
Serial.write("*");
Serial.write(dtostrfbuffer);
Uint1.ival=rawX_ADXL377;
dtostrf(Uint1.ival,4, 2, dtostrfbuffer);
Serial.write("*");
Serial.write(dtostrfbuffer);
Uint1.ival=rawY_ADXL377;
dtostrf(Uint1.ival,4, 2, dtostrfbuffer);
Serial.write("*");
Serial.write(dtostrfbuffer);
Uint1.ival=rawZ_ADXL377;
dtostrf(Uint1.ival,4, 2, dtostrfbuffer);
Serial.write("*");
Serial.write(dtostrfbuffer);
//value after multiplication needed to be less than 2^15=32768
Uint1.ival=ax;
dtostrf(ax,4, 2, dtostrfbuffer);
Serial.write("*");
Serial.write(dtostrfbuffer);
Uint1.ival=ay;
dtostrf(ay,4, 2, dtostrfbuffer);
Serial.write("*");
Serial.write(dtostrfbuffer);
Uint1.ival=az;
dtostrf(az,4, 2, dtostrfbuffer);
Serial.write("*");
Serial.write(dtostrfbuffer);
Uint1.ival=gx;
dtostrf(Uint1.ival,4, 2, dtostrfbuffer);
Serial.write("*");
Serial.write(dtostrfbuffer);
Uint1.ival=gy;
dtostrf(gy,4, 2, dtostrfbuffer);
Serial.write("*");
Serial.write(dtostrfbuffer);
Uint1.ival=gz;
dtostrf(gz,4, 2, dtostrfbuffer);
Serial.write("*");
Serial.write(dtostrfbuffer);
Uint1.ival=mx;
dtostrf(mx,5, 2, dtostrfbuffer);
Serial.write("*");
Serial.write(dtostrfbuffer);
Uint1.ival=my;
dtostrf(my,4, 2, dtostrfbuffer);
Serial.write("*");
Serial.write(dtostrfbuffer);
Uint1.ival=mz;
dtostrf(mz,4, 2, dtostrfbuffer);
Serial.write("*");
Serial.write(dtostrfbuffer);
Uint1.ival=wHighNow;
dtostrf(Uint1.ival,4, 2, dtostrfbuffer);
Serial.write("*");
Serial.write(dtostrfbuffer);
Uint1.ival=wLowNow;
dtostrf(Uint1.ival,4, 2, dtostrfbuffer);
Serial.write("*");
Serial.write(dtostrfbuffer);
Serial.write("\n");
delay(100);
var ve bunları tek tek gönderme. Aşağıdaki bilgileri kullanarak (ArduinoStringConcat) tüm bilgileri içeren tek bir dize oluşturmaya çalışıyorum, ancak bunu yapamıyorum.
İçerideki tüm sensör verileriyle bir telgraf nasıl oluşturabilir ve Xbee'den gönderebilirim? Lütfen örnekte bazı demo örneği veya kod snippet'i sağlayın.
Xbee pro s1'in bu son büyük telgrafı göndermesi mümkün mü?
Teşekkür
"nedeniyle sensörlerim dönme sırasında, hareketli platform üzerine yerleştirilen nedeniyle, veri paketlerinin kaybolur", donanım nedeniyle oluştuğunu - Bir çarpma sensörü ile ima ettiğiniz gibi veri kaybı arasında gerekli nedensellik yoktur. – Olaf
Karışıklık için üzgünüm.Sensörler yüksek hızda döndürüldüğünde, tüm paketleri (tüm sensör verilerini) alamıyorum. Bu nedenle, bazı paketlerin meydana geldiği veya antenin bazı açılarda çalışmadığı varsayılır. –
Yine de, bunun değiştirilemeyeceği anlamına gelmez (metnin ima ettiği şey budur). Neyse ne sorduğun belli değil. Bu soruyu sormak için en iyi yer olmayabilir. Belki elektronik için SSS'yi kontrol ediyorsun? – Olaf