Temperature reading using NUCLEO-L152RE microcontroller and Grove – Temperature&Humidity Sensor Pro.

Dependencies:   DHT LMiC SX1276Lib mbed

Fork of LoRaWAN_send_text by Thomas Amberg

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?

UserRevisionLine numberNew 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 }