Full application
Dependencies: mbed libTCS34725 lib_LoRaWAN
main.cpp@7:d74e195dfa93, 2020-01-28 (annotated)
- Committer:
- dsubotic
- Date:
- Tue Jan 28 09:55:58 2020 +0000
- Revision:
- 7:d74e195dfa93
- Parent:
- 6:6ae3c5bca801
STEM 2020 application; Serial monitoring, LED, BTN, Lightsensor, LoRAWAN to TTN
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
dsubotic | 0:1cadcdcf4521 | 1 | #include "mbed.h" |
dsubotic | 3:67413b100ac3 | 2 | #include "TCS34725.h" |
dsubotic | 7:d74e195dfa93 | 3 | #include "LoRaWAN.h" |
dsubotic | 0:1cadcdcf4521 | 4 | |
dsubotic | 2:7040e447d0df | 5 | InterruptIn button1(PG_0); |
dsubotic | 4:5596b326cd34 | 6 | InterruptIn button2(PG_1); |
dsubotic | 2:7040e447d0df | 7 | Serial pc(USBTX, USBRX); |
dsubotic | 2:7040e447d0df | 8 | DigitalOut ledRED(PD_14); |
dsubotic | 4:5596b326cd34 | 9 | DigitalOut ledGreen(PB_0); |
dsubotic | 4:5596b326cd34 | 10 | DigitalOut ledBlue(PD_15); |
dsubotic | 0:1cadcdcf4521 | 11 | |
dsubotic | 7:d74e195dfa93 | 12 | TCS34725 colorSens(PB_9,PB_8); |
dsubotic | 7:d74e195dfa93 | 13 | LoRaWAN OCTA_LoRa(PC_12, PD_2); |
dsubotic | 7:d74e195dfa93 | 14 | |
dsubotic | 0:1cadcdcf4521 | 15 | double delay = 0.5; // 500 ms |
dsubotic | 7:d74e195dfa93 | 16 | uint16_t r,g,b,c; |
dsubotic | 0:1cadcdcf4521 | 17 | |
dsubotic | 2:7040e447d0df | 18 | void BTN1pressed() |
dsubotic | 0:1cadcdcf4521 | 19 | { |
dsubotic | 0:1cadcdcf4521 | 20 | delay = 0.1; // 100 ms |
dsubotic | 7:d74e195dfa93 | 21 | |
dsubotic | 0:1cadcdcf4521 | 22 | } |
dsubotic | 0:1cadcdcf4521 | 23 | |
dsubotic | 2:7040e447d0df | 24 | void BTN1released() |
dsubotic | 0:1cadcdcf4521 | 25 | { |
dsubotic | 0:1cadcdcf4521 | 26 | delay = 0.5; // 500 ms |
dsubotic | 0:1cadcdcf4521 | 27 | } |
dsubotic | 0:1cadcdcf4521 | 28 | |
dsubotic | 4:5596b326cd34 | 29 | void BTN2pressed() |
dsubotic | 4:5596b326cd34 | 30 | { |
dsubotic | 4:5596b326cd34 | 31 | //Andere code nodig |
dsubotic | 7:d74e195dfa93 | 32 | |
dsubotic | 4:5596b326cd34 | 33 | } |
dsubotic | 4:5596b326cd34 | 34 | |
dsubotic | 4:5596b326cd34 | 35 | void BTN2released() |
dsubotic | 4:5596b326cd34 | 36 | { |
dsubotic | 7:d74e195dfa93 | 37 | char data[50]; |
dsubotic | 7:d74e195dfa93 | 38 | char msg[25]= "AT+SENDB="; |
dsubotic | 7:d74e195dfa93 | 39 | sprintf(msg+9, "%04X", r); |
dsubotic | 7:d74e195dfa93 | 40 | sprintf(msg+13, "%04X", g); |
dsubotic | 7:d74e195dfa93 | 41 | sprintf(msg+17, "%04X", b); |
dsubotic | 7:d74e195dfa93 | 42 | sprintf(msg+21, "%04X", c); |
dsubotic | 7:d74e195dfa93 | 43 | bool ok = OCTA_LoRa.sendMessage(msg); |
dsubotic | 7:d74e195dfa93 | 44 | OCTA_LoRa.recieveData(data, 19); // Read data |
dsubotic | 7:d74e195dfa93 | 45 | wait(0.2); |
dsubotic | 7:d74e195dfa93 | 46 | pc.printf("Received:%s \r\n", data); |
dsubotic | 7:d74e195dfa93 | 47 | |
dsubotic | 4:5596b326cd34 | 48 | } |
dsubotic | 4:5596b326cd34 | 49 | |
dsubotic | 0:1cadcdcf4521 | 50 | int main() |
dsubotic | 0:1cadcdcf4521 | 51 | { |
dsubotic | 7:d74e195dfa93 | 52 | |
dsubotic | 7:d74e195dfa93 | 53 | //char data[202]; |
dsubotic | 3:67413b100ac3 | 54 | |
dsubotic | 2:7040e447d0df | 55 | // Assign functions to button1 |
dsubotic | 2:7040e447d0df | 56 | button1.fall(&BTN1pressed); |
dsubotic | 2:7040e447d0df | 57 | button1.rise(&BTN1released); |
dsubotic | 2:7040e447d0df | 58 | |
dsubotic | 4:5596b326cd34 | 59 | // Assign functions to button2 |
dsubotic | 4:5596b326cd34 | 60 | button2.fall(&BTN2pressed); |
dsubotic | 4:5596b326cd34 | 61 | button2.rise(&BTN2released); |
dsubotic | 4:5596b326cd34 | 62 | |
dsubotic | 5:c64f313ca878 | 63 | //Turn off RGB led |
dsubotic | 5:c64f313ca878 | 64 | ledRED = 1; |
dsubotic | 5:c64f313ca878 | 65 | ledGreen = 1; |
dsubotic | 5:c64f313ca878 | 66 | ledBlue = 1; |
dsubotic | 5:c64f313ca878 | 67 | |
dsubotic | 2:7040e447d0df | 68 | //serial communication |
dsubotic | 2:7040e447d0df | 69 | pc.baud(115200); |
dsubotic | 7:d74e195dfa93 | 70 | pc.printf("Welcome at University of Antwerp #STEM2020 \r\n"); |
dsubotic | 3:67413b100ac3 | 71 | |
dsubotic | 7:d74e195dfa93 | 72 | //initialization of the color sensor |
dsubotic | 3:67413b100ac3 | 73 | if(!colorSens.init(0xD5, 0x03)){ |
dsubotic | 7:d74e195dfa93 | 74 | pc.printf("ERROR: SENSOR\r\n"); //check to see if i2c is responding |
dsubotic | 3:67413b100ac3 | 75 | } |
dsubotic | 7:d74e195dfa93 | 76 | //initialization of the LoRaWAN module |
dsubotic | 7:d74e195dfa93 | 77 | if(!OCTA_LoRa.init()){ |
dsubotic | 7:d74e195dfa93 | 78 | pc.printf("ERROR: LoRaWAN module\r\n"); |
dsubotic | 7:d74e195dfa93 | 79 | } |
dsubotic | 7:d74e195dfa93 | 80 | |
dsubotic | 0:1cadcdcf4521 | 81 | |
dsubotic | 0:1cadcdcf4521 | 82 | while (1) { |
dsubotic | 3:67413b100ac3 | 83 | colorSens.getColor(r,g,b,c); //pass variables by reference... |
dsubotic | 7:d74e195dfa93 | 84 | pc.printf("DATA: Red: %d Green: %d Blue: %d Clear: %d \r\n", r, g, b, c); // Send sensor data on USB cable to PC |
dsubotic | 7:d74e195dfa93 | 85 | ledRED = !ledRED; //Toggle LED |
dsubotic | 0:1cadcdcf4521 | 86 | wait(delay); |
dsubotic | 0:1cadcdcf4521 | 87 | } |
dsubotic | 0:1cadcdcf4521 | 88 | } |