rgjefklgf

Dependencies:   mbed ATParser MPL3115A2 TSL2561

main.cpp

Committer:
jkrzesni
Date:
2018-04-07
Revision:
2:10a9331f04e2
Parent:
1:731cbdf8e672
Child:
3:6494a5d6f2ba

File content as of revision 2:10a9331f04e2:

#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\n\r");
    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!\n\r");
        
    // Set pressure sensor to read in units of mbar & celcius
    pressure_sensor.setCTRL_REG1(0xA1); 
    
    char tempBuff[20];
    char presBuff[20];
    char sendcommand[50] = "AT+SEND=";
    
    pc.printf("Awaiting Commands.");
    // Wait for "s" string from console serial input.
    while(1) 
    {
        char c = pc.getc();
        
        // Read temperature and pressure from MPL3115A2.
        if (c == 'j')
        {
            pc.printf("You entered: j\r\n");
            if (at.send("AT+JOIN") && at.recv("OK"))
            {
                pc.printf("Joined Network!\n\r");
            }
            
        }
        
        if (c == 'e')
        {
          at.flush();
          pc.printf("Exiting Program\r\n");
          return(0);
        }
        
        if (c == 's') 
        {
            pc.printf("You entered: s\r\n");
            // Force XDot to send temperature and pressure to MQTT server
            
           temp = pressure_sensor.getTemperature();
            pres = pressure_sensor.getAltitude();
            pc.printf("temperature: %d\r\n", temp);
            pc.printf("pressure: %\r\nd", pres);
            pc.printf("Temperature and Pressure Read\n\r");
            
        
            //convert doubles to string           
            sprintf(tempBuff, "%lf", temp);
            sprintf(presBuff, "%lf", pres);
            sprintf(sendcommand, "%s", "AT+SEND=");
            
            string *command;
            *command = strcat(sendcommand, strcat(strcat(presBuff,","), tempBuff));
            pc.printf("%s\r\n", (*command).c_str());
            at.send(((const char*)command));
            pc.printf("Temperature and Pressure Sent\r\n");
            
            
            //if (at.send("AT+SEND=20,200") && at.recv("OK"))
            pc.printf("Temp & Pres Sent!\n\r");
            wait(2);
            
            //free(tempBuff);
            //free(presBuff);
            //free(command);
            at.flush();
    
            //c.printf("%s\r\n", command); /*&& at.recv("OK"))*/
            
            //pc.printf("temp and pres sent\n\r");
                   
        }
    
    }
    return(0);
}