Diferència entre revisions de la pàgina «Trametre 3 floats en 12 bytes i visualitzar-los al NodeRED»

De Wiki d'en Jordi Binefa
Dreceres ràpides: navegació, cerca
(Es crea la pàgina amb «= Transmissió de 3 floats en 12 bytes = A la línia 310 d'aquest [https://github.com/jordibinefa/arduino-IDE-codes/blob/master/esp32_lorawan_ttnEsp32_ttgo_multichann...».)
 
m (Transmissió de 3 floats en 12 bytes)
 
(Hi ha 4 revisions intermèdies del mateix usuari que no es mostren)
Línia 1: Línia 1:
 
= Transmissió de 3 floats en 12 bytes =
 
= Transmissió de 3 floats en 12 bytes =
  
A la línia 310 d'aquest [https://github.com/jordibinefa/arduino-IDE-codes/blob/master/esp32_lorawan_ttnEsp32_ttgo_multichannel_02b/esp32_lorawan_ttnEsp32_ttgo_multichannel_02b.ino codi per a trametre un float en 4 bytes emprant The Yhings Network] hi surt:
+
A la línia 310 d'aquest [https://github.com/jordibinefa/arduino-IDE-codes/blob/master/esp32_lorawan_ttnEsp32_ttgo_multichannel_02b/esp32_lorawan_ttnEsp32_ttgo_multichannel_02b.ino codi per a trametre un float en 4 bytes emprant The Things Network] hi surt:
  
  unsigned char data[4];
+
  unsigned char data['''4'''];
  
 
A la línia 322:
 
A la línia 322:
  
 
  float2Bytes(fTc, data);
 
  float2Bytes(fTc, data);
  for (int i = 0; i < 4 ; i++) {
+
  for (int i = 0; i < '''4''' ; i++) {
 
       Serial.print("[0x");
 
       Serial.print("[0x");
 
       Serial.print(data[i], HEX);
 
       Serial.print(data[i], HEX);
 
       Serial.print("]");
 
       Serial.print("]");
  }
+
  }
  Serial.println();
+
  Serial.println();
  
 
A la línia 333:
 
A la línia 333:
  
  LMIC_setTxData2(1, data, 4, 0);
+
  LMIC_setTxData2(1, data, '''4''', 0);
 +
 
 +
 
 +
Per a trametre 12 bytes fem aquestes modificacions:
 +
 
 +
unsigned char data['''12'''];
 +
 
 +
float2Bytes(fTc, data);
 +
'''float2Bytes(fP, &data[4]);'''
 +
'''float2Bytes(fRH, &data[8]);'''
 +
for (int i = 0; i < '''12''' ; i++) {
 +
      Serial.print("[0x");
 +
      Serial.print(data[i], HEX);
 +
      Serial.print("]");
 +
  }
 +
  Serial.println();
 +
 
 +
LMIC_setTxData2(1, data, '''12''', 0);
 +
 
 +
= Recollir els 12 bytes i reconstruir-los com a 3 floats =
 +
 
 +
[[File:12bytes_2_3floats.png|caption]]
 +
 
 +
[https://www.binefa.cat/IoT/nodeRed/04_nodeRed_12bytes_4floats/12bytes_2_3floats.nodered.txt Codi per a importar el flux anterior]

Revisió de 14:52, 4 feb 2020

Transmissió de 3 floats en 12 bytes

A la línia 310 d'aquest codi per a trametre un float en 4 bytes emprant The Things Network hi surt:

unsigned char data[4];

A la línia 322:

float2Bytes(fTc, data);
for (int i = 0; i < 4 ; i++) {
     Serial.print("[0x");
     Serial.print(data[i], HEX);
     Serial.print("]");
 }
 Serial.println();

A la línia 333:

LMIC_setTxData2(1, data, 4, 0);


Per a trametre 12 bytes fem aquestes modificacions:

unsigned char data[12];
float2Bytes(fTc, data);
float2Bytes(fP, &data[4]);
float2Bytes(fRH, &data[8]);
for (int i = 0; i < 12 ; i++) {
     Serial.print("[0x");
     Serial.print(data[i], HEX);
     Serial.print("]");
 }
 Serial.println();
LMIC_setTxData2(1, data, 12, 0);

Recollir els 12 bytes i reconstruir-los com a 3 floats

caption

Codi per a importar el flux anterior