Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: TextLCD WakeUp mbed
Fork of Final by
Diff: main.cpp
- Revision:
- 0:e876ef14b820
- Child:
- 1:afb1111bab40
diff -r 000000000000 -r e876ef14b820 main.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp Mon Jan 19 09:30:25 2015 +0000
@@ -0,0 +1,196 @@
+#include"mbed.h"
+#include"TextLCD.h"
+//AnalogIn sm1(p16);
+//AnalogIn sm2(p17);
+//AnalogIn sm3(p18);
+//AnalogIn sm4(p19);
+//DigitalOut led(LED1);
+Serial GPRS(p9,p10);
+Serial pc(USBTX,USBRX);
+TextLCD lcd(p26, p25, p24, p23, p22, p21); //rs,e,d0-d3
+LocalFileSystem local("local");
+char a=0x1A,c=0x0D;
+char num[]="7411755981";
+float s[5],m[5];
+float ma;
+int z,j=0;
+int b=100,count;
+char str;
+char col1[]="ITERATION",col2[]="SM1",col3[]="SM2",col4[]="SM3",col5[]="SM4",col6[]="Mean";
+
+void SensorRead()
+{
+ lcd.cls();
+ lcd.locate(0,0);
+ lcd.printf("Sensor Readings\r");
+
+ s[1]=0.21;
+ m[1]=(0.057*(s[1]*1024))+25.072;
+
+ lcd.cls();
+ lcd.printf("Raw SM1=%0.3f",s[1]);
+ wait(2);
+
+ s[2]=0.2;
+ m[2]=(0.057*(s[2]*1024))+25.072;
+
+ lcd.cls();
+ lcd.printf("Raw SM2=%0.3f",s[2]);
+ wait(2);
+
+ s[3]=0.23;
+ m[3]=(0.057*(s[3]*1024))+25.072;
+ lcd.cls();
+ lcd.printf("Raw SM3=%0.3f",s[3]);
+ wait(2);
+
+ s[4]=0.55;
+ m[4]=(0.057*(s[4]*1024))+25.072;
+
+ lcd.cls();
+ lcd.printf("Raw SM4=%0.3f",s[4]);
+ wait(2);
+
+ ma=(m[1]+m[2]+m[3]+m[4])/4;
+
+ lcd.cls();
+ lcd.locate(0,0);
+ lcd.printf("Mean =%0.4f",ma);
+ wait(2);
+}
+
+void xlfile()
+{
+ //Local storage (On board flash memory of 2MB)
+ count++;
+ FILE *fp=fopen("/local/KAEMS.csv","a");
+ fprintf(fp,"%d,%0.3f,%0.3f,%0.3f,%0.3f,%0.3f\n",count,m[1],m[2],m[3],m[4],ma);
+ fclose(fp);
+ lcd.cls();
+ lcd.printf("File updated");
+ wait(2);
+}
+void flushSerialBuffer(void)
+{ char char1 = 0;
+ pc.printf("Flushing..");
+ while (GPRS.readable())
+ { char1 = GPRS.getc();
+ } return;
+ }
+void Upload()
+{
+ //GPRS commands
+ lcd.cls();
+ lcd.locate(0,0);
+ lcd.printf(" Updating\n www.kaems.org");
+ wait(3);
+ GPRS.printf("AT+SAPBR=0,1\r\n");
+ wait(3);
+ GPRS.printf("AT+SAPBR=3,1,\"CONTYPE\",\"GPRS\"\r\n");
+ wait(3);
+ GPRS.printf("AT+SAPBR=3,1,\"APN\",\"AIRCELGPRS.COM\"\r\n");
+ wait(3);
+ GPRS.printf("AT+SAPBR=1,1\r\n");
+ wait(3);
+ GPRS.printf("AT+HTTPINIT\r\n");
+ wait(2);
+ GPRS.printf("AT+HTTPPARA=\"CID\",1\r\n");
+ wait(2);
+ 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--);
+ wait(2);
+ GPRS.printf("AT+HTTPDATA=1000,5000\r\n");
+ wait(10);
+ GPRS.printf("AT+HTTPACTION=1\r\n");
+ wait(5);
+ GPRS.printf("AT+HTTPTERM\r\n");
+ lcd.cls();
+ lcd.printf("KAEMS UPDATED");
+ wait(3);
+}
+void feedback()
+{ lcd.cls();
+ lcd.locate(0,0);
+ lcd.printf("Waiting for feedback");
+ wait(3);
+ GPRS.printf("AT+SAPBR=0,1\r\n");
+ wait(3);
+ GPRS.printf("AT+SAPBR=3,1,\"CONTYPE\",\"GPRS\"\r\n");
+ wait(3);
+ GPRS.printf("AT+SAPBR=3,1,\"APN\",\"AIRCELGPRS.COM\"\r\n");
+ wait(3);
+ GPRS.printf("AT+SAPBR=1,1\r\n");
+ wait(3);
+ GPRS.printf("AT+HTTPINIT\r\n");
+ wait(2);
+ GPRS.printf("AT+HTTPPARA=\"CID\",1\r\n");
+ wait(2);
+ GPRS.printf("AT+HTTPPARA=\"URL\",\"http://kaems.org/feedback.php\"\r\n");
+ wait(2);
+ GPRS.printf("AT+HTTPACTION=0\r\n");
+ wait(5);
+ flushSerialBuffer();
+ GPRS.printf("AT+HTTPREAD\r\n");
+ while(!GPRS.readable()){ }
+ char *str2;
+ GPRS.scanf("%s",str2);
+ GPRS.scanf("%s",str2);
+ GPRS.scanf("%s",str2); // Getting op
+ pc.printf("Str=%c\r\n",str2[0]);
+ lcd.cls();
+ lcd.printf("Fbk=%c",str2[0]);
+// switch(str2[0]){
+// case '1': break;
+//
+// }
+ wait(5);
+ GPRS.printf("AT+HTTPTERM\r\n");
+ }
+
+void sms()
+{
+ GPRS.printf("AT\r\n");
+ wait(2);
+ GPRS.printf("AT+CMGF=1\r\n");
+ wait(2);
+ GPRS.printf("AT+CMGS=\"%s\"\r\n",num);
+ wait(3);
+
+ if(ma<40)
+ {
+ GPRS.printf(" Water level is low \nMoisture level is %f \r\n",ma);
+ wait(1);
+ GPRS.printf("%c",a);
+ wait(2);
+ }
+
+ if(ma>40)
+ {
+ GPRS.printf(" Land has sufficicient amount of water \n Moisture IS %f \r\n",ma);
+ wait(1);
+ GPRS.printf("%c",a);
+ wait(2);
+ }
+ lcd.printf("SMS Sent");
+
+ }
+int main()
+{ GPRS.baud(9600);
+ GPRS.printf("AT\n");
+ wait(3);
+ lcd.cls();
+ lcd.printf(" PRECISION\n AGRICULTURE");
+ while(1)
+ {
+ FILE *fp=fopen("/local/KAEMS.csv","a");
+ fprintf(fp,"%s,%s,%s,%s,%s,%s\n",col1,col2,col3,col4,col5,col6);
+ fclose(fp);
+ SensorRead();
+ xlfile();
+ //Upload();
+ feedback();
+ //sms();
+ lcd.cls();
+ lcd.printf(" PRECISION\n AGRICULTURE");
+ wait(1200);
+ }
+}
