![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
send GPS data via LoRaWAN
Dependencies: TinyGPS mbed ADXL345_I2C Sht31
main.cpp@2:829187d4fd5e, 2017-06-25 (annotated)
- Committer:
- koyo_take
- Date:
- Sun Jun 25 00:04:16 2017 +0000
- Revision:
- 2:829187d4fd5e
- Parent:
- 1:195da8230785
add samples to use sensors
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
koyo_take | 0:97a57be77fbb | 1 | #include "mbed.h" |
koyo_take | 0:97a57be77fbb | 2 | #include "TinyGPS.h" |
koyo_take | 0:97a57be77fbb | 3 | #include "Eeabp1.h" |
koyo_take | 0:97a57be77fbb | 4 | |
koyo_take | 1:195da8230785 | 5 | //#define TEST_ANALOG |
koyo_take | 1:195da8230785 | 6 | #define TEST_TEMP_HUMID |
koyo_take | 1:195da8230785 | 7 | #define TEST_ACC |
koyo_take | 1:195da8230785 | 8 | |
koyo_take | 1:195da8230785 | 9 | #if defined(TEST_DIGITAL_IN_INTTERUPT) |
koyo_take | 1:195da8230785 | 10 | Eeabp1 *gp; |
koyo_take | 1:195da8230785 | 11 | bool led_on = true; |
koyo_take | 1:195da8230785 | 12 | |
koyo_take | 1:195da8230785 | 13 | void flip() { |
koyo_take | 1:195da8230785 | 14 | if (led_on) |
koyo_take | 1:195da8230785 | 15 | gp->setLedState(LED_OFF); |
koyo_take | 1:195da8230785 | 16 | else |
koyo_take | 1:195da8230785 | 17 | gp->setLedState(LED_ON); |
koyo_take | 1:195da8230785 | 18 | led_on = !led_on; |
koyo_take | 1:195da8230785 | 19 | } |
koyo_take | 1:195da8230785 | 20 | #endif /* defined(TEST_DIGITAL_IN_INTTERUPT) */ |
koyo_take | 1:195da8230785 | 21 | |
koyo_take | 0:97a57be77fbb | 22 | int main(void) |
koyo_take | 0:97a57be77fbb | 23 | { |
koyo_take | 0:97a57be77fbb | 24 | Eeabp1 board; |
koyo_take | 0:97a57be77fbb | 25 | int ret = 0; |
koyo_take | 0:97a57be77fbb | 26 | |
koyo_take | 1:195da8230785 | 27 | #if defined(TEST_DIGITAL_IN_INTTERUPT) |
koyo_take | 1:195da8230785 | 28 | gp = &board; |
koyo_take | 1:195da8230785 | 29 | led_on = true; |
koyo_take | 1:195da8230785 | 30 | #endif /* defined(TEST_DIGITAL_IN_INTTERUPT) */ |
koyo_take | 1:195da8230785 | 31 | |
koyo_take | 1:195da8230785 | 32 | board.setLedState(LED_ON); |
koyo_take | 0:97a57be77fbb | 33 | board.debug("Hello ina-hack!\r\n"); |
koyo_take | 0:97a57be77fbb | 34 | |
koyo_take | 0:97a57be77fbb | 35 | board.setGrovePower(true); |
koyo_take | 1:195da8230785 | 36 | #if defined(TEST_DIGITAL_OUT) || defined(TEST_DIGITAL_IN) || defined(TEST_DIGITAL_IN_INTTERUPT) |
koyo_take | 1:195da8230785 | 37 | board.setGrovePortType(GROVE_CH1, GROVE_DIO); |
koyo_take | 1:195da8230785 | 38 | board.setGrovePortType(GROVE_CH2, GROVE_DIO); |
koyo_take | 1:195da8230785 | 39 | #endif |
koyo_take | 1:195da8230785 | 40 | #if defined(TEST_DIGITAL_OUT) |
koyo_take | 1:195da8230785 | 41 | board.setGroveDioDirection(GROVE_CH1, GROVE_DIO_OUT); |
koyo_take | 1:195da8230785 | 42 | board.setGroveDioDirection(GROVE_CH2, GROVE_DIO_OUT); |
koyo_take | 1:195da8230785 | 43 | #endif /* defined(TEST_DIGITAL_OUT) */ |
koyo_take | 1:195da8230785 | 44 | #if defined(TEST_DIGITAL_IN) |
koyo_take | 1:195da8230785 | 45 | board.setGroveDioDirection(GROVE_CH1, GROVE_DIO_IN); |
koyo_take | 1:195da8230785 | 46 | board.setGroveDioDirection(GROVE_CH2, GROVE_DIO_IN); |
koyo_take | 1:195da8230785 | 47 | #endif /* defined(TEST_DIGITAL_IN) */ |
koyo_take | 1:195da8230785 | 48 | #if defined(TEST_DIGITAL_IN_INTTERUPT) |
koyo_take | 1:195da8230785 | 49 | board.setGroveDioDirection(GROVE_CH1, GROVE_DIO_IN, flip); |
koyo_take | 1:195da8230785 | 50 | board.setGroveDioDirection(GROVE_CH2, GROVE_DIO_IN, flip); |
koyo_take | 1:195da8230785 | 51 | #endif /* defined(TEST_DIGITAL_IN_INTTERUPT) */ |
koyo_take | 1:195da8230785 | 52 | #if defined(TEST_ANALOG) |
koyo_take | 1:195da8230785 | 53 | board.setGrovePortType(GROVE_CH1, GROVE_ANALOG); |
koyo_take | 1:195da8230785 | 54 | board.setGrovePortType(GROVE_CH2, GROVE_ANALOG); |
koyo_take | 1:195da8230785 | 55 | #endif /* defined(TEST_ANALOG) */ |
koyo_take | 1:195da8230785 | 56 | |
koyo_take | 1:195da8230785 | 57 | #if defined(TEST_LORA) |
koyo_take | 0:97a57be77fbb | 58 | ret = board.setLoRaPower(true); |
koyo_take | 0:97a57be77fbb | 59 | if (ret != 0) { |
koyo_take | 0:97a57be77fbb | 60 | board.debug("error %d\r\n", ret); |
koyo_take | 0:97a57be77fbb | 61 | } |
koyo_take | 1:195da8230785 | 62 | #endif /* defined(TEST_LORA) */ |
koyo_take | 1:195da8230785 | 63 | #if defined(TEST_TEMP_HUMID) |
koyo_take | 1:195da8230785 | 64 | ret = board.enableTempHumidSensor(); |
koyo_take | 1:195da8230785 | 65 | if (ret != 0) |
koyo_take | 1:195da8230785 | 66 | board.debug("error %d\r\n", ret); |
koyo_take | 1:195da8230785 | 67 | #endif /* TEST_TEMP_HUMID */ |
koyo_take | 1:195da8230785 | 68 | #if defined(TEST_ACC) |
koyo_take | 1:195da8230785 | 69 | ret = board.enableAccelerometer(); |
koyo_take | 1:195da8230785 | 70 | if (ret != 0) |
koyo_take | 1:195da8230785 | 71 | board.debug("error %d\r\n", ret); |
koyo_take | 1:195da8230785 | 72 | #endif /* defined(TEST_ACC) */ |
koyo_take | 0:97a57be77fbb | 73 | |
koyo_take | 1:195da8230785 | 74 | #if defined(TEST_LORA) |
koyo_take | 0:97a57be77fbb | 75 | int i = 0; |
koyo_take | 1:195da8230785 | 76 | #endif /* defined(TEST_LORA) */ |
koyo_take | 1:195da8230785 | 77 | #if defined(TEST_DIGITAL_OUT) |
koyo_take | 1:195da8230785 | 78 | bool on = true; |
koyo_take | 1:195da8230785 | 79 | #endif /* defined(TEST_DIGITAL_OUT) */ |
koyo_take | 0:97a57be77fbb | 80 | do { |
koyo_take | 1:195da8230785 | 81 | wait(2); |
koyo_take | 0:97a57be77fbb | 82 | board.loop(); |
koyo_take | 1:195da8230785 | 83 | #if defined(TEST_DIGITAL_OUT) |
koyo_take | 1:195da8230785 | 84 | if (on) { |
koyo_take | 1:195da8230785 | 85 | board.setGroveDio(GROVE_CH1, GROVE_DIO_HIGH); |
koyo_take | 1:195da8230785 | 86 | board.setGroveDio(GROVE_CH2, GROVE_DIO_LOW); |
koyo_take | 1:195da8230785 | 87 | } else { |
koyo_take | 1:195da8230785 | 88 | board.setGroveDio(GROVE_CH1, GROVE_DIO_LOW); |
koyo_take | 1:195da8230785 | 89 | board.setGroveDio(GROVE_CH2, GROVE_DIO_HIGH); |
koyo_take | 1:195da8230785 | 90 | } |
koyo_take | 1:195da8230785 | 91 | on = !on; |
koyo_take | 1:195da8230785 | 92 | #endif /* defined(TEST_DIGITAL_OUT) */ |
koyo_take | 1:195da8230785 | 93 | #if defined(TEST_DIGITAL_IN) |
koyo_take | 1:195da8230785 | 94 | board.debug("------------\r\n"); |
koyo_take | 1:195da8230785 | 95 | board.debug("P1 S1: %d\r\n", board.getGroveDio(GROVE_CH1, GROVE_SIG1)); |
koyo_take | 1:195da8230785 | 96 | board.debug("P1 S2: %d\r\n", board.getGroveDio(GROVE_CH1, GROVE_SIG2)); |
koyo_take | 1:195da8230785 | 97 | board.debug("P2 S1: %d\r\n", board.getGroveDio(GROVE_CH2, GROVE_SIG1)); |
koyo_take | 1:195da8230785 | 98 | board.debug("P2 S2: %d\r\n", board.getGroveDio(GROVE_CH2, GROVE_SIG2)); |
koyo_take | 1:195da8230785 | 99 | #endif /* defined(TEST_DIGITAL_IN) */ |
koyo_take | 1:195da8230785 | 100 | #if defined(TEST_ANALOG) |
koyo_take | 1:195da8230785 | 101 | board.debug("------------\r\n"); |
koyo_take | 1:195da8230785 | 102 | board.debug("P1 S1: %2.2f\r\n", board.getGroveAnalog(GROVE_CH1, GROVE_SIG1)); |
koyo_take | 1:195da8230785 | 103 | board.debug("P1 S2: %2.2f\r\n", board.getGroveAnalog(GROVE_CH1, GROVE_SIG2)); |
koyo_take | 1:195da8230785 | 104 | board.debug("P2 S1: %2.2f\r\n", board.getGroveAnalog(GROVE_CH2, GROVE_SIG1)); |
koyo_take | 1:195da8230785 | 105 | board.debug("P2 S2: %2.2f\r\n", board.getGroveAnalog(GROVE_CH2, GROVE_SIG2)); |
koyo_take | 1:195da8230785 | 106 | #endif /* defined(TEST_ANALOG) */ |
koyo_take | 1:195da8230785 | 107 | #if defined(TEST_TEMP_HUMID) |
koyo_take | 1:195da8230785 | 108 | board.debug("------------\r\n"); |
koyo_take | 1:195da8230785 | 109 | board.debug("Temp: %2.2f, Humid: %2.2f\r\n", board.getTemp(), board.getHumid()); |
koyo_take | 1:195da8230785 | 110 | #endif /* defined(TEST_ANALOG) */ |
koyo_take | 1:195da8230785 | 111 | #if defined(TEST_ACC) |
koyo_take | 1:195da8230785 | 112 | int x, y, z; |
koyo_take | 1:195da8230785 | 113 | board.getAcc(&x, &y, &z); |
koyo_take | 1:195da8230785 | 114 | board.debug("------------\r\n"); |
koyo_take | 1:195da8230785 | 115 | board.debug("X: %d, Y: %d, Z: %d\r\n", x, y, z); |
koyo_take | 1:195da8230785 | 116 | #endif /* defined(TEST_ACC) */ |
koyo_take | 1:195da8230785 | 117 | |
koyo_take | 1:195da8230785 | 118 | #if defined(TEST_LORA) |
koyo_take | 0:97a57be77fbb | 119 | board.sendLoRaString("hello %d", i++); |
koyo_take | 1:195da8230785 | 120 | #endif /* defined(TEST_LORA) */ |
koyo_take | 0:97a57be77fbb | 121 | } while(true); |
koyo_take | 0:97a57be77fbb | 122 | } |