Dragonfly to Grove Moisture Sensor using the a/d converter Latest mbed source and updated location for mtsas library. 2015-10-19

Dependencies:   mbed-src mtsas

Fork of YYY_Dragonfly_Moisture by Paul Jaeger

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?

UserRevisionLine numberNew 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