kaems
Dependencies: TextLCD WakeUp mbed
Fork of Final by
main.cpp@0:e876ef14b820, 2015-01-19 (annotated)
- Committer:
- Lakshmikumar
- Date:
- Mon Jan 19 09:30:25 2015 +0000
- Revision:
- 0:e876ef14b820
- Child:
- 1:afb1111bab40
kaems
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Lakshmikumar | 0:e876ef14b820 | 1 | #include"mbed.h" |
Lakshmikumar | 0:e876ef14b820 | 2 | #include"TextLCD.h" |
Lakshmikumar | 0:e876ef14b820 | 3 | //AnalogIn sm1(p16); |
Lakshmikumar | 0:e876ef14b820 | 4 | //AnalogIn sm2(p17); |
Lakshmikumar | 0:e876ef14b820 | 5 | //AnalogIn sm3(p18); |
Lakshmikumar | 0:e876ef14b820 | 6 | //AnalogIn sm4(p19); |
Lakshmikumar | 0:e876ef14b820 | 7 | //DigitalOut led(LED1); |
Lakshmikumar | 0:e876ef14b820 | 8 | Serial GPRS(p9,p10); |
Lakshmikumar | 0:e876ef14b820 | 9 | Serial pc(USBTX,USBRX); |
Lakshmikumar | 0:e876ef14b820 | 10 | TextLCD lcd(p26, p25, p24, p23, p22, p21); //rs,e,d0-d3 |
Lakshmikumar | 0:e876ef14b820 | 11 | LocalFileSystem local("local"); |
Lakshmikumar | 0:e876ef14b820 | 12 | char a=0x1A,c=0x0D; |
Lakshmikumar | 0:e876ef14b820 | 13 | char num[]="7411755981"; |
Lakshmikumar | 0:e876ef14b820 | 14 | float s[5],m[5]; |
Lakshmikumar | 0:e876ef14b820 | 15 | float ma; |
Lakshmikumar | 0:e876ef14b820 | 16 | int z,j=0; |
Lakshmikumar | 0:e876ef14b820 | 17 | int b=100,count; |
Lakshmikumar | 0:e876ef14b820 | 18 | char str; |
Lakshmikumar | 0:e876ef14b820 | 19 | char col1[]="ITERATION",col2[]="SM1",col3[]="SM2",col4[]="SM3",col5[]="SM4",col6[]="Mean"; |
Lakshmikumar | 0:e876ef14b820 | 20 | |
Lakshmikumar | 0:e876ef14b820 | 21 | void SensorRead() |
Lakshmikumar | 0:e876ef14b820 | 22 | { |
Lakshmikumar | 0:e876ef14b820 | 23 | lcd.cls(); |
Lakshmikumar | 0:e876ef14b820 | 24 | lcd.locate(0,0); |
Lakshmikumar | 0:e876ef14b820 | 25 | lcd.printf("Sensor Readings\r"); |
Lakshmikumar | 0:e876ef14b820 | 26 | |
Lakshmikumar | 0:e876ef14b820 | 27 | s[1]=0.21; |
Lakshmikumar | 0:e876ef14b820 | 28 | m[1]=(0.057*(s[1]*1024))+25.072; |
Lakshmikumar | 0:e876ef14b820 | 29 | |
Lakshmikumar | 0:e876ef14b820 | 30 | lcd.cls(); |
Lakshmikumar | 0:e876ef14b820 | 31 | lcd.printf("Raw SM1=%0.3f",s[1]); |
Lakshmikumar | 0:e876ef14b820 | 32 | wait(2); |
Lakshmikumar | 0:e876ef14b820 | 33 | |
Lakshmikumar | 0:e876ef14b820 | 34 | s[2]=0.2; |
Lakshmikumar | 0:e876ef14b820 | 35 | m[2]=(0.057*(s[2]*1024))+25.072; |
Lakshmikumar | 0:e876ef14b820 | 36 | |
Lakshmikumar | 0:e876ef14b820 | 37 | lcd.cls(); |
Lakshmikumar | 0:e876ef14b820 | 38 | lcd.printf("Raw SM2=%0.3f",s[2]); |
Lakshmikumar | 0:e876ef14b820 | 39 | wait(2); |
Lakshmikumar | 0:e876ef14b820 | 40 | |
Lakshmikumar | 0:e876ef14b820 | 41 | s[3]=0.23; |
Lakshmikumar | 0:e876ef14b820 | 42 | m[3]=(0.057*(s[3]*1024))+25.072; |
Lakshmikumar | 0:e876ef14b820 | 43 | lcd.cls(); |
Lakshmikumar | 0:e876ef14b820 | 44 | lcd.printf("Raw SM3=%0.3f",s[3]); |
Lakshmikumar | 0:e876ef14b820 | 45 | wait(2); |
Lakshmikumar | 0:e876ef14b820 | 46 | |
Lakshmikumar | 0:e876ef14b820 | 47 | s[4]=0.55; |
Lakshmikumar | 0:e876ef14b820 | 48 | m[4]=(0.057*(s[4]*1024))+25.072; |
Lakshmikumar | 0:e876ef14b820 | 49 | |
Lakshmikumar | 0:e876ef14b820 | 50 | lcd.cls(); |
Lakshmikumar | 0:e876ef14b820 | 51 | lcd.printf("Raw SM4=%0.3f",s[4]); |
Lakshmikumar | 0:e876ef14b820 | 52 | wait(2); |
Lakshmikumar | 0:e876ef14b820 | 53 | |
Lakshmikumar | 0:e876ef14b820 | 54 | ma=(m[1]+m[2]+m[3]+m[4])/4; |
Lakshmikumar | 0:e876ef14b820 | 55 | |
Lakshmikumar | 0:e876ef14b820 | 56 | lcd.cls(); |
Lakshmikumar | 0:e876ef14b820 | 57 | lcd.locate(0,0); |
Lakshmikumar | 0:e876ef14b820 | 58 | lcd.printf("Mean =%0.4f",ma); |
Lakshmikumar | 0:e876ef14b820 | 59 | wait(2); |
Lakshmikumar | 0:e876ef14b820 | 60 | } |
Lakshmikumar | 0:e876ef14b820 | 61 | |
Lakshmikumar | 0:e876ef14b820 | 62 | void xlfile() |
Lakshmikumar | 0:e876ef14b820 | 63 | { |
Lakshmikumar | 0:e876ef14b820 | 64 | //Local storage (On board flash memory of 2MB) |
Lakshmikumar | 0:e876ef14b820 | 65 | count++; |
Lakshmikumar | 0:e876ef14b820 | 66 | FILE *fp=fopen("/local/KAEMS.csv","a"); |
Lakshmikumar | 0:e876ef14b820 | 67 | fprintf(fp,"%d,%0.3f,%0.3f,%0.3f,%0.3f,%0.3f\n",count,m[1],m[2],m[3],m[4],ma); |
Lakshmikumar | 0:e876ef14b820 | 68 | fclose(fp); |
Lakshmikumar | 0:e876ef14b820 | 69 | lcd.cls(); |
Lakshmikumar | 0:e876ef14b820 | 70 | lcd.printf("File updated"); |
Lakshmikumar | 0:e876ef14b820 | 71 | wait(2); |
Lakshmikumar | 0:e876ef14b820 | 72 | } |
Lakshmikumar | 0:e876ef14b820 | 73 | void flushSerialBuffer(void) |
Lakshmikumar | 0:e876ef14b820 | 74 | { char char1 = 0; |
Lakshmikumar | 0:e876ef14b820 | 75 | pc.printf("Flushing.."); |
Lakshmikumar | 0:e876ef14b820 | 76 | while (GPRS.readable()) |
Lakshmikumar | 0:e876ef14b820 | 77 | { char1 = GPRS.getc(); |
Lakshmikumar | 0:e876ef14b820 | 78 | } return; |
Lakshmikumar | 0:e876ef14b820 | 79 | } |
Lakshmikumar | 0:e876ef14b820 | 80 | void Upload() |
Lakshmikumar | 0:e876ef14b820 | 81 | { |
Lakshmikumar | 0:e876ef14b820 | 82 | //GPRS commands |
Lakshmikumar | 0:e876ef14b820 | 83 | lcd.cls(); |
Lakshmikumar | 0:e876ef14b820 | 84 | lcd.locate(0,0); |
Lakshmikumar | 0:e876ef14b820 | 85 | lcd.printf(" Updating\n www.kaems.org"); |
Lakshmikumar | 0:e876ef14b820 | 86 | wait(3); |
Lakshmikumar | 0:e876ef14b820 | 87 | GPRS.printf("AT+SAPBR=0,1\r\n"); |
Lakshmikumar | 0:e876ef14b820 | 88 | wait(3); |
Lakshmikumar | 0:e876ef14b820 | 89 | GPRS.printf("AT+SAPBR=3,1,\"CONTYPE\",\"GPRS\"\r\n"); |
Lakshmikumar | 0:e876ef14b820 | 90 | wait(3); |
Lakshmikumar | 0:e876ef14b820 | 91 | GPRS.printf("AT+SAPBR=3,1,\"APN\",\"AIRCELGPRS.COM\"\r\n"); |
Lakshmikumar | 0:e876ef14b820 | 92 | wait(3); |
Lakshmikumar | 0:e876ef14b820 | 93 | GPRS.printf("AT+SAPBR=1,1\r\n"); |
Lakshmikumar | 0:e876ef14b820 | 94 | wait(3); |
Lakshmikumar | 0:e876ef14b820 | 95 | GPRS.printf("AT+HTTPINIT\r\n"); |
Lakshmikumar | 0:e876ef14b820 | 96 | wait(2); |
Lakshmikumar | 0:e876ef14b820 | 97 | GPRS.printf("AT+HTTPPARA=\"CID\",1\r\n"); |
Lakshmikumar | 0:e876ef14b820 | 98 | wait(2); |
Lakshmikumar | 0:e876ef14b820 | 99 | 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 | 0:e876ef14b820 | 100 | wait(2); |
Lakshmikumar | 0:e876ef14b820 | 101 | GPRS.printf("AT+HTTPDATA=1000,5000\r\n"); |
Lakshmikumar | 0:e876ef14b820 | 102 | wait(10); |
Lakshmikumar | 0:e876ef14b820 | 103 | GPRS.printf("AT+HTTPACTION=1\r\n"); |
Lakshmikumar | 0:e876ef14b820 | 104 | wait(5); |
Lakshmikumar | 0:e876ef14b820 | 105 | GPRS.printf("AT+HTTPTERM\r\n"); |
Lakshmikumar | 0:e876ef14b820 | 106 | lcd.cls(); |
Lakshmikumar | 0:e876ef14b820 | 107 | lcd.printf("KAEMS UPDATED"); |
Lakshmikumar | 0:e876ef14b820 | 108 | wait(3); |
Lakshmikumar | 0:e876ef14b820 | 109 | } |
Lakshmikumar | 0:e876ef14b820 | 110 | void feedback() |
Lakshmikumar | 0:e876ef14b820 | 111 | { lcd.cls(); |
Lakshmikumar | 0:e876ef14b820 | 112 | lcd.locate(0,0); |
Lakshmikumar | 0:e876ef14b820 | 113 | lcd.printf("Waiting for feedback"); |
Lakshmikumar | 0:e876ef14b820 | 114 | wait(3); |
Lakshmikumar | 0:e876ef14b820 | 115 | GPRS.printf("AT+SAPBR=0,1\r\n"); |
Lakshmikumar | 0:e876ef14b820 | 116 | wait(3); |
Lakshmikumar | 0:e876ef14b820 | 117 | GPRS.printf("AT+SAPBR=3,1,\"CONTYPE\",\"GPRS\"\r\n"); |
Lakshmikumar | 0:e876ef14b820 | 118 | wait(3); |
Lakshmikumar | 0:e876ef14b820 | 119 | GPRS.printf("AT+SAPBR=3,1,\"APN\",\"AIRCELGPRS.COM\"\r\n"); |
Lakshmikumar | 0:e876ef14b820 | 120 | wait(3); |
Lakshmikumar | 0:e876ef14b820 | 121 | GPRS.printf("AT+SAPBR=1,1\r\n"); |
Lakshmikumar | 0:e876ef14b820 | 122 | wait(3); |
Lakshmikumar | 0:e876ef14b820 | 123 | GPRS.printf("AT+HTTPINIT\r\n"); |
Lakshmikumar | 0:e876ef14b820 | 124 | wait(2); |
Lakshmikumar | 0:e876ef14b820 | 125 | GPRS.printf("AT+HTTPPARA=\"CID\",1\r\n"); |
Lakshmikumar | 0:e876ef14b820 | 126 | wait(2); |
Lakshmikumar | 0:e876ef14b820 | 127 | GPRS.printf("AT+HTTPPARA=\"URL\",\"http://kaems.org/feedback.php\"\r\n"); |
Lakshmikumar | 0:e876ef14b820 | 128 | wait(2); |
Lakshmikumar | 0:e876ef14b820 | 129 | GPRS.printf("AT+HTTPACTION=0\r\n"); |
Lakshmikumar | 0:e876ef14b820 | 130 | wait(5); |
Lakshmikumar | 0:e876ef14b820 | 131 | flushSerialBuffer(); |
Lakshmikumar | 0:e876ef14b820 | 132 | GPRS.printf("AT+HTTPREAD\r\n"); |
Lakshmikumar | 0:e876ef14b820 | 133 | while(!GPRS.readable()){ } |
Lakshmikumar | 0:e876ef14b820 | 134 | char *str2; |
Lakshmikumar | 0:e876ef14b820 | 135 | GPRS.scanf("%s",str2); |
Lakshmikumar | 0:e876ef14b820 | 136 | GPRS.scanf("%s",str2); |
Lakshmikumar | 0:e876ef14b820 | 137 | GPRS.scanf("%s",str2); // Getting op |
Lakshmikumar | 0:e876ef14b820 | 138 | pc.printf("Str=%c\r\n",str2[0]); |
Lakshmikumar | 0:e876ef14b820 | 139 | lcd.cls(); |
Lakshmikumar | 0:e876ef14b820 | 140 | lcd.printf("Fbk=%c",str2[0]); |
Lakshmikumar | 0:e876ef14b820 | 141 | // switch(str2[0]){ |
Lakshmikumar | 0:e876ef14b820 | 142 | // case '1': break; |
Lakshmikumar | 0:e876ef14b820 | 143 | // |
Lakshmikumar | 0:e876ef14b820 | 144 | // } |
Lakshmikumar | 0:e876ef14b820 | 145 | wait(5); |
Lakshmikumar | 0:e876ef14b820 | 146 | GPRS.printf("AT+HTTPTERM\r\n"); |
Lakshmikumar | 0:e876ef14b820 | 147 | } |
Lakshmikumar | 0:e876ef14b820 | 148 | |
Lakshmikumar | 0:e876ef14b820 | 149 | void sms() |
Lakshmikumar | 0:e876ef14b820 | 150 | { |
Lakshmikumar | 0:e876ef14b820 | 151 | GPRS.printf("AT\r\n"); |
Lakshmikumar | 0:e876ef14b820 | 152 | wait(2); |
Lakshmikumar | 0:e876ef14b820 | 153 | GPRS.printf("AT+CMGF=1\r\n"); |
Lakshmikumar | 0:e876ef14b820 | 154 | wait(2); |
Lakshmikumar | 0:e876ef14b820 | 155 | GPRS.printf("AT+CMGS=\"%s\"\r\n",num); |
Lakshmikumar | 0:e876ef14b820 | 156 | wait(3); |
Lakshmikumar | 0:e876ef14b820 | 157 | |
Lakshmikumar | 0:e876ef14b820 | 158 | if(ma<40) |
Lakshmikumar | 0:e876ef14b820 | 159 | { |
Lakshmikumar | 0:e876ef14b820 | 160 | GPRS.printf(" Water level is low \nMoisture level is %f \r\n",ma); |
Lakshmikumar | 0:e876ef14b820 | 161 | wait(1); |
Lakshmikumar | 0:e876ef14b820 | 162 | GPRS.printf("%c",a); |
Lakshmikumar | 0:e876ef14b820 | 163 | wait(2); |
Lakshmikumar | 0:e876ef14b820 | 164 | } |
Lakshmikumar | 0:e876ef14b820 | 165 | |
Lakshmikumar | 0:e876ef14b820 | 166 | if(ma>40) |
Lakshmikumar | 0:e876ef14b820 | 167 | { |
Lakshmikumar | 0:e876ef14b820 | 168 | GPRS.printf(" Land has sufficicient amount of water \n Moisture IS %f \r\n",ma); |
Lakshmikumar | 0:e876ef14b820 | 169 | wait(1); |
Lakshmikumar | 0:e876ef14b820 | 170 | GPRS.printf("%c",a); |
Lakshmikumar | 0:e876ef14b820 | 171 | wait(2); |
Lakshmikumar | 0:e876ef14b820 | 172 | } |
Lakshmikumar | 0:e876ef14b820 | 173 | lcd.printf("SMS Sent"); |
Lakshmikumar | 0:e876ef14b820 | 174 | |
Lakshmikumar | 0:e876ef14b820 | 175 | } |
Lakshmikumar | 0:e876ef14b820 | 176 | int main() |
Lakshmikumar | 0:e876ef14b820 | 177 | { GPRS.baud(9600); |
Lakshmikumar | 0:e876ef14b820 | 178 | GPRS.printf("AT\n"); |
Lakshmikumar | 0:e876ef14b820 | 179 | wait(3); |
Lakshmikumar | 0:e876ef14b820 | 180 | lcd.cls(); |
Lakshmikumar | 0:e876ef14b820 | 181 | lcd.printf(" PRECISION\n AGRICULTURE"); |
Lakshmikumar | 0:e876ef14b820 | 182 | while(1) |
Lakshmikumar | 0:e876ef14b820 | 183 | { |
Lakshmikumar | 0:e876ef14b820 | 184 | FILE *fp=fopen("/local/KAEMS.csv","a"); |
Lakshmikumar | 0:e876ef14b820 | 185 | fprintf(fp,"%s,%s,%s,%s,%s,%s\n",col1,col2,col3,col4,col5,col6); |
Lakshmikumar | 0:e876ef14b820 | 186 | fclose(fp); |
Lakshmikumar | 0:e876ef14b820 | 187 | SensorRead(); |
Lakshmikumar | 0:e876ef14b820 | 188 | xlfile(); |
Lakshmikumar | 0:e876ef14b820 | 189 | //Upload(); |
Lakshmikumar | 0:e876ef14b820 | 190 | feedback(); |
Lakshmikumar | 0:e876ef14b820 | 191 | //sms(); |
Lakshmikumar | 0:e876ef14b820 | 192 | lcd.cls(); |
Lakshmikumar | 0:e876ef14b820 | 193 | lcd.printf(" PRECISION\n AGRICULTURE"); |
Lakshmikumar | 0:e876ef14b820 | 194 | wait(1200); |
Lakshmikumar | 0:e876ef14b820 | 195 | } |
Lakshmikumar | 0:e876ef14b820 | 196 | } |