smart-home
/
smart-home-final-version
main.cpp@0:3e6bb88dd7ee, 2018-09-29 (annotated)
- Committer:
- m_fazel
- Date:
- Sat Sep 29 22:47:56 2018 +0000
- Revision:
- 0:3e6bb88dd7ee
- Child:
- 2:6acc2f4efd39
- Child:
- 1:3ae60fd51e2b
temp sensor
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
m_fazel | 0:3e6bb88dd7ee | 1 | #include "mbed.h" |
m_fazel | 0:3e6bb88dd7ee | 2 | #include "TextLCD.h" |
m_fazel | 0:3e6bb88dd7ee | 3 | |
m_fazel | 0:3e6bb88dd7ee | 4 | void settemp(); |
m_fazel | 0:3e6bb88dd7ee | 5 | void tempmenu(); |
m_fazel | 0:3e6bb88dd7ee | 6 | float temp_cal(); |
m_fazel | 0:3e6bb88dd7ee | 7 | AnalogIn temp_sen(A0); |
m_fazel | 0:3e6bb88dd7ee | 8 | TextLCD lcd(PTC7,PTC0,PTC3,PTC4,PTC5,PTC6); |
m_fazel | 0:3e6bb88dd7ee | 9 | InterruptIn button(D0); |
m_fazel | 0:3e6bb88dd7ee | 10 | DigitalIn push2(D1); |
m_fazel | 0:3e6bb88dd7ee | 11 | DigitalIn push1(D2); |
m_fazel | 0:3e6bb88dd7ee | 12 | DigitalIn push3(D3); |
m_fazel | 0:3e6bb88dd7ee | 13 | PwmOut mypwm(A5); |
m_fazel | 0:3e6bb88dd7ee | 14 | //DigitalOut myled(A); |
m_fazel | 0:3e6bb88dd7ee | 15 | |
m_fazel | 0:3e6bb88dd7ee | 16 | int temp = 25; |
m_fazel | 0:3e6bb88dd7ee | 17 | float tempC,tempF,a[10],avg; |
m_fazel | 0:3e6bb88dd7ee | 18 | |
m_fazel | 0:3e6bb88dd7ee | 19 | int main() { |
m_fazel | 0:3e6bb88dd7ee | 20 | tempmenu(); |
m_fazel | 0:3e6bb88dd7ee | 21 | } |
m_fazel | 0:3e6bb88dd7ee | 22 | |
m_fazel | 0:3e6bb88dd7ee | 23 | void settemp(){ |
m_fazel | 0:3e6bb88dd7ee | 24 | lcd.cls(); |
m_fazel | 0:3e6bb88dd7ee | 25 | lcd.printf("enter temp: %d",temp); |
m_fazel | 0:3e6bb88dd7ee | 26 | wait(0.2); |
m_fazel | 0:3e6bb88dd7ee | 27 | while(1){ |
m_fazel | 0:3e6bb88dd7ee | 28 | |
m_fazel | 0:3e6bb88dd7ee | 29 | // temp up |
m_fazel | 0:3e6bb88dd7ee | 30 | if(push2 == 0 && push1 == 1){ |
m_fazel | 0:3e6bb88dd7ee | 31 | temp++; |
m_fazel | 0:3e6bb88dd7ee | 32 | lcd.cls(); |
m_fazel | 0:3e6bb88dd7ee | 33 | lcd.printf("enter temp: %d",temp); |
m_fazel | 0:3e6bb88dd7ee | 34 | wait(0.2); |
m_fazel | 0:3e6bb88dd7ee | 35 | } |
m_fazel | 0:3e6bb88dd7ee | 36 | |
m_fazel | 0:3e6bb88dd7ee | 37 | // temp down |
m_fazel | 0:3e6bb88dd7ee | 38 | if(push1 == 0 && push2 == 1){ |
m_fazel | 0:3e6bb88dd7ee | 39 | temp--; |
m_fazel | 0:3e6bb88dd7ee | 40 | lcd.cls(); |
m_fazel | 0:3e6bb88dd7ee | 41 | lcd.printf("enter temp: %d",temp); |
m_fazel | 0:3e6bb88dd7ee | 42 | wait(0.2); |
m_fazel | 0:3e6bb88dd7ee | 43 | } |
m_fazel | 0:3e6bb88dd7ee | 44 | |
m_fazel | 0:3e6bb88dd7ee | 45 | // confirm |
m_fazel | 0:3e6bb88dd7ee | 46 | if(push3 == 0){ |
m_fazel | 0:3e6bb88dd7ee | 47 | // tempmenu(); |
m_fazel | 0:3e6bb88dd7ee | 48 | break; |
m_fazel | 0:3e6bb88dd7ee | 49 | } |
m_fazel | 0:3e6bb88dd7ee | 50 | |
m_fazel | 0:3e6bb88dd7ee | 51 | } |
m_fazel | 0:3e6bb88dd7ee | 52 | } |
m_fazel | 0:3e6bb88dd7ee | 53 | |
m_fazel | 0:3e6bb88dd7ee | 54 | void tempmenu() { |
m_fazel | 0:3e6bb88dd7ee | 55 | while(1){ |
m_fazel | 0:3e6bb88dd7ee | 56 | lcd.cls(); |
m_fazel | 0:3e6bb88dd7ee | 57 | // display menu |
m_fazel | 0:3e6bb88dd7ee | 58 | mypwm.period_ms(10); |
m_fazel | 0:3e6bb88dd7ee | 59 | lcd.printf("T:%.2f \n",temp_cal()); |
m_fazel | 0:3e6bb88dd7ee | 60 | lcd.printf("1 to mod temp"); |
m_fazel | 0:3e6bb88dd7ee | 61 | wait(0.2); |
m_fazel | 0:3e6bb88dd7ee | 62 | if(temp_cal()<temp){ |
m_fazel | 0:3e6bb88dd7ee | 63 | wait(0.5); |
m_fazel | 0:3e6bb88dd7ee | 64 | mypwm.pulsewidth_ms(8); |
m_fazel | 0:3e6bb88dd7ee | 65 | } |
m_fazel | 0:3e6bb88dd7ee | 66 | if(temp_cal()>=temp){ |
m_fazel | 0:3e6bb88dd7ee | 67 | mypwm.pulsewidth_ms(2); |
m_fazel | 0:3e6bb88dd7ee | 68 | } |
m_fazel | 0:3e6bb88dd7ee | 69 | |
m_fazel | 0:3e6bb88dd7ee | 70 | //else{ |
m_fazel | 0:3e6bb88dd7ee | 71 | //myled =0;} |
m_fazel | 0:3e6bb88dd7ee | 72 | // interrupt |
m_fazel | 0:3e6bb88dd7ee | 73 | button.fall(&settemp); |
m_fazel | 0:3e6bb88dd7ee | 74 | lcd.printf("end"); |
m_fazel | 0:3e6bb88dd7ee | 75 | } |
m_fazel | 0:3e6bb88dd7ee | 76 | } |
m_fazel | 0:3e6bb88dd7ee | 77 | |
m_fazel | 0:3e6bb88dd7ee | 78 | float temp_cal(){ |
m_fazel | 0:3e6bb88dd7ee | 79 | avg=0; |
m_fazel | 0:3e6bb88dd7ee | 80 | int i; |
m_fazel | 0:3e6bb88dd7ee | 81 | for(i=0;i<10;i++) |
m_fazel | 0:3e6bb88dd7ee | 82 | { |
m_fazel | 0:3e6bb88dd7ee | 83 | a[i]=temp_sen.read(); |
m_fazel | 0:3e6bb88dd7ee | 84 | wait(.05); |
m_fazel | 0:3e6bb88dd7ee | 85 | } |
m_fazel | 0:3e6bb88dd7ee | 86 | for(i=0;i<10;i++) |
m_fazel | 0:3e6bb88dd7ee | 87 | { |
m_fazel | 0:3e6bb88dd7ee | 88 | avg=avg+(a[i]/10); |
m_fazel | 0:3e6bb88dd7ee | 89 | } |
m_fazel | 0:3e6bb88dd7ee | 90 | |
m_fazel | 0:3e6bb88dd7ee | 91 | |
m_fazel | 0:3e6bb88dd7ee | 92 | tempC=(avg*3.685503686*100); |
m_fazel | 0:3e6bb88dd7ee | 93 | tempF=(9.0*tempC)/5.0 + 32.0; |
m_fazel | 0:3e6bb88dd7ee | 94 | return tempC; |
m_fazel | 0:3e6bb88dd7ee | 95 | } |
m_fazel | 0:3e6bb88dd7ee | 96 | |
m_fazel | 0:3e6bb88dd7ee | 97 |