rgjefklgf

Dependencies:   mbed ATParser MPL3115A2 TSL2561

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?

UserRevisionLine numberNew 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 }