rgjefklgf

Dependencies:   mbed ATParser MPL3115A2 TSL2561

Committer:
dgutsch
Date:
Wed Apr 11 20:13:59 2018 +0000
Revision:
4:44e43da30b0e
Parent:
3:6494a5d6f2ba
Child:
6:e7d266de146a
lab9, but sends light data instead of pressure and temperature.

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"
dgutsch 4:44e43da30b0e 4 #include "TSL2561.h"
jkrzesni 1:731cbdf8e672 5 #include <string>
jkrzesni 1:731cbdf8e672 6 #include <iostream>
jkrzesni 1:731cbdf8e672 7
dgutsch 3:6494a5d6f2ba 8
dgutsch 3:6494a5d6f2ba 9
jkrzesni 0:53659b13e448 10
dgutsch 4:44e43da30b0e 11 //MPL3115A2 pressure_sensor(PB_7, PB_6, 0x60);
jkrzesni 0:53659b13e448 12 BufferedSerial pc(SERIAL_TX, SERIAL_RX);
jkrzesni 0:53659b13e448 13 BufferedSerial dev(PA_9, PA_10);
jkrzesni 0:53659b13e448 14 DigitalOut myled(LED1);
dgutsch 4:44e43da30b0e 15 TSL2561 light_sensor(PB_7, PB_6); // addr: 0x29 since addr is groundedx
jkrzesni 0:53659b13e448 16
jkrzesni 1:731cbdf8e672 17 using namespace std;
jkrzesni 1:731cbdf8e672 18
jkrzesni 0:53659b13e448 19 int main() {
jkrzesni 1:731cbdf8e672 20
jkrzesni 0:53659b13e448 21 double temp, pres;
jkrzesni 0:53659b13e448 22 pc.baud(115200);
jkrzesni 0:53659b13e448 23 dev.baud(115200);
jkrzesni 0:53659b13e448 24
dgutsch 4:44e43da30b0e 25 light_sensor.set_timing_reg(0x10); // nominal integration time: 402ms (max in datasheet)
dgutsch 4:44e43da30b0e 26
dgutsch 3:6494a5d6f2ba 27 pc.printf("Begin headaches\r\n");
jkrzesni 0:53659b13e448 28
jkrzesni 0:53659b13e448 29 ATParser at = ATParser(dev, "\r\n");
jkrzesni 0:53659b13e448 30
jkrzesni 0:53659b13e448 31 if (at.send("AT") && at.recv("OK"))
dgutsch 3:6494a5d6f2ba 32 pc.printf("AT Communication Success\r\n");
jkrzesni 0:53659b13e448 33
jkrzesni 1:731cbdf8e672 34 // Set network name and passphrase
jkrzesni 1:731cbdf8e672 35 if (at.send("AT+NI=1,MTCDT-19400691") && at.recv("OK"))
dgutsch 3:6494a5d6f2ba 36 pc.printf("Network ID specified\r\n");
jkrzesni 1:731cbdf8e672 37 if (at.send("AT+NK=1,MTCDT-19400691") && at.recv("OK"))
dgutsch 3:6494a5d6f2ba 38 pc.printf("Network Passphrase specified\r\n");
dgutsch 4:44e43da30b0e 39
dgutsch 4:44e43da30b0e 40 if(at.send("AT+FSB=1") && at.recv("OK"))
dgutsch 4:44e43da30b0e 41 pc.printf("band specified\r\n");
dgutsch 4:44e43da30b0e 42
dgutsch 4:44e43da30b0e 43 bool joined = false;
dgutsch 4:44e43da30b0e 44 while(!joined) {
dgutsch 4:44e43da30b0e 45 if (at.send("AT+JOIN") && at.recv("OK")) {
dgutsch 3:6494a5d6f2ba 46 pc.printf("Joined Network!\r\n");
dgutsch 4:44e43da30b0e 47 joined = true;
dgutsch 4:44e43da30b0e 48 }
dgutsch 4:44e43da30b0e 49 else {
dgutsch 4:44e43da30b0e 50 pc.printf("network not joined\r\n");
dgutsch 4:44e43da30b0e 51 }
dgutsch 3:6494a5d6f2ba 52 }
dgutsch 3:6494a5d6f2ba 53
dgutsch 4:44e43da30b0e 54
dgutsch 4:44e43da30b0e 55
dgutsch 4:44e43da30b0e 56
dgutsch 4:44e43da30b0e 57
dgutsch 4:44e43da30b0e 58
jkrzesni 1:731cbdf8e672 59 // Set pressure sensor to read in units of mbar & celcius
dgutsch 4:44e43da30b0e 60 //pressure_sensor.setCTRL_REG1(0xA1);
jkrzesni 1:731cbdf8e672 61
jkrzesni 1:731cbdf8e672 62 char tempBuff[20];
jkrzesni 1:731cbdf8e672 63 char presBuff[20];
dgutsch 4:44e43da30b0e 64 char lightBuff[20];
jkrzesni 2:10a9331f04e2 65 char sendcommand[50] = "AT+SEND=";
jkrzesni 0:53659b13e448 66
dgutsch 4:44e43da30b0e 67 //pc.printf("Awaiting Commands.\r\n");
jkrzesni 0:53659b13e448 68 // Wait for "s" string from console serial input.
jkrzesni 2:10a9331f04e2 69 while(1)
jkrzesni 2:10a9331f04e2 70 {
dgutsch 4:44e43da30b0e 71 float light_value = light_sensor.lux(); // read light sensor
dgutsch 4:44e43da30b0e 72 sprintf(lightBuff, "%3.2f", light_value);
dgutsch 4:44e43da30b0e 73 //wait(1);
dgutsch 4:44e43da30b0e 74
dgutsch 4:44e43da30b0e 75
dgutsch 4:44e43da30b0e 76 sprintf(sendcommand, "%s", "AT+SEND=");
dgutsch 4:44e43da30b0e 77 char *command[60];
dgutsch 4:44e43da30b0e 78 *command = strcat(sendcommand, lightBuff);
dgutsch 4:44e43da30b0e 79 pc.printf("%s\r\n", *command);
jkrzesni 2:10a9331f04e2 80
dgutsch 4:44e43da30b0e 81 if (at.send(*command) && at.recv("OK")) {
dgutsch 4:44e43da30b0e 82 pc.printf("light reading sent!\r\n");
dgutsch 4:44e43da30b0e 83 }
dgutsch 4:44e43da30b0e 84 else {
dgutsch 4:44e43da30b0e 85 pc.printf("send not successful\r\n");
dgutsch 4:44e43da30b0e 86 }
jkrzesni 2:10a9331f04e2 87
dgutsch 4:44e43da30b0e 88
dgutsch 3:6494a5d6f2ba 89
dgutsch 4:44e43da30b0e 90 //char c = pc.getc();
dgutsch 4:44e43da30b0e 91 /*if (c == 'e')
jkrzesni 2:10a9331f04e2 92 {
jkrzesni 2:10a9331f04e2 93 at.flush();
jkrzesni 2:10a9331f04e2 94 pc.printf("Exiting Program\r\n");
jkrzesni 2:10a9331f04e2 95 return(0);
dgutsch 4:44e43da30b0e 96 }*/
jkrzesni 2:10a9331f04e2 97
dgutsch 4:44e43da30b0e 98 /*if (c == 's')
jkrzesni 2:10a9331f04e2 99 {
jkrzesni 2:10a9331f04e2 100
dgutsch 3:6494a5d6f2ba 101 //temp = pressure_sensor.getTemperature();
dgutsch 3:6494a5d6f2ba 102 //pres = pressure_sensor.getAltitude();
dgutsch 4:44e43da30b0e 103
jkrzesni 2:10a9331f04e2 104
dgutsch 4:44e43da30b0e 105 float light_value = light_sensor.lux(); // read light sensor
dgutsch 4:44e43da30b0e 106 sprintf(lightBuff, "%f", light_value);
dgutsch 4:44e43da30b0e 107 wait(1);
dgutsch 4:44e43da30b0e 108 pc.printf("%s\r\n", lightBuff);
dgutsch 4:44e43da30b0e 109 wait(1);
dgutsch 4:44e43da30b0e 110 pc.printf("%f\r\n", light_value);
jkrzesni 1:731cbdf8e672 111
jkrzesni 1:731cbdf8e672 112 //convert doubles to string
dgutsch 3:6494a5d6f2ba 113 //sprintf(tempBuff, "%lf", temp);
dgutsch 3:6494a5d6f2ba 114 //sprintf(presBuff, "%lf", pres);
jkrzesni 2:10a9331f04e2 115
dgutsch 4:44e43da30b0e 116 sprintf(sendcommand, "%s", "AT+SEND=");
dgutsch 4:44e43da30b0e 117 string *hold;
jkrzesni 2:10a9331f04e2 118 string *command;
dgutsch 4:44e43da30b0e 119 *hold = strcat(sendcommand, ",");
dgutsch 4:44e43da30b0e 120 *command = strcat(((char *)hold), lightBuff);
dgutsch 3:6494a5d6f2ba 121 //*command = strcat(sendcommand, strcat(strcat(presBuff,","), tempBuff));
dgutsch 3:6494a5d6f2ba 122 //pc.printf("%s\r\n", (*command).c_str());
dgutsch 3:6494a5d6f2ba 123 //pc.printf("Temperature and Pressure Sent\r\n");
jkrzesni 2:10a9331f04e2 124
jkrzesni 2:10a9331f04e2 125
dgutsch 4:44e43da30b0e 126 if (at.send(((const char*)command)) && at.recv("OK")) {
dgutsch 4:44e43da30b0e 127 pc.printf("light reading sent!\r\n");
dgutsch 4:44e43da30b0e 128 }
dgutsch 4:44e43da30b0e 129 else {
dgutsch 4:44e43da30b0e 130 pc.printf("send not successful\r\n");
dgutsch 4:44e43da30b0e 131 }
jkrzesni 2:10a9331f04e2 132
dgutsch 3:6494a5d6f2ba 133 wait(2);
jkrzesni 1:731cbdf8e672 134
dgutsch 4:44e43da30b0e 135 }*/
dgutsch 3:6494a5d6f2ba 136
dgutsch 4:44e43da30b0e 137 //at.flush();
jkrzesni 1:731cbdf8e672 138
jkrzesni 1:731cbdf8e672 139 }
jkrzesni 1:731cbdf8e672 140 return(0);
jkrzesni 1:731cbdf8e672 141 }