rgjefklgf

Dependencies:   mbed ATParser MPL3115A2 TSL2561

main.cpp

Committer:
dgutsch
Date:
2018-04-11
Revision:
4:44e43da30b0e
Parent:
3:6494a5d6f2ba
Child:
6:e7d266de146a

File content as of revision 4:44e43da30b0e:

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




//MPL3115A2 pressure_sensor(PB_7, PB_6, 0x60);
BufferedSerial pc(SERIAL_TX, SERIAL_RX);
BufferedSerial dev(PA_9, PA_10);
DigitalOut myled(LED1);
TSL2561 light_sensor(PB_7, PB_6); // addr: 0x29 since addr is groundedx

using namespace std;
 
int main() { 
   
    double temp, pres;
    pc.baud(115200);
    dev.baud(115200);
    
    light_sensor.set_timing_reg(0x10); // nominal integration time: 402ms (max in datasheet)
    
    pc.printf("Begin headaches\r\n");
    
    ATParser at = ATParser(dev, "\r\n");
    
    if (at.send("AT") && at.recv("OK"))
        pc.printf("AT Communication Success\r\n");
    
    // Set network name and passphrase
    if (at.send("AT+NI=1,MTCDT-19400691") && at.recv("OK"))
        pc.printf("Network ID specified\r\n");
    if (at.send("AT+NK=1,MTCDT-19400691") && at.recv("OK"))
        pc.printf("Network Passphrase specified\r\n");
        
    if(at.send("AT+FSB=1") && at.recv("OK"))
        pc.printf("band specified\r\n");
     
    bool joined = false;
    while(!joined) {
        if (at.send("AT+JOIN") && at.recv("OK")) {
            pc.printf("Joined Network!\r\n");
            joined = true;
        }
        else {
            pc.printf("network not joined\r\n");
        }
    }
    
    
    
        
    
    
    // Set pressure sensor to read in units of mbar & celcius
    //pressure_sensor.setCTRL_REG1(0xA1); 
    
    char tempBuff[20];
    char presBuff[20];
    char lightBuff[20];
    char sendcommand[50] = "AT+SEND=";
    
    //pc.printf("Awaiting Commands.\r\n");
    // Wait for "s" string from console serial input.
    while(1) 
    {
        float light_value = light_sensor.lux(); // read light sensor
        sprintf(lightBuff, "%3.2f", light_value);
        //wait(1);
            
            
        sprintf(sendcommand, "%s", "AT+SEND=");
        char *command[60];
        *command = strcat(sendcommand, lightBuff);
        pc.printf("%s\r\n", *command);
        
        if (at.send(*command) && at.recv("OK")) {
                pc.printf("light reading sent!\r\n");
            }
            else {
                pc.printf("send not successful\r\n");
            }
        
        
        
        //char c = pc.getc();
        /*if (c == 'e')
        {
          at.flush();
          pc.printf("Exiting Program\r\n");
          return(0);
        }*/
        
        /*if (c == 's') 
        {
            
           //temp = pressure_sensor.getTemperature();
            //pres = pressure_sensor.getAltitude();
          
            
            float light_value = light_sensor.lux(); // read light sensor
            sprintf(lightBuff, "%f", light_value);
            wait(1);
            pc.printf("%s\r\n", lightBuff);
            wait(1);
            pc.printf("%f\r\n", light_value);
        
            //convert doubles to string           
            //sprintf(tempBuff, "%lf", temp);
            //sprintf(presBuff, "%lf", pres);
            
            sprintf(sendcommand, "%s", "AT+SEND=");
            string *hold;
            string *command;
            *hold = strcat(sendcommand, ",");
            *command = strcat(((char *)hold), lightBuff);
            //*command = strcat(sendcommand, strcat(strcat(presBuff,","), tempBuff));
            //pc.printf("%s\r\n", (*command).c_str());
            //pc.printf("Temperature and Pressure Sent\r\n");
            
            
            if (at.send(((const char*)command)) && at.recv("OK")) {
                pc.printf("light reading sent!\r\n");
            }
            else {
                pc.printf("send not successful\r\n");
            }
            
            wait(2);
                   
        }*/
        
        //at.flush();
    
    }
    return(0);
}