0
Δοκιμασε με την sprintf δηλαδη στον πομπο:
Γενικα με την sprintf μπορεις να στειλεις ενα πακετο τιμων οπως υγρασια,θερμοκρασια και οτι αλλο θες σε ενα πακετακι γραφοντας στην srintf ---> sprintf (value, "%f|%f", Humidity,Temp);.Κώδικας:#include <SPI.h> #include "RF24.h" #include <Wire.h> #include <SHT2x.h> RF24 radio(7,8); const uint64_t pipes[2] = { 0xF0F0F0F0E1LL, 0xF0F0F0F0E3LL }; float Humidity; char value[32]; void setup() { Serial.begin(9600); radio.begin(); Wire.begin(); radio.setDataRate(RF24_250KBPS); radio.openWritingPipe(pipes[1]); radio.stopListening(); } void loop() { Humidity = SHT2x.GetHumidity(); sprintf (value, "%f", Humidity); radio.writeFast( &value, sizeof(value) ); delay(500); }
Αν χρησιμοποιησεις την sprintf για πολλες τιμες θα πρεπει μετα στον δεκτη τις πληροφοριες να τις διαχωρισεις γιατι στελνονται σε μορφη συμβολοσειρας,αυτο γινεται οπως λεει ο σαββας εδω(ποστ24).
Τελευταία επεξεργασία από το χρήστη thanasis 1 : 28-08-17 στις 23:28
και γιατί να μη τα στείλω με struct που είπε και ο Fire Doger?
μια χαρα δουλεύει:
πομπός
Κώδικας:#include <Wire.h> #include <SHT2x.h> #include <SPI.h> #include "RF24.h" RF24 radio(7,8); const uint64_t pipes[2] = {0xF0F0F0F0E1LL, 0xF0F0F0F0E2LL}; struct data{ float hum,temp; }myData; void setup() { radio.begin(); radio.setDataRate(RF24_250KBPS); radio.openWritingPipe(pipes[1]); } void loop() { myData.hum = SHT2x.GetHumidity(); myData.temp = SHT2x.GetTemperature(); radio.write(&myData, sizeof(myData)); delay(500); }
δέκτης
Κώδικας:#include <SPI.h> #include "RF24.h" RF24 radio(7,8); const uint64_t pipes[2] = {0xF0F0F0F0E1LL, 0xF0F0F0F0E2LL}; struct data{ float hum,temp; }myData; void setup() { radio.begin(); radio.setDataRate(RF24_250KBPS); radio.openReadingPipe(1, pipes[1]); radio.startListening(); Serial.begin(9600); } void loop() { radio.read(&myData, sizeof(myData)); Serial.println(myData.hum); Serial.println(myData.temp); delay(1000); }
με εβαλες σε νέες περιπέτειες όμως. ο RFM69 ???