Ina hackathon 2nd

Dependencies:   ADXL345_I2C Chainable_RGB_LED EEAB-P1 MMA8652FC Sht31 TinyGPS mbed

Fork of ina-hack-test by dondoko don

Committer:
sonson
Date:
Wed Aug 09 06:02:07 2017 +0000
Revision:
3:1df2b5938eb7
Parent:
1:195da8230785
Child:
5:09935c0aa297
???????????????

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;
sonson 3:1df2b5938eb7 25
koyo_take 0:97a57be77fbb 26 int ret = 0;
koyo_take 0:97a57be77fbb 27
koyo_take 1:195da8230785 28 #if defined(TEST_DIGITAL_IN_INTTERUPT)
koyo_take 1:195da8230785 29 gp = &board;
koyo_take 1:195da8230785 30 led_on = true;
koyo_take 1:195da8230785 31 #endif /* defined(TEST_DIGITAL_IN_INTTERUPT) */
koyo_take 1:195da8230785 32
koyo_take 1:195da8230785 33 board.setLedState(LED_ON);
koyo_take 0:97a57be77fbb 34 board.debug("Hello ina-hack!\r\n");
koyo_take 0:97a57be77fbb 35
koyo_take 0:97a57be77fbb 36 board.setGrovePower(true);
koyo_take 1:195da8230785 37 #if defined(TEST_DIGITAL_OUT) || defined(TEST_DIGITAL_IN) || defined(TEST_DIGITAL_IN_INTTERUPT)
koyo_take 1:195da8230785 38 board.setGrovePortType(GROVE_CH1, GROVE_DIO);
koyo_take 1:195da8230785 39 board.setGrovePortType(GROVE_CH2, GROVE_DIO);
koyo_take 1:195da8230785 40 #endif
koyo_take 1:195da8230785 41 #if defined(TEST_DIGITAL_OUT)
koyo_take 1:195da8230785 42 board.setGroveDioDirection(GROVE_CH1, GROVE_DIO_OUT);
koyo_take 1:195da8230785 43 board.setGroveDioDirection(GROVE_CH2, GROVE_DIO_OUT);
koyo_take 1:195da8230785 44 #endif /* defined(TEST_DIGITAL_OUT) */
koyo_take 1:195da8230785 45 #if defined(TEST_DIGITAL_IN)
koyo_take 1:195da8230785 46 board.setGroveDioDirection(GROVE_CH1, GROVE_DIO_IN);
koyo_take 1:195da8230785 47 board.setGroveDioDirection(GROVE_CH2, GROVE_DIO_IN);
koyo_take 1:195da8230785 48 #endif /* defined(TEST_DIGITAL_IN) */
koyo_take 1:195da8230785 49 #if defined(TEST_DIGITAL_IN_INTTERUPT)
koyo_take 1:195da8230785 50 board.setGroveDioDirection(GROVE_CH1, GROVE_DIO_IN, flip);
koyo_take 1:195da8230785 51 board.setGroveDioDirection(GROVE_CH2, GROVE_DIO_IN, flip);
koyo_take 1:195da8230785 52 #endif /* defined(TEST_DIGITAL_IN_INTTERUPT) */
koyo_take 1:195da8230785 53 #if defined(TEST_ANALOG)
koyo_take 1:195da8230785 54 board.setGrovePortType(GROVE_CH1, GROVE_ANALOG);
koyo_take 1:195da8230785 55 board.setGrovePortType(GROVE_CH2, GROVE_ANALOG);
koyo_take 1:195da8230785 56 #endif /* defined(TEST_ANALOG) */
koyo_take 1:195da8230785 57
koyo_take 1:195da8230785 58 #if defined(TEST_LORA)
koyo_take 0:97a57be77fbb 59 ret = board.setLoRaPower(true);
koyo_take 0:97a57be77fbb 60 if (ret != 0) {
koyo_take 0:97a57be77fbb 61 board.debug("error %d\r\n", ret);
koyo_take 0:97a57be77fbb 62 }
koyo_take 1:195da8230785 63 #endif /* defined(TEST_LORA) */
koyo_take 1:195da8230785 64 #if defined(TEST_TEMP_HUMID)
koyo_take 1:195da8230785 65 ret = board.enableTempHumidSensor();
koyo_take 1:195da8230785 66 if (ret != 0)
koyo_take 1:195da8230785 67 board.debug("error %d\r\n", ret);
koyo_take 1:195da8230785 68 #endif /* TEST_TEMP_HUMID */
koyo_take 1:195da8230785 69 #if defined(TEST_ACC)
koyo_take 1:195da8230785 70 ret = board.enableAccelerometer();
koyo_take 1:195da8230785 71 if (ret != 0)
koyo_take 1:195da8230785 72 board.debug("error %d\r\n", ret);
koyo_take 1:195da8230785 73 #endif /* defined(TEST_ACC) */
koyo_take 0:97a57be77fbb 74
koyo_take 1:195da8230785 75 #if defined(TEST_LORA)
koyo_take 0:97a57be77fbb 76 int i = 0;
koyo_take 1:195da8230785 77 #endif /* defined(TEST_LORA) */
koyo_take 1:195da8230785 78 #if defined(TEST_DIGITAL_OUT)
koyo_take 1:195da8230785 79 bool on = true;
koyo_take 1:195da8230785 80 #endif /* defined(TEST_DIGITAL_OUT) */
koyo_take 0:97a57be77fbb 81 do {
koyo_take 1:195da8230785 82 wait(2);
koyo_take 0:97a57be77fbb 83 board.loop();
koyo_take 1:195da8230785 84 #if defined(TEST_DIGITAL_OUT)
koyo_take 1:195da8230785 85 if (on) {
koyo_take 1:195da8230785 86 board.setGroveDio(GROVE_CH1, GROVE_DIO_HIGH);
koyo_take 1:195da8230785 87 board.setGroveDio(GROVE_CH2, GROVE_DIO_LOW);
koyo_take 1:195da8230785 88 } else {
koyo_take 1:195da8230785 89 board.setGroveDio(GROVE_CH1, GROVE_DIO_LOW);
koyo_take 1:195da8230785 90 board.setGroveDio(GROVE_CH2, GROVE_DIO_HIGH);
koyo_take 1:195da8230785 91 }
koyo_take 1:195da8230785 92 on = !on;
koyo_take 1:195da8230785 93 #endif /* defined(TEST_DIGITAL_OUT) */
koyo_take 1:195da8230785 94 #if defined(TEST_DIGITAL_IN)
koyo_take 1:195da8230785 95 board.debug("------------\r\n");
koyo_take 1:195da8230785 96 board.debug("P1 S1: %d\r\n", board.getGroveDio(GROVE_CH1, GROVE_SIG1));
koyo_take 1:195da8230785 97 board.debug("P1 S2: %d\r\n", board.getGroveDio(GROVE_CH1, GROVE_SIG2));
koyo_take 1:195da8230785 98 board.debug("P2 S1: %d\r\n", board.getGroveDio(GROVE_CH2, GROVE_SIG1));
koyo_take 1:195da8230785 99 board.debug("P2 S2: %d\r\n", board.getGroveDio(GROVE_CH2, GROVE_SIG2));
koyo_take 1:195da8230785 100 #endif /* defined(TEST_DIGITAL_IN) */
koyo_take 1:195da8230785 101 #if defined(TEST_ANALOG)
koyo_take 1:195da8230785 102 board.debug("------------\r\n");
koyo_take 1:195da8230785 103 board.debug("P1 S1: %2.2f\r\n", board.getGroveAnalog(GROVE_CH1, GROVE_SIG1));
koyo_take 1:195da8230785 104 board.debug("P1 S2: %2.2f\r\n", board.getGroveAnalog(GROVE_CH1, GROVE_SIG2));
koyo_take 1:195da8230785 105 board.debug("P2 S1: %2.2f\r\n", board.getGroveAnalog(GROVE_CH2, GROVE_SIG1));
koyo_take 1:195da8230785 106 board.debug("P2 S2: %2.2f\r\n", board.getGroveAnalog(GROVE_CH2, GROVE_SIG2));
koyo_take 1:195da8230785 107 #endif /* defined(TEST_ANALOG) */
koyo_take 1:195da8230785 108 #if defined(TEST_TEMP_HUMID)
koyo_take 1:195da8230785 109 board.debug("------------\r\n");
koyo_take 1:195da8230785 110 board.debug("Temp: %2.2f, Humid: %2.2f\r\n", board.getTemp(), board.getHumid());
koyo_take 1:195da8230785 111 #endif /* defined(TEST_ANALOG) */
koyo_take 1:195da8230785 112 #if defined(TEST_ACC)
koyo_take 1:195da8230785 113 int x, y, z;
koyo_take 1:195da8230785 114 board.getAcc(&x, &y, &z);
koyo_take 1:195da8230785 115 board.debug("------------\r\n");
koyo_take 1:195da8230785 116 board.debug("X: %d, Y: %d, Z: %d\r\n", x, y, z);
koyo_take 1:195da8230785 117 #endif /* defined(TEST_ACC) */
koyo_take 1:195da8230785 118
koyo_take 1:195da8230785 119 #if defined(TEST_LORA)
koyo_take 0:97a57be77fbb 120 board.sendLoRaString("hello %d", i++);
koyo_take 1:195da8230785 121 #endif /* defined(TEST_LORA) */
koyo_take 0:97a57be77fbb 122 } while(true);
koyo_take 0:97a57be77fbb 123 }