lab9
Dependencies: ATParser MPL3115A2 TSL2561 mbed
main.cpp@6:e7d266de146a, 2018-04-20 (annotated)
- Committer:
- dgutsch
- Date:
- Fri Apr 20 21:47:49 2018 +0000
- Revision:
- 6:e7d266de146a
- Parent:
- 4:44e43da30b0e
- Child:
- 7:bcd2b2b61d9a
she works
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jkrzesni | 0:53659b13e448 | 1 | #include "mbed.h" |
jkrzesni | 0:53659b13e448 | 2 | #include "ATParser.h" |
dgutsch | 6:e7d266de146a | 3 | #include "TSL2561.h" |
jkrzesni | 0:53659b13e448 | 4 | #include "MPL3115A2.h" |
jkrzesni | 1:731cbdf8e672 | 5 | #include <string> |
dgutsch | 6:e7d266de146a | 6 | #include <algorithm> |
jkrzesni | 1:731cbdf8e672 | 7 | #include <iostream> |
jkrzesni | 1:731cbdf8e672 | 8 | |
dgutsch | 3:6494a5d6f2ba | 9 | |
dgutsch | 3:6494a5d6f2ba | 10 | |
jkrzesni | 0:53659b13e448 | 11 | |
dgutsch | 6:e7d266de146a | 12 | MPL3115A2 pressure_sensor(PB_7, PB_6, 0x60); |
jkrzesni | 0:53659b13e448 | 13 | BufferedSerial pc(SERIAL_TX, SERIAL_RX); |
jkrzesni | 0:53659b13e448 | 14 | BufferedSerial dev(PA_9, PA_10); |
jkrzesni | 0:53659b13e448 | 15 | DigitalOut myled(LED1); |
dgutsch | 4:44e43da30b0e | 16 | TSL2561 light_sensor(PB_7, PB_6); // addr: 0x29 since addr is groundedx |
jkrzesni | 0:53659b13e448 | 17 | |
jkrzesni | 1:731cbdf8e672 | 18 | using namespace std; |
dgutsch | 6:e7d266de146a | 19 | |
dgutsch | 6:e7d266de146a | 20 | bool send_it(float * fArray, ATParser *at); |
dgutsch | 6:e7d266de146a | 21 | |
dgutsch | 6:e7d266de146a | 22 | |
dgutsch | 6:e7d266de146a | 23 | int main() { |
dgutsch | 6:e7d266de146a | 24 | |
jkrzesni | 0:53659b13e448 | 25 | double temp, pres; |
jkrzesni | 0:53659b13e448 | 26 | pc.baud(115200); |
jkrzesni | 0:53659b13e448 | 27 | dev.baud(115200); |
jkrzesni | 0:53659b13e448 | 28 | |
dgutsch | 4:44e43da30b0e | 29 | light_sensor.set_timing_reg(0x10); // nominal integration time: 402ms (max in datasheet) |
dgutsch | 4:44e43da30b0e | 30 | |
dgutsch | 3:6494a5d6f2ba | 31 | pc.printf("Begin headaches\r\n"); |
jkrzesni | 0:53659b13e448 | 32 | |
jkrzesni | 0:53659b13e448 | 33 | ATParser at = ATParser(dev, "\r\n"); |
jkrzesni | 0:53659b13e448 | 34 | |
jkrzesni | 0:53659b13e448 | 35 | if (at.send("AT") && at.recv("OK")) |
dgutsch | 3:6494a5d6f2ba | 36 | pc.printf("AT Communication Success\r\n"); |
jkrzesni | 0:53659b13e448 | 37 | |
jkrzesni | 1:731cbdf8e672 | 38 | // Set network name and passphrase |
jkrzesni | 1:731cbdf8e672 | 39 | if (at.send("AT+NI=1,MTCDT-19400691") && at.recv("OK")) |
dgutsch | 3:6494a5d6f2ba | 40 | pc.printf("Network ID specified\r\n"); |
jkrzesni | 1:731cbdf8e672 | 41 | if (at.send("AT+NK=1,MTCDT-19400691") && at.recv("OK")) |
dgutsch | 3:6494a5d6f2ba | 42 | pc.printf("Network Passphrase specified\r\n"); |
dgutsch | 6:e7d266de146a | 43 | |
dgutsch | 4:44e43da30b0e | 44 | if(at.send("AT+FSB=1") && at.recv("OK")) |
dgutsch | 4:44e43da30b0e | 45 | pc.printf("band specified\r\n"); |
dgutsch | 6:e7d266de146a | 46 | |
dgutsch | 4:44e43da30b0e | 47 | bool joined = false; |
dgutsch | 4:44e43da30b0e | 48 | while(!joined) { |
dgutsch | 4:44e43da30b0e | 49 | if (at.send("AT+JOIN") && at.recv("OK")) { |
dgutsch | 3:6494a5d6f2ba | 50 | pc.printf("Joined Network!\r\n"); |
dgutsch | 4:44e43da30b0e | 51 | joined = true; |
dgutsch | 4:44e43da30b0e | 52 | } |
dgutsch | 4:44e43da30b0e | 53 | else { |
dgutsch | 4:44e43da30b0e | 54 | pc.printf("network not joined\r\n"); |
dgutsch | 4:44e43da30b0e | 55 | } |
dgutsch | 3:6494a5d6f2ba | 56 | } |
dgutsch | 3:6494a5d6f2ba | 57 | |
dgutsch | 6:e7d266de146a | 58 | // set big data rate |
dgutsch | 6:e7d266de146a | 59 | if(at.send("AT+TXDR=DR2\r\n") && at.recv("OK")) |
dgutsch | 6:e7d266de146a | 60 | pc.printf("data rate set.\r\n"); |
dgutsch | 6:e7d266de146a | 61 | wait(1); |
dgutsch | 4:44e43da30b0e | 62 | |
dgutsch | 4:44e43da30b0e | 63 | |
dgutsch | 4:44e43da30b0e | 64 | char lightBuff[20]; |
dgutsch | 6:e7d266de146a | 65 | char sendcommand[5000] = "AT+SEND="; |
dgutsch | 6:e7d266de146a | 66 | float pressureCollections[24]; |
dgutsch | 6:e7d266de146a | 67 | float tempCollections[24]; |
jkrzesni | 0:53659b13e448 | 68 | |
dgutsch | 6:e7d266de146a | 69 | int i = 0; |
dgutsch | 6:e7d266de146a | 70 | while(1) { |
dgutsch | 6:e7d266de146a | 71 | // wait |
dgutsch | 6:e7d266de146a | 72 | wait(3600); |
dgutsch | 6:e7d266de146a | 73 | if(i == 24) { |
dgutsch | 6:e7d266de146a | 74 | send_it(&pressureCollections[0], &at); |
dgutsch | 6:e7d266de146a | 75 | send_it(&tempCollections[0], &at); |
dgutsch | 6:e7d266de146a | 76 | i = 0; |
dgutsch | 6:e7d266de146a | 77 | } |
dgutsch | 4:44e43da30b0e | 78 | |
dgutsch | 3:6494a5d6f2ba | 79 | |
dgutsch | 6:e7d266de146a | 80 | //float light_value = light_sensor.lux(); // read light sensor |
dgutsch | 6:e7d266de146a | 81 | temp = pressure_sensor.getTemperature(); |
dgutsch | 6:e7d266de146a | 82 | pres = pressure_sensor.getAltitude(); |
dgutsch | 6:e7d266de146a | 83 | //pc.printf("temp: %f, press: %f\r\n", temp, pres); |
dgutsch | 6:e7d266de146a | 84 | tempCollections[i] = temp; |
dgutsch | 6:e7d266de146a | 85 | pressureCollections[i++] = pres; |
dgutsch | 6:e7d266de146a | 86 | //pc.printf("%f\n\r", dataCollections[i - 1]); |
jkrzesni | 1:731cbdf8e672 | 87 | |
jkrzesni | 1:731cbdf8e672 | 88 | } |
jkrzesni | 1:731cbdf8e672 | 89 | return(0); |
dgutsch | 6:e7d266de146a | 90 | } |
dgutsch | 6:e7d266de146a | 91 | |
dgutsch | 6:e7d266de146a | 92 | |
dgutsch | 6:e7d266de146a | 93 | |
dgutsch | 6:e7d266de146a | 94 | bool send_it(float * fArray, ATParser *at) { |
dgutsch | 6:e7d266de146a | 95 | //pc.printf("it worked\r\n"); |
dgutsch | 6:e7d266de146a | 96 | |
dgutsch | 6:e7d266de146a | 97 | char send1[100]; |
dgutsch | 6:e7d266de146a | 98 | char send2[100]; |
dgutsch | 6:e7d266de146a | 99 | |
dgutsch | 6:e7d266de146a | 100 | sprintf(send1, "AT+SEND=%3.2f %3.2f %3.2f %3.2f %3.2f %3.2f %3.2f %3.2f %3.2f %3.2f %3.2f %3.2f\r\n", fArray[0], fArray[1], fArray[2], fArray[3], fArray[4], fArray[5], fArray[6], fArray[7], fArray[8], fArray[9], fArray[10], fArray[11]); |
dgutsch | 6:e7d266de146a | 101 | wait(2); |
dgutsch | 6:e7d266de146a | 102 | //pc.printf("%s\r\n", *send1); |
dgutsch | 6:e7d266de146a | 103 | |
dgutsch | 6:e7d266de146a | 104 | sprintf(send2, "AT+SEND=%3.2f %3.2f %3.2f %3.2f %3.2f %3.2f %3.2f %3.2f %3.2f %3.2f %3.2f %3.2f\r\n", fArray[12], fArray[13], fArray[14], fArray[15], fArray[16], fArray[17], fArray[18], fArray[19], fArray[20], fArray[21], fArray[22], fArray[23]); |
dgutsch | 6:e7d266de146a | 105 | |
dgutsch | 6:e7d266de146a | 106 | //pc.printf("%s\r\n", *send2); |
dgutsch | 6:e7d266de146a | 107 | bool did_it_work = false; |
dgutsch | 6:e7d266de146a | 108 | //wait(2); |
dgutsch | 6:e7d266de146a | 109 | |
dgutsch | 6:e7d266de146a | 110 | |
dgutsch | 6:e7d266de146a | 111 | if ((*at).send(send1) && (*at).recv("OK")) { |
dgutsch | 6:e7d266de146a | 112 | pc.printf("light reading sent!\r\n"); |
dgutsch | 6:e7d266de146a | 113 | did_it_work = true; |
dgutsch | 6:e7d266de146a | 114 | } |
dgutsch | 6:e7d266de146a | 115 | else { |
dgutsch | 6:e7d266de146a | 116 | pc.printf("send not successful\r\n"); |
dgutsch | 6:e7d266de146a | 117 | did_it_work = false; |
dgutsch | 6:e7d266de146a | 118 | } |
dgutsch | 6:e7d266de146a | 119 | //////////////send2//////////////////// |
dgutsch | 6:e7d266de146a | 120 | |
dgutsch | 6:e7d266de146a | 121 | if ((*at).send(send2) && (*at).recv("OK")) { |
dgutsch | 6:e7d266de146a | 122 | pc.printf("light reading sent!\r\n"); |
dgutsch | 6:e7d266de146a | 123 | return did_it_work && true; |
dgutsch | 6:e7d266de146a | 124 | } |
dgutsch | 6:e7d266de146a | 125 | else { |
dgutsch | 6:e7d266de146a | 126 | pc.printf("send not successful\r\n"); |
dgutsch | 6:e7d266de146a | 127 | return false; |
dgutsch | 6:e7d266de146a | 128 | } |
dgutsch | 6:e7d266de146a | 129 | } |
dgutsch | 6:e7d266de146a | 130 |