#include #include //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(); } }