Application that measures the temperature and humidity every 60s and sends it to a LoRa Gateway.

Dependencies:   DHT LMiC SX1276Lib mbed

Committer:
Maarten_BE
Date:
Thu Apr 07 13:56:37 2016 +0000
Revision:
0:068b9b32e9e8
Initial commit of temperature and humidity application that sends the measured values every 60s to a LoRa Gateway

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Maarten_BE 0:068b9b32e9e8 1 /*******************************************************************************
Maarten_BE 0:068b9b32e9e8 2 * Copyright (c) 2014-2015 IBM Corporation.
Maarten_BE 0:068b9b32e9e8 3 * All rights reserved. This program and the accompanying materials
Maarten_BE 0:068b9b32e9e8 4 * are made available under the terms of the Eclipse Public License v1.0
Maarten_BE 0:068b9b32e9e8 5 * which accompanies this distribution, and is available at
Maarten_BE 0:068b9b32e9e8 6 * http://www.eclipse.org/legal/epl-v10.html
Maarten_BE 0:068b9b32e9e8 7 *
Maarten_BE 0:068b9b32e9e8 8 * Contributors:
Maarten_BE 0:068b9b32e9e8 9 * IBM Zurich Research Lab - initial API, implementation and documentation
Maarten_BE 0:068b9b32e9e8 10 * Semtech Apps Team - Adapted for MBED
Maarten_BE 0:068b9b32e9e8 11 *******************************************************************************/
Maarten_BE 0:068b9b32e9e8 12 #include <stdio.h>
Maarten_BE 0:068b9b32e9e8 13 #include "lmic.h"
Maarten_BE 0:068b9b32e9e8 14 #include "debug.h"
Maarten_BE 0:068b9b32e9e8 15
Maarten_BE 0:068b9b32e9e8 16 void debug_init () {
Maarten_BE 0:068b9b32e9e8 17 // print banner
Maarten_BE 0:068b9b32e9e8 18 debug_str("\r\n============== DEBUG STARTED ==============\r\n");
Maarten_BE 0:068b9b32e9e8 19 }
Maarten_BE 0:068b9b32e9e8 20
Maarten_BE 0:068b9b32e9e8 21 void debug_led (u1_t val) {
Maarten_BE 0:068b9b32e9e8 22 debug_val( "LED = ", val );
Maarten_BE 0:068b9b32e9e8 23 }
Maarten_BE 0:068b9b32e9e8 24
Maarten_BE 0:068b9b32e9e8 25 void debug_char (u1_t c) {
Maarten_BE 0:068b9b32e9e8 26 fprintf(stderr, "%c", c );
Maarten_BE 0:068b9b32e9e8 27 }
Maarten_BE 0:068b9b32e9e8 28
Maarten_BE 0:068b9b32e9e8 29 void debug_hex (u1_t b) {
Maarten_BE 0:068b9b32e9e8 30 fprintf(stderr, "%02X", b );
Maarten_BE 0:068b9b32e9e8 31 }
Maarten_BE 0:068b9b32e9e8 32
Maarten_BE 0:068b9b32e9e8 33 void debug_buf (const u1_t* buf, u2_t len) {
Maarten_BE 0:068b9b32e9e8 34 while( len-- ) {
Maarten_BE 0:068b9b32e9e8 35 debug_hex( *buf++ );
Maarten_BE 0:068b9b32e9e8 36 debug_char( ' ' );
Maarten_BE 0:068b9b32e9e8 37 }
Maarten_BE 0:068b9b32e9e8 38 debug_char( '\r' );
Maarten_BE 0:068b9b32e9e8 39 debug_char( '\n' );
Maarten_BE 0:068b9b32e9e8 40 }
Maarten_BE 0:068b9b32e9e8 41
Maarten_BE 0:068b9b32e9e8 42 void debug_uint (u4_t v) {
Maarten_BE 0:068b9b32e9e8 43 for( s1_t n = 24; n >= 0; n -= 8 ) {
Maarten_BE 0:068b9b32e9e8 44 debug_hex( v >> n );
Maarten_BE 0:068b9b32e9e8 45 }
Maarten_BE 0:068b9b32e9e8 46 }
Maarten_BE 0:068b9b32e9e8 47
Maarten_BE 0:068b9b32e9e8 48 void debug_str (const u1_t* str) {
Maarten_BE 0:068b9b32e9e8 49 while( *str ) {
Maarten_BE 0:068b9b32e9e8 50 debug_char( *str++ );
Maarten_BE 0:068b9b32e9e8 51 }
Maarten_BE 0:068b9b32e9e8 52 }
Maarten_BE 0:068b9b32e9e8 53
Maarten_BE 0:068b9b32e9e8 54 void debug_val (const u1_t* label, u4_t val) {
Maarten_BE 0:068b9b32e9e8 55 debug_str( label );
Maarten_BE 0:068b9b32e9e8 56 debug_uint( val );
Maarten_BE 0:068b9b32e9e8 57 debug_char( '\r' );
Maarten_BE 0:068b9b32e9e8 58 debug_char( '\n' );
Maarten_BE 0:068b9b32e9e8 59 }
Maarten_BE 0:068b9b32e9e8 60
Maarten_BE 0:068b9b32e9e8 61 void debug_event (int ev) {
Maarten_BE 0:068b9b32e9e8 62 static const u1_t* evnames[] = {
Maarten_BE 0:068b9b32e9e8 63 [EV_SCAN_TIMEOUT] = "SCAN_TIMEOUT",
Maarten_BE 0:068b9b32e9e8 64 [EV_BEACON_FOUND] = "BEACON_FOUND",
Maarten_BE 0:068b9b32e9e8 65 [EV_BEACON_MISSED] = "BEACON_MISSED",
Maarten_BE 0:068b9b32e9e8 66 [EV_BEACON_TRACKED] = "BEACON_TRACKED",
Maarten_BE 0:068b9b32e9e8 67 [EV_JOINING] = "JOINING",
Maarten_BE 0:068b9b32e9e8 68 [EV_JOINED] = "JOINED",
Maarten_BE 0:068b9b32e9e8 69 [EV_RFU1] = "RFU1",
Maarten_BE 0:068b9b32e9e8 70 [EV_JOIN_FAILED] = "JOIN_FAILED",
Maarten_BE 0:068b9b32e9e8 71 [EV_REJOIN_FAILED] = "REJOIN_FAILED",
Maarten_BE 0:068b9b32e9e8 72 [EV_TXCOMPLETE] = "TXCOMPLETE",
Maarten_BE 0:068b9b32e9e8 73 [EV_LOST_TSYNC] = "LOST_TSYNC",
Maarten_BE 0:068b9b32e9e8 74 [EV_RESET] = "RESET",
Maarten_BE 0:068b9b32e9e8 75 [EV_RXCOMPLETE] = "RXCOMPLETE",
Maarten_BE 0:068b9b32e9e8 76 [EV_LINK_DEAD] = "LINK_DEAD",
Maarten_BE 0:068b9b32e9e8 77 [EV_LINK_ALIVE] = "LINK_ALIVE",
Maarten_BE 0:068b9b32e9e8 78 };
Maarten_BE 0:068b9b32e9e8 79 debug_str(evnames[ev]);
Maarten_BE 0:068b9b32e9e8 80 debug_char('\r');
Maarten_BE 0:068b9b32e9e8 81 debug_char('\n');
Maarten_BE 0:068b9b32e9e8 82 }