![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Weather monitoring code
main.cpp@0:edc11adb58de, 2013-10-26 (annotated)
- Committer:
- nannanitinkumar
- Date:
- Sat Oct 26 10:46:10 2013 +0000
- Revision:
- 0:edc11adb58de
yes
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
nannanitinkumar | 0:edc11adb58de | 1 | #include "mbed.h" |
nannanitinkumar | 0:edc11adb58de | 2 | #include "TextLCD.h" |
nannanitinkumar | 0:edc11adb58de | 3 | Serial GSM(p9, p10); // tx, rx |
nannanitinkumar | 0:edc11adb58de | 4 | char z=0x1A,e=0x22; |
nannanitinkumar | 0:edc11adb58de | 5 | char num1[] = "9742920934"; |
nannanitinkumar | 0:edc11adb58de | 6 | char num[] = "7406660316"; |
nannanitinkumar | 0:edc11adb58de | 7 | char c1[20]="Temp"; |
nannanitinkumar | 0:edc11adb58de | 8 | char c2[20]="Humidity"; |
nannanitinkumar | 0:edc11adb58de | 9 | char c3[20]="light"; |
nannanitinkumar | 0:edc11adb58de | 10 | char c4[20]="Moisture"; |
nannanitinkumar | 0:edc11adb58de | 11 | char c5[20]="Soil_Temp"; |
nannanitinkumar | 0:edc11adb58de | 12 | DigitalOut led1(p28); |
nannanitinkumar | 0:edc11adb58de | 13 | DigitalOut led2(p27); |
nannanitinkumar | 0:edc11adb58de | 14 | |
nannanitinkumar | 0:edc11adb58de | 15 | //char nun[] = "9739933223"; |
nannanitinkumar | 0:edc11adb58de | 16 | Serial pc(USBTX, USBRX); // tx, rx |
nannanitinkumar | 0:edc11adb58de | 17 | TextLCD lcd(p21, p22, p23, p24, p25,p26); |
nannanitinkumar | 0:edc11adb58de | 18 | AnalogIn ain2(p19);//SM100 |
nannanitinkumar | 0:edc11adb58de | 19 | AnalogIn ain3(p20); //HS220 |
nannanitinkumar | 0:edc11adb58de | 20 | AnalogIn ain4(p18); //LM35 |
nannanitinkumar | 0:edc11adb58de | 21 | AnalogIn ain5(p16); //PT100 |
nannanitinkumar | 0:edc11adb58de | 22 | AnalogIn ain6(p17); //LDR |
nannanitinkumar | 0:edc11adb58de | 23 | char time_stamp[16];//as our lcd is of 16 character it is so |
nannanitinkumar | 0:edc11adb58de | 24 | |
nannanitinkumar | 0:edc11adb58de | 25 | int main() |
nannanitinkumar | 0:edc11adb58de | 26 | { |
nannanitinkumar | 0:edc11adb58de | 27 | led2 = 0; |
nannanitinkumar | 0:edc11adb58de | 28 | led1 = 1; |
nannanitinkumar | 0:edc11adb58de | 29 | lcd.printf(" BMSCE_WSM "); |
nannanitinkumar | 0:edc11adb58de | 30 | //GSM.printf("AT\r\n"); |
nannanitinkumar | 0:edc11adb58de | 31 | //wait(3); |
nannanitinkumar | 0:edc11adb58de | 32 | //GSM.printf("AT+CMGF=1\r\n"); |
nannanitinkumar | 0:edc11adb58de | 33 | wait(3); |
nannanitinkumar | 0:edc11adb58de | 34 | //set_time(1361194897); |
nannanitinkumar | 0:edc11adb58de | 35 | |
nannanitinkumar | 0:edc11adb58de | 36 | while (1) |
nannanitinkumar | 0:edc11adb58de | 37 | { |
nannanitinkumar | 0:edc11adb58de | 38 | float a,b,a1,a2,a3,a4,a5,t1,t2,t3,t4,t5,vcc; |
nannanitinkumar | 0:edc11adb58de | 39 | vcc = 3.25; |
nannanitinkumar | 0:edc11adb58de | 40 | // time_t seconds = time(NULL)+ 19800; // time(null) gives the GMT time . |
nannanitinkumar | 0:edc11adb58de | 41 | // strftime(time_stamp, 16, "%d%m%y%H%M%S", localtime(&seconds)); |
nannanitinkumar | 0:edc11adb58de | 42 | //this converts the value in seconds obtained above to human readable format and assigns it to the timestamp |
nannanitinkumar | 0:edc11adb58de | 43 | // lcd.locate(0,0);//start displaying from zeroth column,zeroth row |
nannanitinkumar | 0:edc11adb58de | 44 | //lcd.printf("%s",time_stamp);//diplays the human readable time |
nannanitinkumar | 0:edc11adb58de | 45 | a = vcc-(ain6 * vcc); |
nannanitinkumar | 0:edc11adb58de | 46 | t1 = 46000*a/(vcc-a); |
nannanitinkumar | 0:edc11adb58de | 47 | b = vcc-(ain5*3.2); |
nannanitinkumar | 0:edc11adb58de | 48 | t2 = 219*b/(3.257-b); |
nannanitinkumar | 0:edc11adb58de | 49 | t3 = ain4*vcc; |
nannanitinkumar | 0:edc11adb58de | 50 | t4 = ain3*vcc; |
nannanitinkumar | 0:edc11adb58de | 51 | t5 = ain2*4096; |
nannanitinkumar | 0:edc11adb58de | 52 | a1 = 6000000*(powf(t1,-1.287));//LDR |
nannanitinkumar | 0:edc11adb58de | 53 | a2 = (t2 - 102)/0.3707;//PT100 |
nannanitinkumar | 0:edc11adb58de | 54 | a3 = (t3 * 100)+1;//LM35 |
nannanitinkumar | 0:edc11adb58de | 55 | a4 = (30.274*t4)+0.0402;//HS220 |
nannanitinkumar | 0:edc11adb58de | 56 | a5 = 0.057 * t5 - 54.702;//SM100 |
nannanitinkumar | 0:edc11adb58de | 57 | lcd.cls(); |
nannanitinkumar | 0:edc11adb58de | 58 | lcd.locate(0,0); |
nannanitinkumar | 0:edc11adb58de | 59 | lcd.printf( "Light=%0.2fLUX", a1); |
nannanitinkumar | 0:edc11adb58de | 60 | lcd.locate(0,1 ); |
nannanitinkumar | 0:edc11adb58de | 61 | lcd.printf( "Soil_T=%0.2fC", a2); |
nannanitinkumar | 0:edc11adb58de | 62 | wait(3); |
nannanitinkumar | 0:edc11adb58de | 63 | lcd.cls(); |
nannanitinkumar | 0:edc11adb58de | 64 | lcd.locate(0,0); |
nannanitinkumar | 0:edc11adb58de | 65 | lcd.printf( "Temp= %0.2f C ", a3); |
nannanitinkumar | 0:edc11adb58de | 66 | lcd.locate( 0, 1 ); |
nannanitinkumar | 0:edc11adb58de | 67 | lcd.printf( "SMois=%0.2f wc", a5); |
nannanitinkumar | 0:edc11adb58de | 68 | wait(3); |
nannanitinkumar | 0:edc11adb58de | 69 | lcd.cls(); |
nannanitinkumar | 0:edc11adb58de | 70 | lcd.locate( 0, 0 ); |
nannanitinkumar | 0:edc11adb58de | 71 | lcd.printf( "Humi=%0.2f %RH", a4); |
nannanitinkumar | 0:edc11adb58de | 72 | // pc.printf("%s",time_stamp); |
nannanitinkumar | 0:edc11adb58de | 73 | pc.printf("%f\r\n",a1); |
nannanitinkumar | 0:edc11adb58de | 74 | pc.printf("%f\r\n",a2); |
nannanitinkumar | 0:edc11adb58de | 75 | pc.printf("%f\r\n",a3); |
nannanitinkumar | 0:edc11adb58de | 76 | pc.printf("%f\r\n",a4); |
nannanitinkumar | 0:edc11adb58de | 77 | pc.printf("%f\r\n",a5); |
nannanitinkumar | 0:edc11adb58de | 78 | //GSM.printf("AT+CMGS=%c%s%c\r\n",e,num,e); |
nannanitinkumar | 0:edc11adb58de | 79 | // wait(3); |
nannanitinkumar | 0:edc11adb58de | 80 | GSM.printf("AT\r\n"); |
nannanitinkumar | 0:edc11adb58de | 81 | wait(3); |
nannanitinkumar | 0:edc11adb58de | 82 | GSM.printf("AT+CMGF=1\r\n"); |
nannanitinkumar | 0:edc11adb58de | 83 | wait(3); |
nannanitinkumar | 0:edc11adb58de | 84 | GSM.printf("AT+CMGS=%c%s%c\r\n",e,num1,e); |
nannanitinkumar | 0:edc11adb58de | 85 | wait(3); |
nannanitinkumar | 0:edc11adb58de | 86 | |
nannanitinkumar | 0:edc11adb58de | 87 | GSM.printf("T%0.2f,H%0.2f,L%0.2f,P%0.2f@",a3,a4,a1,a5); |
nannanitinkumar | 0:edc11adb58de | 88 | |
nannanitinkumar | 0:edc11adb58de | 89 | |
nannanitinkumar | 0:edc11adb58de | 90 | /*GSM.printf("Degree=%0.2f\r\n",a3); |
nannanitinkumar | 0:edc11adb58de | 91 | GSM.printf("lumence=%0.2f\r\n",a1); |
nannanitinkumar | 0:edc11adb58de | 92 | GSM.printf("Humi=%0.2f\r\n",a4); |
nannanitinkumar | 0:edc11adb58de | 93 | GSM.printf("Soil_mois=%0.2f\r\n",a5); |
nannanitinkumar | 0:edc11adb58de | 94 | GSM.printf("Soil_temp=%0.2f",a2);*/ |
nannanitinkumar | 0:edc11adb58de | 95 | |
nannanitinkumar | 0:edc11adb58de | 96 | GSM.printf("%c",z); |
nannanitinkumar | 0:edc11adb58de | 97 | wait(1); |
nannanitinkumar | 0:edc11adb58de | 98 | GSM.printf("AT+CMGS=%c%s%c\r\n",e,num,e); |
nannanitinkumar | 0:edc11adb58de | 99 | GSM.printf("Temp=%0.2f,Humi=%0.2f,Light=%0.2f,SMois=%0.2f,Soil_T=%0.2fC@",a3,a4,a1,a5,a2); |
nannanitinkumar | 0:edc11adb58de | 100 | GSM.printf("%c",z); |
nannanitinkumar | 0:edc11adb58de | 101 | wait(3); |
nannanitinkumar | 0:edc11adb58de | 102 | |
nannanitinkumar | 0:edc11adb58de | 103 | } |
nannanitinkumar | 0:edc11adb58de | 104 | } |