Temperature reading using NUCLEO-L152RE microcontroller and Grove – Temperature&Humidity Sensor Pro.
Dependencies: DHT LMiC SX1276Lib mbed
Fork of LoRaWAN_send_text by
main.cpp@11:0cc0f7b84c72, 2015-09-27 (annotated)
- Committer:
- tamberg
- Date:
- Sun Sep 27 15:52:00 2015 +0000
- Revision:
- 11:0cc0f7b84c72
- Parent:
- 10:576f275cfc14
- Child:
- 12:020ffc39a19e
Added keys for other platform.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
tamberg | 11:0cc0f7b84c72 | 1 | // License: Revised BSD License, see LICENSE.TXT, (c)2015 Semtech |
mluis | 0:a2929fa6e4f0 | 2 | |
mluis | 1:60184eda0066 | 3 | #include "mbed.h" |
mluis | 0:a2929fa6e4f0 | 4 | #include "lmic.h" |
mluis | 1:60184eda0066 | 5 | #include "debug.h" |
mluis | 0:a2929fa6e4f0 | 6 | |
tamberg | 6:fbfc95b5c979 | 7 | #define LORAWAN_NET_ID (uint32_t) 0x00000000 |
tamberg | 11:0cc0f7b84c72 | 8 | #define LORAWAN_DEV_ADDR (uint32_t) 0x00001056 // 0xA81F657A |
tamberg | 6:fbfc95b5c979 | 9 | #define LORAWAN_ADR_ON 1 |
tamberg | 6:fbfc95b5c979 | 10 | #define LORAWAN_CONFIRMED_MSG_ON 1 |
tamberg | 6:fbfc95b5c979 | 11 | #define LORAWAN_APP_PORT 15 |
mluis | 0:a2929fa6e4f0 | 12 | |
tamberg | 5:1f8829bd11ed | 13 | static uint8_t NwkSKey[] = { |
tamberg | 4:f83ad3eee79d | 14 | 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, |
tamberg | 4:f83ad3eee79d | 15 | 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF |
tamberg | 11:0cc0f7b84c72 | 16 | // 0x6D, 0x0D, 0x54, 0x96, 0x79, 0xE7, 0x3D, 0x14, |
tamberg | 11:0cc0f7b84c72 | 17 | // 0x46, 0xA2, 0x88, 0x28, 0xC8, 0x7A, 0x85, 0x10 |
mluis | 0:a2929fa6e4f0 | 18 | }; |
mluis | 0:a2929fa6e4f0 | 19 | |
tamberg | 5:1f8829bd11ed | 20 | static uint8_t ArtSKey[] = { |
tamberg | 4:f83ad3eee79d | 21 | 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, |
tamberg | 4:f83ad3eee79d | 22 | 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF |
tamberg | 11:0cc0f7b84c72 | 23 | // 0xE9, 0x4D, 0x61, 0x65, 0x7D, 0x9C, 0xF7, 0xB2, |
tamberg | 11:0cc0f7b84c72 | 24 | // 0x6F, 0xB6, 0xED, 0x68, 0xF1, 0xD5, 0xD7, 0xA9 |
mluis | 0:a2929fa6e4f0 | 25 | }; |
mluis | 0:a2929fa6e4f0 | 26 | |
tamberg | 9:fdd150f9db9e | 27 | osjob_t initjob; |
mluis | 0:a2929fa6e4f0 | 28 | osjob_t sendFrameJob; |
tamberg | 9:fdd150f9db9e | 29 | u1_t n = 0; |
mluis | 0:a2929fa6e4f0 | 30 | |
tamberg | 7:4adfa7248a0b | 31 | void os_getArtEui (uint8_t *buf) {} // ignore |
tamberg | 7:4adfa7248a0b | 32 | void os_getDevEui (uint8_t *buf) {} // ignore |
tamberg | 7:4adfa7248a0b | 33 | void os_getDevKey (uint8_t *buf) {} // ignore |
mluis | 0:a2929fa6e4f0 | 34 | |
tamberg | 9:fdd150f9db9e | 35 | void onSendFrame (osjob_t* j) { |
tamberg | 11:0cc0f7b84c72 | 36 | int frameLength = 32; // max 51? |
tamberg | 11:0cc0f7b84c72 | 37 | for (int i = 0; i < frameLength; i++) { |
tamberg | 10:576f275cfc14 | 38 | LMIC.frame[i] = n++; // or any other payload |
tamberg | 10:576f275cfc14 | 39 | } |
tamberg | 11:0cc0f7b84c72 | 40 | // LMIC.frame[0] = 'H'; |
tamberg | 11:0cc0f7b84c72 | 41 | // LMIC.frame[1] = 'e'; |
tamberg | 11:0cc0f7b84c72 | 42 | // LMIC.frame[2] = 'l'; |
tamberg | 11:0cc0f7b84c72 | 43 | // LMIC.frame[3] = 'l'; |
tamberg | 11:0cc0f7b84c72 | 44 | // LMIC.frame[4] = 'o'; |
tamberg | 9:fdd150f9db9e | 45 | int result = LMIC_setTxData2(LORAWAN_APP_PORT, LMIC.frame, |
tamberg | 11:0cc0f7b84c72 | 46 | frameLength, LORAWAN_CONFIRMED_MSG_ON); // calls onEvent() |
mluis | 0:a2929fa6e4f0 | 47 | } |
mluis | 0:a2929fa6e4f0 | 48 | |
tamberg | 9:fdd150f9db9e | 49 | void onInit (osjob_t* j) { |
tamberg | 9:fdd150f9db9e | 50 | LMIC_reset(); |
tamberg | 5:1f8829bd11ed | 51 | LMIC_setAdrMode(LORAWAN_ADR_ON); |
tamberg | 9:fdd150f9db9e | 52 | LMIC_setDrTxpow(DR_SF12, 14); |
tamberg | 9:fdd150f9db9e | 53 | LMIC_setSession(LORAWAN_NET_ID, LORAWAN_DEV_ADDR, NwkSKey, ArtSKey); |
tamberg | 5:1f8829bd11ed | 54 | onSendFrame(NULL); |
mluis | 1:60184eda0066 | 55 | } |
mluis | 1:60184eda0066 | 56 | |
tamberg | 8:747796516a2f | 57 | void onEvent (ev_t ev) { // called by lmic.cpp, see also oslmic.h |
tamberg | 11:0cc0f7b84c72 | 58 | debug_event(ev); |
tamberg | 9:fdd150f9db9e | 59 | if (ev == EV_TXCOMPLETE) { |
tamberg | 8:747796516a2f | 60 | os_setCallback(&sendFrameJob, onSendFrame); |
tamberg | 8:747796516a2f | 61 | } |
tamberg | 8:747796516a2f | 62 | } |
tamberg | 8:747796516a2f | 63 | |
tamberg | 6:fbfc95b5c979 | 64 | int main (void) { |
tamberg | 4:f83ad3eee79d | 65 | debug_str("main\r\n"); |
tamberg | 5:1f8829bd11ed | 66 | os_init(); |
tamberg | 5:1f8829bd11ed | 67 | os_setCallback(&initjob, onInit); |
tamberg | 5:1f8829bd11ed | 68 | os_runloop(); // blocking |
tamberg | 8:747796516a2f | 69 | } |