rgjefklgf
Dependencies: mbed ATParser MPL3115A2 TSL2561
main.cpp@4:44e43da30b0e, 2018-04-11 (annotated)
- Committer:
- dgutsch
- Date:
- Wed Apr 11 20:13:59 2018 +0000
- Revision:
- 4:44e43da30b0e
- Parent:
- 3:6494a5d6f2ba
- Child:
- 6:e7d266de146a
lab9, but sends light data instead of pressure and temperature.
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" |
jkrzesni | 0:53659b13e448 | 3 | #include "MPL3115A2.h" |
dgutsch | 4:44e43da30b0e | 4 | #include "TSL2561.h" |
jkrzesni | 1:731cbdf8e672 | 5 | #include <string> |
jkrzesni | 1:731cbdf8e672 | 6 | #include <iostream> |
jkrzesni | 1:731cbdf8e672 | 7 | |
dgutsch | 3:6494a5d6f2ba | 8 | |
dgutsch | 3:6494a5d6f2ba | 9 | |
jkrzesni | 0:53659b13e448 | 10 | |
dgutsch | 4:44e43da30b0e | 11 | //MPL3115A2 pressure_sensor(PB_7, PB_6, 0x60); |
jkrzesni | 0:53659b13e448 | 12 | BufferedSerial pc(SERIAL_TX, SERIAL_RX); |
jkrzesni | 0:53659b13e448 | 13 | BufferedSerial dev(PA_9, PA_10); |
jkrzesni | 0:53659b13e448 | 14 | DigitalOut myled(LED1); |
dgutsch | 4:44e43da30b0e | 15 | TSL2561 light_sensor(PB_7, PB_6); // addr: 0x29 since addr is groundedx |
jkrzesni | 0:53659b13e448 | 16 | |
jkrzesni | 1:731cbdf8e672 | 17 | using namespace std; |
jkrzesni | 1:731cbdf8e672 | 18 | |
jkrzesni | 0:53659b13e448 | 19 | int main() { |
jkrzesni | 1:731cbdf8e672 | 20 | |
jkrzesni | 0:53659b13e448 | 21 | double temp, pres; |
jkrzesni | 0:53659b13e448 | 22 | pc.baud(115200); |
jkrzesni | 0:53659b13e448 | 23 | dev.baud(115200); |
jkrzesni | 0:53659b13e448 | 24 | |
dgutsch | 4:44e43da30b0e | 25 | light_sensor.set_timing_reg(0x10); // nominal integration time: 402ms (max in datasheet) |
dgutsch | 4:44e43da30b0e | 26 | |
dgutsch | 3:6494a5d6f2ba | 27 | pc.printf("Begin headaches\r\n"); |
jkrzesni | 0:53659b13e448 | 28 | |
jkrzesni | 0:53659b13e448 | 29 | ATParser at = ATParser(dev, "\r\n"); |
jkrzesni | 0:53659b13e448 | 30 | |
jkrzesni | 0:53659b13e448 | 31 | if (at.send("AT") && at.recv("OK")) |
dgutsch | 3:6494a5d6f2ba | 32 | pc.printf("AT Communication Success\r\n"); |
jkrzesni | 0:53659b13e448 | 33 | |
jkrzesni | 1:731cbdf8e672 | 34 | // Set network name and passphrase |
jkrzesni | 1:731cbdf8e672 | 35 | if (at.send("AT+NI=1,MTCDT-19400691") && at.recv("OK")) |
dgutsch | 3:6494a5d6f2ba | 36 | pc.printf("Network ID specified\r\n"); |
jkrzesni | 1:731cbdf8e672 | 37 | if (at.send("AT+NK=1,MTCDT-19400691") && at.recv("OK")) |
dgutsch | 3:6494a5d6f2ba | 38 | pc.printf("Network Passphrase specified\r\n"); |
dgutsch | 4:44e43da30b0e | 39 | |
dgutsch | 4:44e43da30b0e | 40 | if(at.send("AT+FSB=1") && at.recv("OK")) |
dgutsch | 4:44e43da30b0e | 41 | pc.printf("band specified\r\n"); |
dgutsch | 4:44e43da30b0e | 42 | |
dgutsch | 4:44e43da30b0e | 43 | bool joined = false; |
dgutsch | 4:44e43da30b0e | 44 | while(!joined) { |
dgutsch | 4:44e43da30b0e | 45 | if (at.send("AT+JOIN") && at.recv("OK")) { |
dgutsch | 3:6494a5d6f2ba | 46 | pc.printf("Joined Network!\r\n"); |
dgutsch | 4:44e43da30b0e | 47 | joined = true; |
dgutsch | 4:44e43da30b0e | 48 | } |
dgutsch | 4:44e43da30b0e | 49 | else { |
dgutsch | 4:44e43da30b0e | 50 | pc.printf("network not joined\r\n"); |
dgutsch | 4:44e43da30b0e | 51 | } |
dgutsch | 3:6494a5d6f2ba | 52 | } |
dgutsch | 3:6494a5d6f2ba | 53 | |
dgutsch | 4:44e43da30b0e | 54 | |
dgutsch | 4:44e43da30b0e | 55 | |
dgutsch | 4:44e43da30b0e | 56 | |
dgutsch | 4:44e43da30b0e | 57 | |
dgutsch | 4:44e43da30b0e | 58 | |
jkrzesni | 1:731cbdf8e672 | 59 | // Set pressure sensor to read in units of mbar & celcius |
dgutsch | 4:44e43da30b0e | 60 | //pressure_sensor.setCTRL_REG1(0xA1); |
jkrzesni | 1:731cbdf8e672 | 61 | |
jkrzesni | 1:731cbdf8e672 | 62 | char tempBuff[20]; |
jkrzesni | 1:731cbdf8e672 | 63 | char presBuff[20]; |
dgutsch | 4:44e43da30b0e | 64 | char lightBuff[20]; |
jkrzesni | 2:10a9331f04e2 | 65 | char sendcommand[50] = "AT+SEND="; |
jkrzesni | 0:53659b13e448 | 66 | |
dgutsch | 4:44e43da30b0e | 67 | //pc.printf("Awaiting Commands.\r\n"); |
jkrzesni | 0:53659b13e448 | 68 | // Wait for "s" string from console serial input. |
jkrzesni | 2:10a9331f04e2 | 69 | while(1) |
jkrzesni | 2:10a9331f04e2 | 70 | { |
dgutsch | 4:44e43da30b0e | 71 | float light_value = light_sensor.lux(); // read light sensor |
dgutsch | 4:44e43da30b0e | 72 | sprintf(lightBuff, "%3.2f", light_value); |
dgutsch | 4:44e43da30b0e | 73 | //wait(1); |
dgutsch | 4:44e43da30b0e | 74 | |
dgutsch | 4:44e43da30b0e | 75 | |
dgutsch | 4:44e43da30b0e | 76 | sprintf(sendcommand, "%s", "AT+SEND="); |
dgutsch | 4:44e43da30b0e | 77 | char *command[60]; |
dgutsch | 4:44e43da30b0e | 78 | *command = strcat(sendcommand, lightBuff); |
dgutsch | 4:44e43da30b0e | 79 | pc.printf("%s\r\n", *command); |
jkrzesni | 2:10a9331f04e2 | 80 | |
dgutsch | 4:44e43da30b0e | 81 | if (at.send(*command) && at.recv("OK")) { |
dgutsch | 4:44e43da30b0e | 82 | pc.printf("light reading sent!\r\n"); |
dgutsch | 4:44e43da30b0e | 83 | } |
dgutsch | 4:44e43da30b0e | 84 | else { |
dgutsch | 4:44e43da30b0e | 85 | pc.printf("send not successful\r\n"); |
dgutsch | 4:44e43da30b0e | 86 | } |
jkrzesni | 2:10a9331f04e2 | 87 | |
dgutsch | 4:44e43da30b0e | 88 | |
dgutsch | 3:6494a5d6f2ba | 89 | |
dgutsch | 4:44e43da30b0e | 90 | //char c = pc.getc(); |
dgutsch | 4:44e43da30b0e | 91 | /*if (c == 'e') |
jkrzesni | 2:10a9331f04e2 | 92 | { |
jkrzesni | 2:10a9331f04e2 | 93 | at.flush(); |
jkrzesni | 2:10a9331f04e2 | 94 | pc.printf("Exiting Program\r\n"); |
jkrzesni | 2:10a9331f04e2 | 95 | return(0); |
dgutsch | 4:44e43da30b0e | 96 | }*/ |
jkrzesni | 2:10a9331f04e2 | 97 | |
dgutsch | 4:44e43da30b0e | 98 | /*if (c == 's') |
jkrzesni | 2:10a9331f04e2 | 99 | { |
jkrzesni | 2:10a9331f04e2 | 100 | |
dgutsch | 3:6494a5d6f2ba | 101 | //temp = pressure_sensor.getTemperature(); |
dgutsch | 3:6494a5d6f2ba | 102 | //pres = pressure_sensor.getAltitude(); |
dgutsch | 4:44e43da30b0e | 103 | |
jkrzesni | 2:10a9331f04e2 | 104 | |
dgutsch | 4:44e43da30b0e | 105 | float light_value = light_sensor.lux(); // read light sensor |
dgutsch | 4:44e43da30b0e | 106 | sprintf(lightBuff, "%f", light_value); |
dgutsch | 4:44e43da30b0e | 107 | wait(1); |
dgutsch | 4:44e43da30b0e | 108 | pc.printf("%s\r\n", lightBuff); |
dgutsch | 4:44e43da30b0e | 109 | wait(1); |
dgutsch | 4:44e43da30b0e | 110 | pc.printf("%f\r\n", light_value); |
jkrzesni | 1:731cbdf8e672 | 111 | |
jkrzesni | 1:731cbdf8e672 | 112 | //convert doubles to string |
dgutsch | 3:6494a5d6f2ba | 113 | //sprintf(tempBuff, "%lf", temp); |
dgutsch | 3:6494a5d6f2ba | 114 | //sprintf(presBuff, "%lf", pres); |
jkrzesni | 2:10a9331f04e2 | 115 | |
dgutsch | 4:44e43da30b0e | 116 | sprintf(sendcommand, "%s", "AT+SEND="); |
dgutsch | 4:44e43da30b0e | 117 | string *hold; |
jkrzesni | 2:10a9331f04e2 | 118 | string *command; |
dgutsch | 4:44e43da30b0e | 119 | *hold = strcat(sendcommand, ","); |
dgutsch | 4:44e43da30b0e | 120 | *command = strcat(((char *)hold), lightBuff); |
dgutsch | 3:6494a5d6f2ba | 121 | //*command = strcat(sendcommand, strcat(strcat(presBuff,","), tempBuff)); |
dgutsch | 3:6494a5d6f2ba | 122 | //pc.printf("%s\r\n", (*command).c_str()); |
dgutsch | 3:6494a5d6f2ba | 123 | //pc.printf("Temperature and Pressure Sent\r\n"); |
jkrzesni | 2:10a9331f04e2 | 124 | |
jkrzesni | 2:10a9331f04e2 | 125 | |
dgutsch | 4:44e43da30b0e | 126 | if (at.send(((const char*)command)) && at.recv("OK")) { |
dgutsch | 4:44e43da30b0e | 127 | pc.printf("light reading sent!\r\n"); |
dgutsch | 4:44e43da30b0e | 128 | } |
dgutsch | 4:44e43da30b0e | 129 | else { |
dgutsch | 4:44e43da30b0e | 130 | pc.printf("send not successful\r\n"); |
dgutsch | 4:44e43da30b0e | 131 | } |
jkrzesni | 2:10a9331f04e2 | 132 | |
dgutsch | 3:6494a5d6f2ba | 133 | wait(2); |
jkrzesni | 1:731cbdf8e672 | 134 | |
dgutsch | 4:44e43da30b0e | 135 | }*/ |
dgutsch | 3:6494a5d6f2ba | 136 | |
dgutsch | 4:44e43da30b0e | 137 | //at.flush(); |
jkrzesni | 1:731cbdf8e672 | 138 | |
jkrzesni | 1:731cbdf8e672 | 139 | } |
jkrzesni | 1:731cbdf8e672 | 140 | return(0); |
jkrzesni | 1:731cbdf8e672 | 141 | } |