send GPS data via LoRaWAN
Dependencies: TinyGPS mbed ADXL345_I2C Sht31
Diff: main.cpp
- Revision:
- 1:195da8230785
- Parent:
- 0:97a57be77fbb
--- a/main.cpp Sat Jun 24 03:45:00 2017 +0000 +++ b/main.cpp Sat Jun 24 23:42:01 2017 +0000 @@ -2,25 +2,121 @@ #include "TinyGPS.h" #include "Eeabp1.h" +//#define TEST_ANALOG +#define TEST_TEMP_HUMID +#define TEST_ACC + +#if defined(TEST_DIGITAL_IN_INTTERUPT) +Eeabp1 *gp; +bool led_on = true; + +void flip() { + if (led_on) + gp->setLedState(LED_OFF); + else + gp->setLedState(LED_ON); + led_on = !led_on; +} +#endif /* defined(TEST_DIGITAL_IN_INTTERUPT) */ + int main(void) { Eeabp1 board; int ret = 0; - board.setLedState(LED_BLINK_FAST); +#if defined(TEST_DIGITAL_IN_INTTERUPT) + gp = &board; + led_on = true; +#endif /* defined(TEST_DIGITAL_IN_INTTERUPT) */ + + board.setLedState(LED_ON); board.debug("Hello ina-hack!\r\n"); board.setGrovePower(true); +#if defined(TEST_DIGITAL_OUT) || defined(TEST_DIGITAL_IN) || defined(TEST_DIGITAL_IN_INTTERUPT) + board.setGrovePortType(GROVE_CH1, GROVE_DIO); + board.setGrovePortType(GROVE_CH2, GROVE_DIO); +#endif +#if defined(TEST_DIGITAL_OUT) + board.setGroveDioDirection(GROVE_CH1, GROVE_DIO_OUT); + board.setGroveDioDirection(GROVE_CH2, GROVE_DIO_OUT); +#endif /* defined(TEST_DIGITAL_OUT) */ +#if defined(TEST_DIGITAL_IN) + board.setGroveDioDirection(GROVE_CH1, GROVE_DIO_IN); + board.setGroveDioDirection(GROVE_CH2, GROVE_DIO_IN); +#endif /* defined(TEST_DIGITAL_IN) */ +#if defined(TEST_DIGITAL_IN_INTTERUPT) + board.setGroveDioDirection(GROVE_CH1, GROVE_DIO_IN, flip); + board.setGroveDioDirection(GROVE_CH2, GROVE_DIO_IN, flip); +#endif /* defined(TEST_DIGITAL_IN_INTTERUPT) */ +#if defined(TEST_ANALOG) + board.setGrovePortType(GROVE_CH1, GROVE_ANALOG); + board.setGrovePortType(GROVE_CH2, GROVE_ANALOG); +#endif /* defined(TEST_ANALOG) */ + +#if defined(TEST_LORA) ret = board.setLoRaPower(true); if (ret != 0) { -// board.setLedState(LED_OFF); board.debug("error %d\r\n", ret); } +#endif /* defined(TEST_LORA) */ +#if defined(TEST_TEMP_HUMID) + ret = board.enableTempHumidSensor(); + if (ret != 0) + board.debug("error %d\r\n", ret); +#endif /* TEST_TEMP_HUMID */ +#if defined(TEST_ACC) + ret = board.enableAccelerometer(); + if (ret != 0) + board.debug("error %d\r\n", ret); +#endif /* defined(TEST_ACC) */ +#if defined(TEST_LORA) int i = 0; +#endif /* defined(TEST_LORA) */ +#if defined(TEST_DIGITAL_OUT) + bool on = true; +#endif /* defined(TEST_DIGITAL_OUT) */ do { - wait(10); + wait(2); board.loop(); +#if defined(TEST_DIGITAL_OUT) + if (on) { + board.setGroveDio(GROVE_CH1, GROVE_DIO_HIGH); + board.setGroveDio(GROVE_CH2, GROVE_DIO_LOW); + } else { + board.setGroveDio(GROVE_CH1, GROVE_DIO_LOW); + board.setGroveDio(GROVE_CH2, GROVE_DIO_HIGH); + } + on = !on; +#endif /* defined(TEST_DIGITAL_OUT) */ +#if defined(TEST_DIGITAL_IN) + board.debug("------------\r\n"); + board.debug("P1 S1: %d\r\n", board.getGroveDio(GROVE_CH1, GROVE_SIG1)); + board.debug("P1 S2: %d\r\n", board.getGroveDio(GROVE_CH1, GROVE_SIG2)); + board.debug("P2 S1: %d\r\n", board.getGroveDio(GROVE_CH2, GROVE_SIG1)); + board.debug("P2 S2: %d\r\n", board.getGroveDio(GROVE_CH2, GROVE_SIG2)); +#endif /* defined(TEST_DIGITAL_IN) */ +#if defined(TEST_ANALOG) + board.debug("------------\r\n"); + board.debug("P1 S1: %2.2f\r\n", board.getGroveAnalog(GROVE_CH1, GROVE_SIG1)); + board.debug("P1 S2: %2.2f\r\n", board.getGroveAnalog(GROVE_CH1, GROVE_SIG2)); + board.debug("P2 S1: %2.2f\r\n", board.getGroveAnalog(GROVE_CH2, GROVE_SIG1)); + board.debug("P2 S2: %2.2f\r\n", board.getGroveAnalog(GROVE_CH2, GROVE_SIG2)); +#endif /* defined(TEST_ANALOG) */ +#if defined(TEST_TEMP_HUMID) + board.debug("------------\r\n"); + board.debug("Temp: %2.2f, Humid: %2.2f\r\n", board.getTemp(), board.getHumid()); +#endif /* defined(TEST_ANALOG) */ +#if defined(TEST_ACC) + int x, y, z; + board.getAcc(&x, &y, &z); + board.debug("------------\r\n"); + board.debug("X: %d, Y: %d, Z: %d\r\n", x, y, z); +#endif /* defined(TEST_ACC) */ + +#if defined(TEST_LORA) board.sendLoRaString("hello %d", i++); +#endif /* defined(TEST_LORA) */ } while(true); } \ No newline at end of file