Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <lmic.h>
- #include <hal/hal.h>
- /*************************************
- * TODO: Change the following keys
- * NwkSKey: network session key, AppSKey: application session key, and DevAddr: end-device address
- *************************************/
- //untuk app bonmicro
- //static const u1_t NWKSKEY[16] = { 0xCD, 0xA8, 0x1E, 0x11, 0x93, 0x6E, 0x2E, 0xFC, 0xB3, 0xBF, 0x29, 0x7B, 0x6E, 0x48, 0xF7, 0xCC };
- //static const u1_t APPSKEY[16] = { 0x6C, 0xEF, 0xF5, 0xDB, 0xCA, 0x39, 0x15, 0x5F, 0x07, 0xAA, 0xB1, 0x52, 0x57, 0xDD, 0xC5, 0x50 };
- //static const u4_t DEVADDR = 0x26041122 ;
- //untuk app rak7249_sensortest node1
- //static const u1_t NWKSKEY[16] ={ 0x82, 0xD5, 0x76, 0xEF, 0xDB, 0x50, 0xE9, 0x29, 0x05, 0xCC, 0xA0, 0x85, 0x3A, 0x83, 0x98, 0xA3 };
- //static const u1_t APPSKEY[16] = { 0xCC, 0xDF, 0x11, 0xA7, 0xAD, 0x12, 0x87, 0x10, 0x03, 0xA8, 0x68, 0xCC, 0x4D, 0xED, 0xC5, 0xCA };
- //static const u4_t DEVADDR = 0x260413F3 ;
- //untuk app rak7249_sensortest node2
- static const u1_t NWKSKEY[16] ={ 0x4E, 0x67, 0x62, 0x5F, 0xC0, 0x2D, 0x88, 0xDE, 0xC6, 0xE7, 0xA4, 0xC5, 0x4B, 0x0C, 0xEA, 0xFB };
- static const u1_t APPSKEY[16] = { 0x4C, 0x6D, 0x95, 0xF0, 0x13, 0x84, 0xBD, 0x18, 0x3A, 0x33, 0x82, 0xA0, 0x4A, 0x31, 0xE0, 0x1B };
- static const u4_t DEVADDR = 0x26041EC8 ;
- // These callbacks are only used in over-the-air activation, so they are
- // left empty here (we cannot leave them out completely unless
- // DISABLE_JOIN is set in config.h, otherwise the linker will complain).
- void os_getArtEui (u1_t* buf) { }
- void os_getDevEui (u1_t* buf) { }
- void os_getDevKey (u1_t* buf) { }
- static osjob_t sendjob;
- // Schedule TX every this many seconds (might become longer due to duty
- // cycle limitations).
- const unsigned TX_INTERVAL = 60;
- // Pin mapping for cytron lora shield
- /*const lmic_pinmap lmic_pins = {
- .nss = 10,
- .rxtx = LMIC_UNUSED_PIN,
- .rst = 7,
- .dio = {2, 5, 6},
- */
- // Pin mapping for dragino shield
- const lmic_pinmap lmic_pins = {
- .nss = 10,
- .rxtx = LMIC_UNUSED_PIN,
- .rst = 9,
- .dio = {2, 6, 7},
- };
- void onEvent (ev_t ev) {
- if (ev == EV_TXCOMPLETE) {
- Serial.println(F("EV_TXCOMPLETE (includes waiting for RX windows)"));
- // Schedule next transmission
- os_setTimedCallback(&sendjob, os_getTime()+sec2osticks(TX_INTERVAL), do_send);
- }
- }
- void do_send(osjob_t* j){
- // Payload to send (uplink)
- static uint8_t message[2];
- int value = analogRead(A0);
- message[0] = highByte(value);
- message[1] = lowByte(value);
- // Check if there is not a current TX/RX job running
- if (LMIC.opmode & OP_TXRXPEND) {
- Serial.println(F("OP_TXRXPEND, not sending"));
- } else {
- // Prepare upstream data transmission at the next possible time.
- LMIC_setTxData2(1, message, sizeof(message), 0);
- Serial.println(F("Sending uplink packet..."));
- }
- // Next TX is scheduled after TX_COMPLETE event.
- }
- void setup() {
- Serial.begin(115200);
- Serial.println(F("Starting..."));
- // LMIC init
- os_init();
- // Reset the MAC state. Session and pending data transfers will be discarded.
- LMIC_reset();
- // Set static session parameters.
- LMIC_setSession (0x1, DEVADDR, NWKSKEY, APPSKEY);
- // Disable link check validation
- LMIC_setLinkCheckMode(0);
- // TTN uses SF9 for its RX2 window.
- LMIC.dn2Dr = DR_SF9;
- // Set data rate and transmit power for uplink (note: txpow seems to be ignored by the library)
- LMIC_setDrTxpow(DR_SF7,14);
- // Start job
- do_send(&sendjob);
- }
- void loop() {
- os_runloop_once();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement