Dragonfly to Grove Moisture Sensor using the a/d converter Latest mbed source and updated location for mtsas library. 2015-10-19
Fork of YYY_Dragonfly_Moisture by
main.cpp@2:408038aed24c, 2015-10-20 (annotated)
- Committer:
- BlueShadow
- Date:
- Tue Oct 20 00:50:53 2015 +0000
- Revision:
- 2:408038aed24c
- Parent:
- 1:eb9b9f5b59e1
Latest mbed source and updated location for mtsas library. 2015-10-19
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
BlueShadow | 0:f02c2685ecef | 1 | #include "mbed.h" |
BlueShadow | 0:f02c2685ecef | 2 | #include "mtsas.h" |
BlueShadow | 0:f02c2685ecef | 3 | |
BlueShadow | 0:f02c2685ecef | 4 | AnalogIn sensor(PC_2); //A0 |
BlueShadow | 0:f02c2685ecef | 5 | DigitalIn button(PA_9); //D5 |
BlueShadow | 0:f02c2685ecef | 6 | |
BlueShadow | 0:f02c2685ecef | 7 | int main(void) |
BlueShadow | 0:f02c2685ecef | 8 | { |
BlueShadow | 0:f02c2685ecef | 9 | |
BlueShadow | 0:f02c2685ecef | 10 | //Sets the log level to INFO, higher log levels produce more log output. |
BlueShadow | 0:f02c2685ecef | 11 | //Possible levels: NONE, FATAL, ERROR, WARNING, INFO, DEBUG, TRACE |
BlueShadow | 0:f02c2685ecef | 12 | MTSLog::setLogLevel(MTSLog::TRACE_LEVEL); |
BlueShadow | 0:f02c2685ecef | 13 | |
BlueShadow | 0:f02c2685ecef | 14 | wait(5); |
BlueShadow | 0:f02c2685ecef | 15 | printf("Moisture Meter Starting ...\n\r"); |
BlueShadow | 0:f02c2685ecef | 16 | |
BlueShadow | 0:f02c2685ecef | 17 | //Modify to match your apn if you are using an HSPA radio with a SIM card |
BlueShadow | 0:f02c2685ecef | 18 | // const char APN[] = "aer05.aerisapn.net"; |
BlueShadow | 1:eb9b9f5b59e1 | 19 | const char APN[] = "aer.aerisapn.net"; |
BlueShadow | 0:f02c2685ecef | 20 | |
BlueShadow | 0:f02c2685ecef | 21 | //Phone number to send to and receive from. Must be in the form "1xxxxxxxxxx" |
BlueShadow | 1:eb9b9f5b59e1 | 22 | string PHONE_NUMBER = "16122077184" ; // Need to change the phone number to send a text message |
BlueShadow | 1:eb9b9f5b59e1 | 23 | // string PHONE_NUMBER = "FORGOT TO SET THE PHONE NUMBER"; // Need to change the phone number to send a text message |
BlueShadow | 0:f02c2685ecef | 24 | |
BlueShadow | 0:f02c2685ecef | 25 | Cellular::Sms txtmsg; |
BlueShadow | 0:f02c2685ecef | 26 | txtmsg.phoneNumber = PHONE_NUMBER; |
BlueShadow | 0:f02c2685ecef | 27 | txtmsg.message = "Hello World! MTSAS is up and running!"; |
BlueShadow | 0:f02c2685ecef | 28 | |
BlueShadow | 0:f02c2685ecef | 29 | //Program communications between the processor and the cell radio |
BlueShadow | 0:f02c2685ecef | 30 | MTSSerialFlowControl* io = new MTSSerialFlowControl(RADIO_TX, RADIO_RX, RADIO_RTS, RADIO_CTS); |
BlueShadow | 0:f02c2685ecef | 31 | //Sets the baud rate for communicating with the radio |
BlueShadow | 0:f02c2685ecef | 32 | io->baud(115200); |
BlueShadow | 0:f02c2685ecef | 33 | //Creates a radio object |
BlueShadow | 0:f02c2685ecef | 34 | Cellular* radio = CellularFactory::create(io); |
BlueShadow | 0:f02c2685ecef | 35 | if (! radio) { |
BlueShadow | 0:f02c2685ecef | 36 | logFatal("Failed to initialize radio"); |
BlueShadow | 0:f02c2685ecef | 37 | return 1; |
BlueShadow | 0:f02c2685ecef | 38 | } |
BlueShadow | 0:f02c2685ecef | 39 | Transport::setTransport(radio); // added lines to set radio apn address |
BlueShadow | 0:f02c2685ecef | 40 | |
BlueShadow | 0:f02c2685ecef | 41 | //Set radio APN |
BlueShadow | 0:f02c2685ecef | 42 | for (int i = 0; i < 10; i++) { |
BlueShadow | 0:f02c2685ecef | 43 | if (i >= 10) { |
BlueShadow | 0:f02c2685ecef | 44 | logError("Failed to set APN\n"); |
BlueShadow | 0:f02c2685ecef | 45 | } |
BlueShadow | 0:f02c2685ecef | 46 | if (radio->setApn(APN) == MTS_SUCCESS) { |
BlueShadow | 0:f02c2685ecef | 47 | logInfo("Successfully set APN\n"); |
BlueShadow | 0:f02c2685ecef | 48 | break; |
BlueShadow | 0:f02c2685ecef | 49 | } else { |
BlueShadow | 0:f02c2685ecef | 50 | wait(1); |
BlueShadow | 0:f02c2685ecef | 51 | } |
BlueShadow | 0:f02c2685ecef | 52 | } |
BlueShadow | 0:f02c2685ecef | 53 | |
BlueShadow | 0:f02c2685ecef | 54 | if(PHONE_NUMBER == "CHANGE ME PLEASE") { |
BlueShadow | 0:f02c2685ecef | 55 | while(1) { |
BlueShadow | 0:f02c2685ecef | 56 | printf("FORGOT TO SET THE PHONE NUMBER\r\n"); |
BlueShadow | 0:f02c2685ecef | 57 | wait(1.0f); |
BlueShadow | 0:f02c2685ecef | 58 | } |
BlueShadow | 0:f02c2685ecef | 59 | } |
BlueShadow | 0:f02c2685ecef | 60 | |
BlueShadow | 0:f02c2685ecef | 61 | float value = sensor; |
BlueShadow | 0:f02c2685ecef | 62 | wait(0.1f); |
BlueShadow | 0:f02c2685ecef | 63 | |
BlueShadow | 0:f02c2685ecef | 64 | while(1) { |
BlueShadow | 0:f02c2685ecef | 65 | printf("\r\n Waiting for button press. \r\n"); |
BlueShadow | 0:f02c2685ecef | 66 | while(!button) { |
BlueShadow | 0:f02c2685ecef | 67 | //Do Nothing |
BlueShadow | 0:f02c2685ecef | 68 | } |
BlueShadow | 0:f02c2685ecef | 69 | printf("3\r\n"); |
BlueShadow | 0:f02c2685ecef | 70 | wait(1.0f); |
BlueShadow | 0:f02c2685ecef | 71 | printf("2\r\n"); |
BlueShadow | 0:f02c2685ecef | 72 | wait(1.0f); |
BlueShadow | 0:f02c2685ecef | 73 | printf("1\r\n"); |
BlueShadow | 0:f02c2685ecef | 74 | wait(1.0f); |
BlueShadow | 0:f02c2685ecef | 75 | printf(" Measuring!! \r\n"); |
BlueShadow | 0:f02c2685ecef | 76 | wait(2); |
BlueShadow | 0:f02c2685ecef | 77 | value = sensor; |
BlueShadow | 0:f02c2685ecef | 78 | wait (1); |
BlueShadow | 0:f02c2685ecef | 79 | |
BlueShadow | 0:f02c2685ecef | 80 | if (value > .8f) { |
BlueShadow | 0:f02c2685ecef | 81 | txtmsg.message = "Call a life Gaurd Now! ;-)"; |
BlueShadow | 0:f02c2685ecef | 82 | } else if (value > .6f) { |
BlueShadow | 0:f02c2685ecef | 83 | txtmsg.message = "Feeling Groovey"; |
BlueShadow | 0:f02c2685ecef | 84 | } else if (value > .4f) { |
BlueShadow | 0:f02c2685ecef | 85 | txtmsg.message = "I'm Good"; |
BlueShadow | 0:f02c2685ecef | 86 | } else { |
BlueShadow | 0:f02c2685ecef | 87 | txtmsg.message = "How Dry I am"; |
BlueShadow | 0:f02c2685ecef | 88 | } |
BlueShadow | 0:f02c2685ecef | 89 | printf("%s\n\r", txtmsg.message.c_str()); |
BlueShadow | 0:f02c2685ecef | 90 | printf("Sensor is: %2.2f\r\n", value); |
BlueShadow | 0:f02c2685ecef | 91 | |
BlueShadow | 0:f02c2685ecef | 92 | /************************************** |
BlueShadow | 0:f02c2685ecef | 93 | * how do we want to send data? |
BlueShadow | 0:f02c2685ecef | 94 | **************************************/ |
BlueShadow | 0:f02c2685ecef | 95 | |
BlueShadow | 0:f02c2685ecef | 96 | // Send SMS message to phone |
BlueShadow | 0:f02c2685ecef | 97 | for (int i = 1; i < 6; i++) { |
BlueShadow | 0:f02c2685ecef | 98 | if(radio->sendSMS(txtmsg) == MTS_SUCCESS) { |
BlueShadow | 0:f02c2685ecef | 99 | logInfo("Sent SMS successfully: <%s>\n", txtmsg.message.c_str()); |
BlueShadow | 0:f02c2685ecef | 100 | break; |
BlueShadow | 0:f02c2685ecef | 101 | } else { |
BlueShadow | 0:f02c2685ecef | 102 | logError("Failed to send SMS: <%s>\n", txtmsg.message.c_str()); |
BlueShadow | 0:f02c2685ecef | 103 | } |
BlueShadow | 0:f02c2685ecef | 104 | } |
BlueShadow | 0:f02c2685ecef | 105 | } |
BlueShadow | 0:f02c2685ecef | 106 | } |
BlueShadow | 0:f02c2685ecef | 107 | |
BlueShadow | 0:f02c2685ecef | 108 |