projet3_temperature/lib/LoRaRadio/examples/LoraRadio/LoRaRadio.ino
2020-05-14 16:15:09 +02:00

64 lines
1.7 KiB
C++

#include <Arduino.h>
#include <LoRaRadio.h>
//Testé sur ESP8266 et ESP32.
//Les pins dépendent des cartes
u1_t dio[3] = {26,33,32};
void os_getArtEui (u1_t* buf) { }
void os_getDevEui (u1_t* buf) { }
void os_getDevKey (u1_t* buf) { }
static u1_t NWKSKEY[16] = { 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF, 0x11 }; //Disponible sur TTN
static u1_t APPSKEY[16] = { 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF, 0x11 }; //Disponible sur TTN
static u4_t DEVADDR = 0x11223344; //Adresse du noeud disponible sous TTN.
unsigned long ts(millis());
//Les pins dépendent des cartes
PinMap pinMap(18, LMIC_UNUSED_PIN, 14, dio);
LoRaRadio radio(pinMap);
uint8_t trame[] = "Hello World !";
void downlinkHandler(u1_t length, u1_t dataBeg, u1_t *data)
{
Serial.println("Réception d'un downlink :");
for(uint8_t i(0); i < length; i++)
{
Serial.printf("%u -> %d\n",i,data[dataBeg + i]);
}
Serial.println();
}
void sendCompleteHandler()
{
Serial.println("Envoi de la trame terminée");
}
void setup()
{
Serial.begin(115200);
Serial.println("Starting setup");
radio.init();
radio.setTTNSession(0x1, DEVADDR, NWKSKEY, APPSKEY);
radio.setRadioEUChannels();
radio.setMCUClockError();
//Enregistrement des callbacks d'événements
radio.setDownlinkHandler(&(downlinkHandler));
radio.setSendCompleteHandler(&(sendCompleteHandler));
Serial.println("Ending setup");
}
void loop()
{
radio.run();
//On envoie une trame toute les 30 secondes
if(millis() - ts > 30000)
{
Serial.printf("Envoie de la trame.\n");
radio.send(1, trame, strlen((char *)trame));
ts = millis();
}
}