rgjefklgf
Dependencies: mbed ATParser MPL3115A2 TSL2561
main.cpp@2:10a9331f04e2, 2018-04-07 (annotated)
- Committer:
- jkrzesni
- Date:
- Sat Apr 07 23:33:03 2018 +0000
- Revision:
- 2:10a9331f04e2
- Parent:
- 1:731cbdf8e672
- Child:
- 3:6494a5d6f2ba
some sort of weird overflow.
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" |
jkrzesni | 1:731cbdf8e672 | 4 | #include <string> |
jkrzesni | 1:731cbdf8e672 | 5 | #include <iostream> |
jkrzesni | 1:731cbdf8e672 | 6 | |
jkrzesni | 1:731cbdf8e672 | 7 | //#include <Serial.h> |
jkrzesni | 0:53659b13e448 | 8 | |
jkrzesni | 0:53659b13e448 | 9 | MPL3115A2 pressure_sensor(PB_7, PB_6, 0x60); |
jkrzesni | 0:53659b13e448 | 10 | BufferedSerial pc(SERIAL_TX, SERIAL_RX); |
jkrzesni | 0:53659b13e448 | 11 | BufferedSerial dev(PA_9, PA_10); |
jkrzesni | 0:53659b13e448 | 12 | DigitalOut myled(LED1); |
jkrzesni | 0:53659b13e448 | 13 | |
jkrzesni | 1:731cbdf8e672 | 14 | using namespace std; |
jkrzesni | 1:731cbdf8e672 | 15 | |
jkrzesni | 0:53659b13e448 | 16 | int main() { |
jkrzesni | 1:731cbdf8e672 | 17 | |
jkrzesni | 0:53659b13e448 | 18 | double temp, pres; |
jkrzesni | 0:53659b13e448 | 19 | pc.baud(115200); |
jkrzesni | 0:53659b13e448 | 20 | dev.baud(115200); |
jkrzesni | 0:53659b13e448 | 21 | |
jkrzesni | 0:53659b13e448 | 22 | pc.printf("Begin headaches\n\r"); |
jkrzesni | 0:53659b13e448 | 23 | |
jkrzesni | 0:53659b13e448 | 24 | ATParser at = ATParser(dev, "\r\n"); |
jkrzesni | 0:53659b13e448 | 25 | |
jkrzesni | 0:53659b13e448 | 26 | if (at.send("AT") && at.recv("OK")) |
jkrzesni | 0:53659b13e448 | 27 | pc.printf("AT Communication Success\n\r"); |
jkrzesni | 0:53659b13e448 | 28 | |
jkrzesni | 1:731cbdf8e672 | 29 | // Set network name and passphrase |
jkrzesni | 1:731cbdf8e672 | 30 | if (at.send("AT+NI=1,MTCDT-19400691") && at.recv("OK")) |
jkrzesni | 2:10a9331f04e2 | 31 | pc.printf("Network ID specified\n\r"); |
jkrzesni | 1:731cbdf8e672 | 32 | if (at.send("AT+NK=1,MTCDT-19400691") && at.recv("OK")) |
jkrzesni | 1:731cbdf8e672 | 33 | pc.printf("Network Passphrase specified\n\r"); |
jkrzesni | 1:731cbdf8e672 | 34 | |
jkrzesni | 1:731cbdf8e672 | 35 | if (at.send("AT+JOIN") && at.recv("OK")) |
jkrzesni | 2:10a9331f04e2 | 36 | pc.printf("Joined Network!\n\r"); |
jkrzesni | 1:731cbdf8e672 | 37 | |
jkrzesni | 1:731cbdf8e672 | 38 | // Set pressure sensor to read in units of mbar & celcius |
jkrzesni | 1:731cbdf8e672 | 39 | pressure_sensor.setCTRL_REG1(0xA1); |
jkrzesni | 1:731cbdf8e672 | 40 | |
jkrzesni | 1:731cbdf8e672 | 41 | char tempBuff[20]; |
jkrzesni | 1:731cbdf8e672 | 42 | char presBuff[20]; |
jkrzesni | 2:10a9331f04e2 | 43 | char sendcommand[50] = "AT+SEND="; |
jkrzesni | 0:53659b13e448 | 44 | |
jkrzesni | 2:10a9331f04e2 | 45 | pc.printf("Awaiting Commands."); |
jkrzesni | 0:53659b13e448 | 46 | // Wait for "s" string from console serial input. |
jkrzesni | 2:10a9331f04e2 | 47 | while(1) |
jkrzesni | 2:10a9331f04e2 | 48 | { |
jkrzesni | 2:10a9331f04e2 | 49 | char c = pc.getc(); |
jkrzesni | 2:10a9331f04e2 | 50 | |
jkrzesni | 0:53659b13e448 | 51 | // Read temperature and pressure from MPL3115A2. |
jkrzesni | 2:10a9331f04e2 | 52 | if (c == 'j') |
jkrzesni | 0:53659b13e448 | 53 | { |
jkrzesni | 2:10a9331f04e2 | 54 | pc.printf("You entered: j\r\n"); |
jkrzesni | 2:10a9331f04e2 | 55 | if (at.send("AT+JOIN") && at.recv("OK")) |
jkrzesni | 2:10a9331f04e2 | 56 | { |
jkrzesni | 2:10a9331f04e2 | 57 | pc.printf("Joined Network!\n\r"); |
jkrzesni | 2:10a9331f04e2 | 58 | } |
jkrzesni | 2:10a9331f04e2 | 59 | |
jkrzesni | 2:10a9331f04e2 | 60 | } |
jkrzesni | 2:10a9331f04e2 | 61 | |
jkrzesni | 2:10a9331f04e2 | 62 | if (c == 'e') |
jkrzesni | 2:10a9331f04e2 | 63 | { |
jkrzesni | 2:10a9331f04e2 | 64 | at.flush(); |
jkrzesni | 2:10a9331f04e2 | 65 | pc.printf("Exiting Program\r\n"); |
jkrzesni | 2:10a9331f04e2 | 66 | return(0); |
jkrzesni | 2:10a9331f04e2 | 67 | } |
jkrzesni | 2:10a9331f04e2 | 68 | |
jkrzesni | 2:10a9331f04e2 | 69 | if (c == 's') |
jkrzesni | 2:10a9331f04e2 | 70 | { |
jkrzesni | 2:10a9331f04e2 | 71 | pc.printf("You entered: s\r\n"); |
jkrzesni | 1:731cbdf8e672 | 72 | // Force XDot to send temperature and pressure to MQTT server |
jkrzesni | 2:10a9331f04e2 | 73 | |
jkrzesni | 2:10a9331f04e2 | 74 | temp = pressure_sensor.getTemperature(); |
jkrzesni | 0:53659b13e448 | 75 | pres = pressure_sensor.getAltitude(); |
jkrzesni | 2:10a9331f04e2 | 76 | pc.printf("temperature: %d\r\n", temp); |
jkrzesni | 2:10a9331f04e2 | 77 | pc.printf("pressure: %\r\nd", pres); |
jkrzesni | 2:10a9331f04e2 | 78 | pc.printf("Temperature and Pressure Read\n\r"); |
jkrzesni | 2:10a9331f04e2 | 79 | |
jkrzesni | 1:731cbdf8e672 | 80 | |
jkrzesni | 1:731cbdf8e672 | 81 | //convert doubles to string |
jkrzesni | 1:731cbdf8e672 | 82 | sprintf(tempBuff, "%lf", temp); |
jkrzesni | 1:731cbdf8e672 | 83 | sprintf(presBuff, "%lf", pres); |
jkrzesni | 2:10a9331f04e2 | 84 | sprintf(sendcommand, "%s", "AT+SEND="); |
jkrzesni | 2:10a9331f04e2 | 85 | |
jkrzesni | 2:10a9331f04e2 | 86 | string *command; |
jkrzesni | 2:10a9331f04e2 | 87 | *command = strcat(sendcommand, strcat(strcat(presBuff,","), tempBuff)); |
jkrzesni | 2:10a9331f04e2 | 88 | pc.printf("%s\r\n", (*command).c_str()); |
jkrzesni | 2:10a9331f04e2 | 89 | at.send(((const char*)command)); |
jkrzesni | 2:10a9331f04e2 | 90 | pc.printf("Temperature and Pressure Sent\r\n"); |
jkrzesni | 2:10a9331f04e2 | 91 | |
jkrzesni | 2:10a9331f04e2 | 92 | |
jkrzesni | 2:10a9331f04e2 | 93 | //if (at.send("AT+SEND=20,200") && at.recv("OK")) |
jkrzesni | 2:10a9331f04e2 | 94 | pc.printf("Temp & Pres Sent!\n\r"); |
jkrzesni | 2:10a9331f04e2 | 95 | wait(2); |
jkrzesni | 2:10a9331f04e2 | 96 | |
jkrzesni | 2:10a9331f04e2 | 97 | //free(tempBuff); |
jkrzesni | 2:10a9331f04e2 | 98 | //free(presBuff); |
jkrzesni | 2:10a9331f04e2 | 99 | //free(command); |
jkrzesni | 2:10a9331f04e2 | 100 | at.flush(); |
jkrzesni | 2:10a9331f04e2 | 101 | |
jkrzesni | 2:10a9331f04e2 | 102 | //c.printf("%s\r\n", command); /*&& at.recv("OK"))*/ |
jkrzesni | 2:10a9331f04e2 | 103 | |
jkrzesni | 2:10a9331f04e2 | 104 | //pc.printf("temp and pres sent\n\r"); |
jkrzesni | 1:731cbdf8e672 | 105 | |
jkrzesni | 0:53659b13e448 | 106 | } |
jkrzesni | 1:731cbdf8e672 | 107 | |
jkrzesni | 1:731cbdf8e672 | 108 | } |
jkrzesni | 1:731cbdf8e672 | 109 | return(0); |
jkrzesni | 1:731cbdf8e672 | 110 | } |