rgjefklgf

Dependencies:   mbed ATParser MPL3115A2 TSL2561

Committer:
dgutsch
Date:
Fri Apr 20 21:47:49 2018 +0000
Revision:
6:e7d266de146a
Parent:
4:44e43da30b0e
she works

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"
dgutsch 6:e7d266de146a 3 #include "TSL2561.h"
jkrzesni 0:53659b13e448 4 #include "MPL3115A2.h"
jkrzesni 1:731cbdf8e672 5 #include <string>
dgutsch 6:e7d266de146a 6 #include <algorithm>
jkrzesni 1:731cbdf8e672 7 #include <iostream>
jkrzesni 1:731cbdf8e672 8
dgutsch 3:6494a5d6f2ba 9
dgutsch 3:6494a5d6f2ba 10
jkrzesni 0:53659b13e448 11
dgutsch 6:e7d266de146a 12 MPL3115A2 pressure_sensor(PB_7, PB_6, 0x60);
jkrzesni 0:53659b13e448 13 BufferedSerial pc(SERIAL_TX, SERIAL_RX);
jkrzesni 0:53659b13e448 14 BufferedSerial dev(PA_9, PA_10);
jkrzesni 0:53659b13e448 15 DigitalOut myled(LED1);
dgutsch 4:44e43da30b0e 16 TSL2561 light_sensor(PB_7, PB_6); // addr: 0x29 since addr is groundedx
jkrzesni 0:53659b13e448 17
jkrzesni 1:731cbdf8e672 18 using namespace std;
dgutsch 6:e7d266de146a 19
dgutsch 6:e7d266de146a 20 bool send_it(float * fArray, ATParser *at);
dgutsch 6:e7d266de146a 21
dgutsch 6:e7d266de146a 22
dgutsch 6:e7d266de146a 23 int main() {
dgutsch 6:e7d266de146a 24
jkrzesni 0:53659b13e448 25 double temp, pres;
jkrzesni 0:53659b13e448 26 pc.baud(115200);
jkrzesni 0:53659b13e448 27 dev.baud(115200);
jkrzesni 0:53659b13e448 28
dgutsch 4:44e43da30b0e 29 light_sensor.set_timing_reg(0x10); // nominal integration time: 402ms (max in datasheet)
dgutsch 4:44e43da30b0e 30
dgutsch 3:6494a5d6f2ba 31 pc.printf("Begin headaches\r\n");
jkrzesni 0:53659b13e448 32
jkrzesni 0:53659b13e448 33 ATParser at = ATParser(dev, "\r\n");
jkrzesni 0:53659b13e448 34
jkrzesni 0:53659b13e448 35 if (at.send("AT") && at.recv("OK"))
dgutsch 3:6494a5d6f2ba 36 pc.printf("AT Communication Success\r\n");
jkrzesni 0:53659b13e448 37
jkrzesni 1:731cbdf8e672 38 // Set network name and passphrase
jkrzesni 1:731cbdf8e672 39 if (at.send("AT+NI=1,MTCDT-19400691") && at.recv("OK"))
dgutsch 3:6494a5d6f2ba 40 pc.printf("Network ID specified\r\n");
jkrzesni 1:731cbdf8e672 41 if (at.send("AT+NK=1,MTCDT-19400691") && at.recv("OK"))
dgutsch 3:6494a5d6f2ba 42 pc.printf("Network Passphrase specified\r\n");
dgutsch 6:e7d266de146a 43
dgutsch 4:44e43da30b0e 44 if(at.send("AT+FSB=1") && at.recv("OK"))
dgutsch 4:44e43da30b0e 45 pc.printf("band specified\r\n");
dgutsch 6:e7d266de146a 46
dgutsch 4:44e43da30b0e 47 bool joined = false;
dgutsch 4:44e43da30b0e 48 while(!joined) {
dgutsch 4:44e43da30b0e 49 if (at.send("AT+JOIN") && at.recv("OK")) {
dgutsch 3:6494a5d6f2ba 50 pc.printf("Joined Network!\r\n");
dgutsch 4:44e43da30b0e 51 joined = true;
dgutsch 4:44e43da30b0e 52 }
dgutsch 4:44e43da30b0e 53 else {
dgutsch 4:44e43da30b0e 54 pc.printf("network not joined\r\n");
dgutsch 4:44e43da30b0e 55 }
dgutsch 3:6494a5d6f2ba 56 }
dgutsch 3:6494a5d6f2ba 57
dgutsch 6:e7d266de146a 58 // set big data rate
dgutsch 6:e7d266de146a 59 if(at.send("AT+TXDR=DR2\r\n") && at.recv("OK"))
dgutsch 6:e7d266de146a 60 pc.printf("data rate set.\r\n");
dgutsch 6:e7d266de146a 61 wait(1);
dgutsch 4:44e43da30b0e 62
dgutsch 4:44e43da30b0e 63
dgutsch 4:44e43da30b0e 64 char lightBuff[20];
dgutsch 6:e7d266de146a 65 char sendcommand[5000] = "AT+SEND=";
dgutsch 6:e7d266de146a 66 float pressureCollections[24];
dgutsch 6:e7d266de146a 67 float tempCollections[24];
jkrzesni 0:53659b13e448 68
dgutsch 6:e7d266de146a 69 int i = 0;
dgutsch 6:e7d266de146a 70 while(1) {
dgutsch 6:e7d266de146a 71 // wait
dgutsch 6:e7d266de146a 72 wait(3600);
dgutsch 6:e7d266de146a 73 if(i == 24) {
dgutsch 6:e7d266de146a 74 send_it(&pressureCollections[0], &at);
dgutsch 6:e7d266de146a 75 send_it(&tempCollections[0], &at);
dgutsch 6:e7d266de146a 76 i = 0;
dgutsch 6:e7d266de146a 77 }
dgutsch 4:44e43da30b0e 78
dgutsch 3:6494a5d6f2ba 79
dgutsch 6:e7d266de146a 80 //float light_value = light_sensor.lux(); // read light sensor
dgutsch 6:e7d266de146a 81 temp = pressure_sensor.getTemperature();
dgutsch 6:e7d266de146a 82 pres = pressure_sensor.getAltitude();
dgutsch 6:e7d266de146a 83 //pc.printf("temp: %f, press: %f\r\n", temp, pres);
dgutsch 6:e7d266de146a 84 tempCollections[i] = temp;
dgutsch 6:e7d266de146a 85 pressureCollections[i++] = pres;
dgutsch 6:e7d266de146a 86 //pc.printf("%f\n\r", dataCollections[i - 1]);
jkrzesni 1:731cbdf8e672 87
jkrzesni 1:731cbdf8e672 88 }
jkrzesni 1:731cbdf8e672 89 return(0);
dgutsch 6:e7d266de146a 90 }
dgutsch 6:e7d266de146a 91
dgutsch 6:e7d266de146a 92
dgutsch 6:e7d266de146a 93
dgutsch 6:e7d266de146a 94 bool send_it(float * fArray, ATParser *at) {
dgutsch 6:e7d266de146a 95 //pc.printf("it worked\r\n");
dgutsch 6:e7d266de146a 96
dgutsch 6:e7d266de146a 97 char send1[100];
dgutsch 6:e7d266de146a 98 char send2[100];
dgutsch 6:e7d266de146a 99
dgutsch 6:e7d266de146a 100 sprintf(send1, "AT+SEND=%3.2f %3.2f %3.2f %3.2f %3.2f %3.2f %3.2f %3.2f %3.2f %3.2f %3.2f %3.2f\r\n", fArray[0], fArray[1], fArray[2], fArray[3], fArray[4], fArray[5], fArray[6], fArray[7], fArray[8], fArray[9], fArray[10], fArray[11]);
dgutsch 6:e7d266de146a 101 wait(2);
dgutsch 6:e7d266de146a 102 //pc.printf("%s\r\n", *send1);
dgutsch 6:e7d266de146a 103
dgutsch 6:e7d266de146a 104 sprintf(send2, "AT+SEND=%3.2f %3.2f %3.2f %3.2f %3.2f %3.2f %3.2f %3.2f %3.2f %3.2f %3.2f %3.2f\r\n", fArray[12], fArray[13], fArray[14], fArray[15], fArray[16], fArray[17], fArray[18], fArray[19], fArray[20], fArray[21], fArray[22], fArray[23]);
dgutsch 6:e7d266de146a 105
dgutsch 6:e7d266de146a 106 //pc.printf("%s\r\n", *send2);
dgutsch 6:e7d266de146a 107 bool did_it_work = false;
dgutsch 6:e7d266de146a 108 //wait(2);
dgutsch 6:e7d266de146a 109
dgutsch 6:e7d266de146a 110
dgutsch 6:e7d266de146a 111 if ((*at).send(send1) && (*at).recv("OK")) {
dgutsch 6:e7d266de146a 112 pc.printf("light reading sent!\r\n");
dgutsch 6:e7d266de146a 113 did_it_work = true;
dgutsch 6:e7d266de146a 114 }
dgutsch 6:e7d266de146a 115 else {
dgutsch 6:e7d266de146a 116 pc.printf("send not successful\r\n");
dgutsch 6:e7d266de146a 117 did_it_work = false;
dgutsch 6:e7d266de146a 118 }
dgutsch 6:e7d266de146a 119 //////////////send2////////////////////
dgutsch 6:e7d266de146a 120
dgutsch 6:e7d266de146a 121 if ((*at).send(send2) && (*at).recv("OK")) {
dgutsch 6:e7d266de146a 122 pc.printf("light reading sent!\r\n");
dgutsch 6:e7d266de146a 123 return did_it_work && true;
dgutsch 6:e7d266de146a 124 }
dgutsch 6:e7d266de146a 125 else {
dgutsch 6:e7d266de146a 126 pc.printf("send not successful\r\n");
dgutsch 6:e7d266de146a 127 return false;
dgutsch 6:e7d266de146a 128 }
dgutsch 6:e7d266de146a 129 }
dgutsch 6:e7d266de146a 130