64 lines
1.7 KiB
C++
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();
|
|
}
|
|
}
|