lab9

Dependencies:   ATParser MPL3115A2 TSL2561 mbed

main.cpp

Committer:
jkrzesni
Date:
2018-04-06
Revision:
1:731cbdf8e672
Parent:
0:53659b13e448
Child:
2:10a9331f04e2

File content as of revision 1:731cbdf8e672:

#include "mbed.h"
#include "ATParser.h"
#include "MPL3115A2.h"
#include <string>
#include <iostream>

//#include <Serial.h>

MPL3115A2 pressure_sensor(PB_7, PB_6, 0x60);
BufferedSerial pc(SERIAL_TX, SERIAL_RX);
BufferedSerial dev(PA_9, PA_10);
DigitalOut myled(LED1);

using namespace std;
 
int main() { 
   
    double temp, pres;
    pc.baud(115200);
    dev.baud(115200);
    
    pc.printf("Begin headaches\n\r");
    
    ATParser at = ATParser(dev, "\r\n");
    
    if (at.send("AT") && at.recv("OK"))
        pc.printf("AT Communication Success\n\r");
    
    // Set network name and passphrase
    if (at.send("AT+NI=1,MTCDT-19400691") && at.recv("OK"))
        pc.printf("Network ID specified");
    if (at.send("AT+NK=1,MTCDT-19400691") && at.recv("OK"))
        pc.printf("Network Passphrase specified\n\r");
      
    if (at.send("AT+JOIN") && at.recv("OK"))
        pc.printf("Joined Network!");
        
    // Set pressure sensor to read in units of mbar & celcius
    pressure_sensor.setCTRL_REG1(0xA1); 
    
    char tempBuff[20];
    char presBuff[20];
    
    
    // Wait for "s" string from console serial input.
    while(1) {
        // Read temperature and pressure from MPL3115A2.
        if (pc.getc() == 's') 
        {
            //pc.printf("send pressure and temp\n\r");
            // Force XDot to send temperature and pressure to MQTT server
            temp = pressure_sensor.getTemperature();
            pres = pressure_sensor.getAltitude();
            wait(2);
        
            //convert doubles to string           
            sprintf(tempBuff, "%lf", temp);
            sprintf(presBuff, "%lf", pres);

            //printf("%s %s\r\n", tempBuff,presBuff);
            string command = strcat("AT+SEND=", strcat(tempBuff, strcat(strcat(",", presBuff), "\r\n")));
            pc.printf("%s\r\n", command); /*&& at.recv("OK"))*/
            //at.send("AT+SEND=" + tempBuff + "," + presBuff); /*&& at.recv("OK"))*/
                pc.printf("temp and pres sent\n\r");
                   
        }
    
    }
    return(0);
}