Replies: 2 comments 2 replies
-
If you look at the provided examples, you will see that you need to prefix those values ( uint64_t joinEUI = 0xFFEEEDCDB4569484;
uint64_t devEUI = 0x70B3D57ED006396D; |
Beta Was this translation helpful? Give feedback.
2 replies
-
Where did you get this example from? At least so we can ask them to update it as it's never been from this repro. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
i'm using this code for a lorawan transmission. i'm finding errors that i don't understand or what to put in place of these variables to avoid these errors. here is my code
#include <RadioLib.h> // Inclusion de la bibliothèque RadioLib pour la communication radio
#include <Wire.h> // Inclusion de la bibliothèque Wire pour la communication I2C
#include <Adafruit_BMP280.h> // Inclusion de la bibliothèque Adafruit_BMP280 pour le capteur de pression et de température
#include <CayenneLPP.h> // Inclusion de la bibliothèque CayenneLPP pour le formatage des données pour LoRaWAN
SX1262 radio = new Module(8, 14, 12, 13); // Création d'une instance de module LoRa avec les broches spécifiées
LoRaWANNode node(&radio, &EU868); // Création d'une instance de nœud LoRaWAN avec le module radio et la bande de fréquence spécifiée
Adafruit_BMP280 bmp; // Création d'une instance de capteur BMP280
CayenneLPP lpp(51); // Création d'une instance de CayenneLPP avec une taille maximale de 51 octets
void setup() {
Serial.begin(112500); // Initialisation de la communication série à 112500 bauds
unsigned status; // Déclaration d'une variable pour le statut
status = bmp.begin(BMP280_ADDRESS_ALT, BMP280_CHIPID); // Initialisation du capteur BMP280 avec l'adresse et l'ID spécifiés
if (!status) {
Serial.println(F("Could not find a valid BMP280 sensor, check wiring or "
"try a different address!")); // Message d'erreur si le capteur BMP280 n'est pas trouvé
}
bmp.setSampling(Adafruit_BMP280::MODE_NORMAL,
Adafruit_BMP280::SAMPLING_X2,
Adafruit_BMP280::SAMPLING_X16,
Adafruit_BMP280::FILTER_X16,
Adafruit_BMP280::STANDBY_MS_500); // Configuration de l'échantillonnage du capteur BMP280
int state = radio.begin(); // Initialisation du module LoRa
if(state == RADIOLIB_ERR_NONE) {
Serial.println(F("success!")); // Message de réussite de l'initialisation
} else {
Serial.print(F("failed, code "));
Serial.println(state);
while(true);
}
uint64_t joinEUI = FFEZZDCDB4569484; // Identifiant d'application pour la connexion OTAA
uint64_t devEUI = 70B3D57ED006396D; // Identifiant de périphérique pour la connexion OTAA
uint8_t nwkKey[] = {0x4D, 0x32, 0x4D, 0x32, 0x5A, 0xFF, 0x3U, 0x40 }; // Clé de réseau pour la connexion OTAA
uint8_t appKey[] = { 0x0B, 0xE7, 0xA0, 0x01, 0x2A, 0x72, 0xDB, 0xEF, 0xBD, 0x37, 0xD4, 0x2E, 0x8A, 0x5C, 0x57, 0xE5 }; // Clé d'application pour la connexion OTAA
Serial.print(F("[LoRaWAN] Tentative de connexion OTAA ... "));
state = node.beginOTAA(joinEUI, devEUI, nwkKey, appKey); // Connexion au réseau LoRaWAN via la méthode OTAA
if(state >= RADIOLIB_ERR_NONE) {
Serial.println(F("Connexion!")); // Message de réussite de la connexion
delay(2000); // Petit délai entre la connexion et l'envoi de données
} else {
Serial.print(F("Echoué, code "));
Serial.println(state);
while(true);
}
}
void loop() {
char str[30]; // Déclaration d'un tableau de caractères pour stocker des chaînes de caractères
float temperature = bmp.readTemperature(); // Lecture de la température à partir du capteur BMP280
float pressure = (bmp.readPressure()/100.0); // Lecture de la pression atmosphérique à partir du capteur BMP280 et conversion en hPa
sprintf(str,"Température : %.1f °C",temperature); // Formatage de la température dans une chaîne de caractères
Serial.println();
Serial.println(str); // Affichage de la température sur le moniteur série
sprintf(str,"Pression : %.1f °hPa",pressure); // Formatage de la pression dans une chaîne de caractères
Serial.println(str); // Affichage de la pression sur le moniteur série
lpp.reset(); // Réinitialisation de l'objet CayenneLPP
lpp.addTemperature(1, temperature); // Ajout de la température au paquet CayenneLPP sur le canal 1
lpp.addBarometricPressure(2, pressure); // Ajout de la pression au paquet CayenneLPP sur le canal 2
byte packet[lpp.getSize()]; // Déclaration d'un tableau d'octets pour stocker le paquet CayenneLPP
lpp.copy(packet); // Copie du paquet CayenneLPP dans le tableau d'octets
Serial.print("Octets envoyés : ");
Serial.println(lpp.getSize()); // Affichage du nombre d'octets envoyés
Serial.print("Trame envoyée : ");
uint8_t *payload = lpp.getBuffer();
for (unsigned char i = 0; i < lpp.getSize(); i++) // Boucle pour afficher chaque octet de la trame envoyée en format hexadécimal
{
Serial.print("0x");
Serial.print(payload[i], HEX);
Serial.print(" ");
}
Serial.println();
Serial.println(F("[LoRaWAN] En train d'envoyer la trame ... "));
int state = node.uplink(lpp.getBuffer(), lpp.getSize(), 10); // Envoi du paquet CayenneLPP en tant que transmission ascendante
String strDown; // Déclaration d'une variable pour stocker les données de la réception descendante
if(state != RADIOLIB_ERR_NONE) {
Serial.println(F("Erreur d'envoi!")); // Message d'erreur en cas d'échec de l'envoi
}
state = node.downlink(strDown); // Réception des données descendantes
if(state == RADIOLIB_ERR_NONE) {
Serial.println(F("Réception reçue!")); // Message de réussite de la réception
Serial.println(F("[LoRaWAN] Data:\t\t"));
if(strDown.length() > 0) {
Serial.println(strDown); // Affichage des données de la réception si elles existent
} else {
Serial.println(F("")); // Affichage si seules des commandes MAC sont reçues
Serial.println(strDown);
}
Serial.print(F("[LoRaWAN] RSSI:\t\t"));
Serial.print(radio.getRSSI()); // Affichage de la force du signal RSSI
Serial.println(F(" dBm"));
Serial.print(F("[LoRaWAN] SNR:\t\t"));
Serial.print(radio.getSNR()); // Affichage du rapport signal sur bruit SNR
Serial.println(F(" dB"));
Serial.print(F("[LoRaWAN] Frequency error:\t"));
Serial.print(radio.getFrequencyError()); // Affichage de l'erreur de fréquence
Serial.println(F(" Hz"));
} else if(state == RADIOLIB_ERR_RX_TIMEOUT) {
Serial.println(F("Pas de réception!")); // Message si aucune réception n'est reçue
} else {
Serial.print(F("failed, code "));
Serial.println(state);
}
node.saveSession(); // Sauvegarde de la session LoRaWAN
uint32_t minimumDelay = 60000; // Temps minimal entre l'envoi de chaque paquet (60 secondes)
uint32_t interval = node.timeUntilUplink(); // Calcul du temps écoulé depuis la dernière transmission
uint32_t delayMs = max(interval, minimumDelay); // Calcul du temps d'attente en fonction du délai minimal et du temps écoulé
delay(delayMs); // Attente avant d'envoyer un autre paquet
}
OUTPUT ERROR
C:\Users\pc\Documents\Arduino\sketch_sep16b\sketch_sep16b.ino: In function 'void setup()':
sketch_sep16b:39:20: error: 'FFEEEDCDB4569484' was not declared in this scope
uint64_t joinEUI = FFEEEDCDB4569484; // Identifiant d'application pour la connexion OTAA
^~~~~~~~~~~~~~~~
sketch_sep16b:40:19: error: unable to find numeric literal operator 'operator""B3D57ED006396D'
uint64_t devEUI = 70B3D57ED006396D; // Identifiant de périphérique pour la connexion OTAA
^~~~~~~~~~~~~~~~
sketch_sep16b:46:55: error: void value not ignored as it ought to be
state = node.beginOTAA(joinEUI, devEUI, nwkKey, appKey); // Connexion au réseau LoRaWAN via la méthode OTAA
^
C:\Users\pc\Documents\Arduino\sketch_sep16b\sketch_sep16b.ino: In function 'void loop()':
sketch_sep16b:132:6: error: 'class LoRaWANNode' has no member named 'saveSession'; did you mean 'clearSession'?
node.saveSession(); // Sauvegarde de la session LoRaWAN
^~~~~~~~~~~
clearSession
Plusieurs bibliothèque trouvées pour "Adafruit_BMP280.h"
Utilisé : C:\Users\pc\Documents\Arduino\libraries\Adafruit_BMP280_Library
Non utilisé : C:\Users\pc\Documents\Arduino\libraries\Adafruit_BMP280_Library-master
exit status 1
'FFEEEDCDB4569484' was not declared in this scope
Beta Was this translation helpful? Give feedback.
All reactions