Ina hackathon 2nd

Dependencies:   ADXL345_I2C Chainable_RGB_LED EEAB-P1 MMA8652FC Sht31 TinyGPS mbed

Fork of ina-hack-test by dondoko don

Committer:
koyo_take
Date:
Sat Jun 24 23:42:01 2017 +0000
Revision:
1:195da8230785
Parent:
0:97a57be77fbb
Child:
3:1df2b5938eb7
add samples to handle sensors

Who changed what in which revision?

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