kaems

Dependencies:   TextLCD WakeUp mbed

Fork of Final by Sandesh G

Committer:
Lakshmikumar
Date:
Thu Jan 29 12:28:06 2015 +0000
Revision:
1:afb1111bab40
Parent:
0:e876ef14b820
KAEMS

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Lakshmikumar 0:e876ef14b820 1 #include"mbed.h"
Lakshmikumar 0:e876ef14b820 2 #include"TextLCD.h"
Lakshmikumar 1:afb1111bab40 3 #include"WakeUp.h"
Lakshmikumar 1:afb1111bab40 4 #include"mBuinoSleep.h"
Lakshmikumar 0:e876ef14b820 5 //AnalogIn sm1(p16);
Lakshmikumar 0:e876ef14b820 6 //AnalogIn sm2(p17);
Lakshmikumar 0:e876ef14b820 7 //AnalogIn sm3(p18);
Lakshmikumar 0:e876ef14b820 8 //AnalogIn sm4(p19);
Lakshmikumar 1:afb1111bab40 9
Lakshmikumar 1:afb1111bab40 10 DigitalOut myled(LED1);
Lakshmikumar 1:afb1111bab40 11 DigitalOut ac(p20);
Lakshmikumar 0:e876ef14b820 12 Serial GPRS(p9,p10);
Lakshmikumar 0:e876ef14b820 13 Serial pc(USBTX,USBRX);
Lakshmikumar 0:e876ef14b820 14 TextLCD lcd(p26, p25, p24, p23, p22, p21); //rs,e,d0-d3
Lakshmikumar 0:e876ef14b820 15 LocalFileSystem local("local");
Lakshmikumar 1:afb1111bab40 16
Lakshmikumar 0:e876ef14b820 17 char a=0x1A,c=0x0D;
Lakshmikumar 0:e876ef14b820 18 char num[]="7411755981";
Lakshmikumar 0:e876ef14b820 19 float s[5],m[5];
Lakshmikumar 0:e876ef14b820 20 float ma;
Lakshmikumar 0:e876ef14b820 21
Lakshmikumar 1:afb1111bab40 22 int b=100,count,fb;
Lakshmikumar 1:afb1111bab40 23 char col1[]="ITERATION",col2[]="SM1",col3[]="SM2",col4[]="SM3",col5[]="SM4",col6[]="Mean",col7[]="Configuring for data services",col8[]="Uploading Sensor values to the Internet ",col9[]="Feedback from Internet",col10[]="Required action",col11[]="Sending SMS",col12[]="Excel Shet File Updated";
Lakshmikumar 1:afb1111bab40 24 char *char1;
Lakshmikumar 1:afb1111bab40 25 float d;
Lakshmikumar 1:afb1111bab40 26 /////////////////////////////////////////////////////////////////////////////////////////////////////////////
Lakshmikumar 1:afb1111bab40 27 void sleepwait(int q)
Lakshmikumar 1:afb1111bab40 28 { int x;
Lakshmikumar 1:afb1111bab40 29 x=q*1000;
Lakshmikumar 1:afb1111bab40 30 myled=1;
Lakshmikumar 1:afb1111bab40 31 WakeUp::calibrate();
Lakshmikumar 1:afb1111bab40 32 WakeUp::set_ms(x);
Lakshmikumar 1:afb1111bab40 33 mBuinoSleep(Sleep);
Lakshmikumar 1:afb1111bab40 34 }
Lakshmikumar 1:afb1111bab40 35 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Lakshmikumar 0:e876ef14b820 36 void SensorRead()
Lakshmikumar 1:afb1111bab40 37 { lcd.cls();
Lakshmikumar 0:e876ef14b820 38 lcd.locate(0,0);
Lakshmikumar 0:e876ef14b820 39 lcd.printf("Sensor Readings\r");
Lakshmikumar 1:afb1111bab40 40 s[1]=0.31;
Lakshmikumar 0:e876ef14b820 41 m[1]=(0.057*(s[1]*1024))+25.072;
Lakshmikumar 0:e876ef14b820 42 lcd.cls();
Lakshmikumar 0:e876ef14b820 43 lcd.printf("Raw SM1=%0.3f",s[1]);
Lakshmikumar 1:afb1111bab40 44 sleepwait(1);
Lakshmikumar 1:afb1111bab40 45 s[2]=0.25;
Lakshmikumar 0:e876ef14b820 46 m[2]=(0.057*(s[2]*1024))+25.072;
Lakshmikumar 0:e876ef14b820 47 lcd.cls();
Lakshmikumar 0:e876ef14b820 48 lcd.printf("Raw SM2=%0.3f",s[2]);
Lakshmikumar 1:afb1111bab40 49 sleepwait(1);
Lakshmikumar 1:afb1111bab40 50 s[3]=0.33;
Lakshmikumar 0:e876ef14b820 51 m[3]=(0.057*(s[3]*1024))+25.072;
Lakshmikumar 0:e876ef14b820 52 lcd.cls();
Lakshmikumar 0:e876ef14b820 53 lcd.printf("Raw SM3=%0.3f",s[3]);
Lakshmikumar 1:afb1111bab40 54 sleepwait(1);
Lakshmikumar 1:afb1111bab40 55 s[4]=0.25;
Lakshmikumar 0:e876ef14b820 56 m[4]=(0.057*(s[4]*1024))+25.072;
Lakshmikumar 0:e876ef14b820 57 lcd.cls();
Lakshmikumar 0:e876ef14b820 58 lcd.printf("Raw SM4=%0.3f",s[4]);
Lakshmikumar 1:afb1111bab40 59 sleepwait(1);
Lakshmikumar 0:e876ef14b820 60 ma=(m[1]+m[2]+m[3]+m[4])/4;
Lakshmikumar 0:e876ef14b820 61 lcd.cls();
Lakshmikumar 0:e876ef14b820 62 lcd.locate(0,0);
Lakshmikumar 1:afb1111bab40 63 lcd.printf("Mean =%0.3f",ma);
Lakshmikumar 1:afb1111bab40 64 sleepwait(2);
Lakshmikumar 0:e876ef14b820 65 }
Lakshmikumar 0:e876ef14b820 66
Lakshmikumar 1:afb1111bab40 67 //////////////////////////////////////////////////////////////////////////////////////////////////////////////
Lakshmikumar 1:afb1111bab40 68 void ac_control()
Lakshmikumar 1:afb1111bab40 69 {
Lakshmikumar 1:afb1111bab40 70 if(char1[0]=='0' ||char1[0]=='2'||char1[0]=='4'||char1[0]=='6'||char1[0]=='8')
Lakshmikumar 1:afb1111bab40 71 { lcd.cls();
Lakshmikumar 1:afb1111bab40 72 lcd.printf("Bulb ON");
Lakshmikumar 1:afb1111bab40 73 ac=1;
Lakshmikumar 1:afb1111bab40 74 }
Lakshmikumar 1:afb1111bab40 75 else
Lakshmikumar 1:afb1111bab40 76 { lcd.cls();
Lakshmikumar 1:afb1111bab40 77 lcd.printf("Bulb OFF");
Lakshmikumar 1:afb1111bab40 78 ac=0;
Lakshmikumar 1:afb1111bab40 79 }
Lakshmikumar 1:afb1111bab40 80 }
Lakshmikumar 1:afb1111bab40 81
Lakshmikumar 1:afb1111bab40 82 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Lakshmikumar 0:e876ef14b820 83 void xlfile()
Lakshmikumar 1:afb1111bab40 84 {
Lakshmikumar 1:afb1111bab40 85 //Local storage (On board flash memory of 2MB)
Lakshmikumar 0:e876ef14b820 86 count++;
Lakshmikumar 0:e876ef14b820 87 FILE *fp=fopen("/local/KAEMS.csv","a");
Lakshmikumar 1:afb1111bab40 88 fprintf(fp,"%d,%0.3f,%0.3f,%0.3f,%0.3f,%0.3f,%s,%s,%c,%s,%s,%s\n",count,m[1],m[2],m[3],m[4],ma,col7,col8,char1[0],col10,col11,col12);
Lakshmikumar 0:e876ef14b820 89 fclose(fp);
Lakshmikumar 0:e876ef14b820 90 lcd.cls();
Lakshmikumar 0:e876ef14b820 91 lcd.printf("File updated");
Lakshmikumar 1:afb1111bab40 92 sleepwait(1);
Lakshmikumar 0:e876ef14b820 93 }
Lakshmikumar 1:afb1111bab40 94 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Lakshmikumar 1:afb1111bab40 95
Lakshmikumar 0:e876ef14b820 96 void flushSerialBuffer(void)
Lakshmikumar 1:afb1111bab40 97 { char char2=0;
Lakshmikumar 0:e876ef14b820 98 while (GPRS.readable())
Lakshmikumar 1:afb1111bab40 99 { char2=GPRS.getc();
Lakshmikumar 0:e876ef14b820 100 } return;
Lakshmikumar 0:e876ef14b820 101 }
Lakshmikumar 1:afb1111bab40 102
Lakshmikumar 1:afb1111bab40 103 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Lakshmikumar 1:afb1111bab40 104 void data_tx_rx()
Lakshmikumar 0:e876ef14b820 105 {
Lakshmikumar 0:e876ef14b820 106 //GPRS commands
Lakshmikumar 1:afb1111bab40 107 WakeUp::calibrate();
Lakshmikumar 0:e876ef14b820 108 lcd.cls();
Lakshmikumar 0:e876ef14b820 109 lcd.locate(0,0);
Lakshmikumar 0:e876ef14b820 110 lcd.printf(" Updating\n www.kaems.org");
Lakshmikumar 1:afb1111bab40 111 sleepwait(3);
Lakshmikumar 1:afb1111bab40 112
Lakshmikumar 0:e876ef14b820 113 GPRS.printf("AT+SAPBR=0,1\r\n");
Lakshmikumar 1:afb1111bab40 114 sleepwait(3);
Lakshmikumar 1:afb1111bab40 115
Lakshmikumar 0:e876ef14b820 116 GPRS.printf("AT+SAPBR=3,1,\"CONTYPE\",\"GPRS\"\r\n");
Lakshmikumar 1:afb1111bab40 117 sleepwait(3);
Lakshmikumar 1:afb1111bab40 118
Lakshmikumar 0:e876ef14b820 119 GPRS.printf("AT+SAPBR=3,1,\"APN\",\"AIRCELGPRS.COM\"\r\n");
Lakshmikumar 1:afb1111bab40 120 sleepwait(3);
Lakshmikumar 1:afb1111bab40 121
Lakshmikumar 0:e876ef14b820 122 GPRS.printf("AT+SAPBR=1,1\r\n");
Lakshmikumar 1:afb1111bab40 123 sleepwait(3);
Lakshmikumar 1:afb1111bab40 124
Lakshmikumar 0:e876ef14b820 125 GPRS.printf("AT+HTTPINIT\r\n");
Lakshmikumar 1:afb1111bab40 126 sleepwait(2);
Lakshmikumar 1:afb1111bab40 127
Lakshmikumar 0:e876ef14b820 128 GPRS.printf("AT+HTTPPARA=\"CID\",1\r\n");
Lakshmikumar 1:afb1111bab40 129 sleepwait(2);
Lakshmikumar 1:afb1111bab40 130
Lakshmikumar 0:e876ef14b820 131 GPRS.printf("AT+HTTPPARA=\"URL\",\"http://kaems.org/update.php?u=3&t=23&h=34&s1=%f&s2=%f&s3=%f&s4=%f&ph=5&b=%d\"\r\n",m[1],m[2],m[3],m[4],b--);
Lakshmikumar 1:afb1111bab40 132 sleepwait(2);
Lakshmikumar 1:afb1111bab40 133
Lakshmikumar 0:e876ef14b820 134 GPRS.printf("AT+HTTPDATA=1000,5000\r\n");
Lakshmikumar 1:afb1111bab40 135 sleepwait(8);
Lakshmikumar 1:afb1111bab40 136
Lakshmikumar 0:e876ef14b820 137 GPRS.printf("AT+HTTPACTION=1\r\n");
Lakshmikumar 1:afb1111bab40 138 sleepwait(5);
Lakshmikumar 1:afb1111bab40 139
Lakshmikumar 1:afb1111bab40 140 GPRS.printf("AT+HTTPPARA=\"CID\",1\r\n");
Lakshmikumar 1:afb1111bab40 141 sleepwait(2);
Lakshmikumar 1:afb1111bab40 142
Lakshmikumar 1:afb1111bab40 143 GPRS.printf("AT+HTTPPARA=\"URL\",\"http://kaems.org/feedback.php\"\r\n");
Lakshmikumar 1:afb1111bab40 144 sleepwait(2);
Lakshmikumar 1:afb1111bab40 145
Lakshmikumar 1:afb1111bab40 146 GPRS.printf("AT+HTTPACTION=0\r\n");
Lakshmikumar 1:afb1111bab40 147 sleepwait(5);
Lakshmikumar 1:afb1111bab40 148
Lakshmikumar 1:afb1111bab40 149 flushSerialBuffer();
Lakshmikumar 1:afb1111bab40 150 GPRS.printf("AT+HTTPREAD\r\n");
Lakshmikumar 1:afb1111bab40 151 while(!GPRS.readable())
Lakshmikumar 1:afb1111bab40 152 { }
Lakshmikumar 1:afb1111bab40 153 GPRS.scanf("%s",char1);
Lakshmikumar 1:afb1111bab40 154 GPRS.scanf("%s",char1);
Lakshmikumar 1:afb1111bab40 155 GPRS.scanf("%s",char1);
Lakshmikumar 1:afb1111bab40 156
Lakshmikumar 1:afb1111bab40 157 pc.printf("Str=%c\r\n",char1[0]);
Lakshmikumar 0:e876ef14b820 158 GPRS.printf("AT+HTTPTERM\r\n");
Lakshmikumar 1:afb1111bab40 159
Lakshmikumar 1:afb1111bab40 160
Lakshmikumar 0:e876ef14b820 161 lcd.cls();
Lakshmikumar 0:e876ef14b820 162 lcd.printf("KAEMS UPDATED");
Lakshmikumar 1:afb1111bab40 163
Lakshmikumar 1:afb1111bab40 164 lcd.cls();
Lakshmikumar 1:afb1111bab40 165 lcd.printf("Fbk=%c",char1[0]);
Lakshmikumar 1:afb1111bab40 166 sleepwait(2);
Lakshmikumar 0:e876ef14b820 167 }
Lakshmikumar 1:afb1111bab40 168 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Lakshmikumar 1:afb1111bab40 169
Lakshmikumar 1:afb1111bab40 170 /*void feedback()
Lakshmikumar 0:e876ef14b820 171 { lcd.cls();
Lakshmikumar 0:e876ef14b820 172 lcd.locate(0,0);
Lakshmikumar 0:e876ef14b820 173 lcd.printf("Waiting for feedback");
Lakshmikumar 0:e876ef14b820 174 wait(3);
Lakshmikumar 0:e876ef14b820 175 GPRS.printf("AT+SAPBR=0,1\r\n");
Lakshmikumar 0:e876ef14b820 176 wait(3);
Lakshmikumar 0:e876ef14b820 177 GPRS.printf("AT+SAPBR=3,1,\"CONTYPE\",\"GPRS\"\r\n");
Lakshmikumar 0:e876ef14b820 178 wait(3);
Lakshmikumar 0:e876ef14b820 179 GPRS.printf("AT+SAPBR=3,1,\"APN\",\"AIRCELGPRS.COM\"\r\n");
Lakshmikumar 0:e876ef14b820 180 wait(3);
Lakshmikumar 0:e876ef14b820 181 GPRS.printf("AT+SAPBR=1,1\r\n");
Lakshmikumar 0:e876ef14b820 182 wait(3);
Lakshmikumar 0:e876ef14b820 183 GPRS.printf("AT+HTTPINIT\r\n");
Lakshmikumar 0:e876ef14b820 184 wait(2);
Lakshmikumar 0:e876ef14b820 185 GPRS.printf("AT+HTTPPARA=\"CID\",1\r\n");
Lakshmikumar 0:e876ef14b820 186 wait(2);
Lakshmikumar 1:afb1111bab40 187
Lakshmikumar 0:e876ef14b820 188 // switch(str2[0]){
Lakshmikumar 0:e876ef14b820 189 // case '1': break;
Lakshmikumar 0:e876ef14b820 190 //
Lakshmikumar 0:e876ef14b820 191 // }
Lakshmikumar 0:e876ef14b820 192 wait(5);
Lakshmikumar 0:e876ef14b820 193 GPRS.printf("AT+HTTPTERM\r\n");
Lakshmikumar 1:afb1111bab40 194 } */
Lakshmikumar 1:afb1111bab40 195 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Lakshmikumar 0:e876ef14b820 196 void sms()
Lakshmikumar 1:afb1111bab40 197 {
Lakshmikumar 0:e876ef14b820 198 GPRS.printf("AT\r\n");
Lakshmikumar 1:afb1111bab40 199 sleepwait(2);
Lakshmikumar 1:afb1111bab40 200
Lakshmikumar 0:e876ef14b820 201 GPRS.printf("AT+CMGF=1\r\n");
Lakshmikumar 1:afb1111bab40 202 sleepwait(2);
Lakshmikumar 1:afb1111bab40 203
Lakshmikumar 0:e876ef14b820 204 GPRS.printf("AT+CMGS=\"%s\"\r\n",num);
Lakshmikumar 1:afb1111bab40 205 sleepwait(3);
Lakshmikumar 0:e876ef14b820 206
Lakshmikumar 0:e876ef14b820 207 if(ma<40)
Lakshmikumar 0:e876ef14b820 208 {
Lakshmikumar 1:afb1111bab40 209 GPRS.printf(" Water level is low \nMoisture level = %f \r\n",ma);
Lakshmikumar 1:afb1111bab40 210 sleepwait(1);
Lakshmikumar 1:afb1111bab40 211
Lakshmikumar 0:e876ef14b820 212 GPRS.printf("%c",a);
Lakshmikumar 1:afb1111bab40 213 sleepwait(2);
Lakshmikumar 0:e876ef14b820 214 }
Lakshmikumar 0:e876ef14b820 215
Lakshmikumar 0:e876ef14b820 216 if(ma>40)
Lakshmikumar 0:e876ef14b820 217 {
Lakshmikumar 1:afb1111bab40 218 GPRS.printf(" Land has sufficient amount of water \n Moisture level = %f \r\n",ma);
Lakshmikumar 1:afb1111bab40 219 sleepwait(1);
Lakshmikumar 1:afb1111bab40 220
Lakshmikumar 0:e876ef14b820 221 GPRS.printf("%c",a);
Lakshmikumar 1:afb1111bab40 222 sleepwait(2);
Lakshmikumar 1:afb1111bab40 223 }
Lakshmikumar 1:afb1111bab40 224 lcd.cls();
Lakshmikumar 0:e876ef14b820 225 lcd.printf("SMS Sent");
Lakshmikumar 1:afb1111bab40 226 sleepwait(2);
Lakshmikumar 1:afb1111bab40 227 }
Lakshmikumar 1:afb1111bab40 228 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Lakshmikumar 0:e876ef14b820 229 int main()
Lakshmikumar 1:afb1111bab40 230 {
Lakshmikumar 0:e876ef14b820 231 lcd.cls();
Lakshmikumar 0:e876ef14b820 232 lcd.printf(" PRECISION\n AGRICULTURE");
Lakshmikumar 1:afb1111bab40 233 GPRS.baud(9600);
Lakshmikumar 1:afb1111bab40 234 GPRS.printf("AT\n");
Lakshmikumar 1:afb1111bab40 235 sleepwait(3);
Lakshmikumar 1:afb1111bab40 236 FILE *fp=fopen("/local/KAEMS.csv","a");
Lakshmikumar 1:afb1111bab40 237 fprintf(fp,"%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s\n",col1,col2,col3,col4,col5,col6,col7,col8,col9,col10,col11,col12);
Lakshmikumar 1:afb1111bab40 238 fclose(fp);
Lakshmikumar 1:afb1111bab40 239
Lakshmikumar 0:e876ef14b820 240 while(1)
Lakshmikumar 0:e876ef14b820 241 {
Lakshmikumar 0:e876ef14b820 242 SensorRead();
Lakshmikumar 1:afb1111bab40 243 //sms();
Lakshmikumar 1:afb1111bab40 244 data_tx_rx();
Lakshmikumar 1:afb1111bab40 245 ac_control();
Lakshmikumar 0:e876ef14b820 246 xlfile();
Lakshmikumar 0:e876ef14b820 247 lcd.cls();
Lakshmikumar 0:e876ef14b820 248 lcd.printf(" PRECISION\n AGRICULTURE");
Lakshmikumar 1:afb1111bab40 249 sleepwait(2);
Lakshmikumar 0:e876ef14b820 250 }
Lakshmikumar 0:e876ef14b820 251 }