You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.8 KiB
C++
47 lines
1.8 KiB
C++
// envoyer les mesures
|
|
uint16_t typeDonnee = 1; //définis le type de données envoyées
|
|
|
|
#define MSB(x) ((uint8_t)( (x) >> 8) ) // définition de l'octet de poids fort par un décalage de 8bits
|
|
#define LSB(x) ((uint8_t)( (x)&0x00FF) ) // définition de l'octet de poids faible avec un masque de bits
|
|
|
|
// idStation entre 0 et 255 (le poid fort sera imposé par la passerelle)
|
|
int RadioEnvoyer( uint16_t idStation, uint16_t idMessage, uint16_t Temperature, uint16_t Humidite, uint16_t ilpleut ) {
|
|
idMessage++;
|
|
//EEPROM.write( 4, idMessage>>8 );
|
|
//EEPROM.write( 5, idMessage&0x00FF ); // ecriture du prochain timestamp à utiliser en cas de redémarrage
|
|
|
|
|
|
Serial.print("RadioEnvoyer.idstation : "); Serial.println(idStation);
|
|
Serial.print("RadioEnvoyer.Temperature : "); Serial.println(Temperature);
|
|
Serial.print("RadioEnvoyer.Humidite : "); Serial.println(Humidite);
|
|
Serial.print("RadioEnvoyer.Il pleut ? : "); Serial.println(ilpleut);
|
|
|
|
for (int i = 0; i < 3; i++) { // on envoie le message 3 fois
|
|
|
|
LoRa.beginPacket(); //crée une en-tête automatiquement et réinitialise les registres et la taille du message
|
|
|
|
LoRa.write( MSB(idStation) ); //écrit les données de "idStation" dans le registre définis par LoRa.beginPacket et met à jour la taille du paquet
|
|
LoRa.write( LSB(idStation) );
|
|
|
|
LoRa.write( MSB(idMessage) );
|
|
LoRa.write( LSB(idMessage) );
|
|
|
|
LoRa.write( MSB(typeDonnee) );
|
|
LoRa.write( LSB(typeDonnee) );
|
|
|
|
LoRa.write( MSB(Temperature) );
|
|
LoRa.write( LSB(Temperature) );
|
|
|
|
LoRa.write( MSB(Humidite) );
|
|
LoRa.write( LSB(Humidite) );
|
|
|
|
LoRa.write( MSB(ilpleut) );
|
|
LoRa.write( LSB(ilpleut) );
|
|
|
|
LoRa.endPacket(); //envoie les données et vide le contenu des registres
|
|
|
|
delay(5000);
|
|
}
|
|
}
|
|
|