Application where a user inputs a time and then coffee will be made
Dependencies: EthernetInterface HTTPClientAuthAndPathExtension NTPClient PinDetect mbed-rtos mbed
main.cpp@1:1bde2c70d733, 2015-05-02 (annotated)
- Committer:
- rjuste3
- Date:
- Sat May 02 09:46:40 2015 +0000
- Revision:
- 1:1bde2c70d733
- Parent:
- 0:16b592a513ea
edit some little things;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
rjuste3 | 0:16b592a513ea | 1 | #include "mbed.h" |
rjuste3 | 0:16b592a513ea | 2 | #include <string> |
rjuste3 | 0:16b592a513ea | 3 | #include <ctype.h> |
rjuste3 | 0:16b592a513ea | 4 | #include "EthernetInterface.h" |
rjuste3 | 0:16b592a513ea | 5 | #include "NTPClient.h" |
rjuste3 | 0:16b592a513ea | 6 | #include "PinDetect.h" |
rjuste3 | 0:16b592a513ea | 7 | |
rjuste3 | 0:16b592a513ea | 8 | |
rjuste3 | 0:16b592a513ea | 9 | |
rjuste3 | 0:16b592a513ea | 10 | PinDetect override(p12); |
rjuste3 | 0:16b592a513ea | 11 | DigitalOut myled(LED1); |
rjuste3 | 0:16b592a513ea | 12 | DigitalOut led(LED2); |
rjuste3 | 0:16b592a513ea | 13 | DigitalOut on(p19); |
rjuste3 | 0:16b592a513ea | 14 | DigitalOut off(p20); |
rjuste3 | 0:16b592a513ea | 15 | Serial pc(USBTX, USBRX); |
rjuste3 | 0:16b592a513ea | 16 | struct tm *cTime; |
rjuste3 | 0:16b592a513ea | 17 | int cups = 0; |
rjuste3 | 0:16b592a513ea | 18 | int hour; |
rjuste3 | 0:16b592a513ea | 19 | int minute; |
rjuste3 | 1:1bde2c70d733 | 20 | int timeBrew = 120; |
rjuste3 | 0:16b592a513ea | 21 | |
rjuste3 | 0:16b592a513ea | 22 | |
rjuste3 | 0:16b592a513ea | 23 | |
rjuste3 | 0:16b592a513ea | 24 | |
rjuste3 | 0:16b592a513ea | 25 | void waitForBrew(){ |
rjuste3 | 0:16b592a513ea | 26 | |
rjuste3 | 0:16b592a513ea | 27 | EthernetInterface eth; |
rjuste3 | 0:16b592a513ea | 28 | NTPClient ntp; |
rjuste3 | 1:1bde2c70d733 | 29 | static const char* mbedIp = "128.61.126.186"; //IP |
rjuste3 | 0:16b592a513ea | 30 | static const char* mbedMask = "255.255.240.0"; // Mask |
rjuste3 | 0:16b592a513ea | 31 | static const char* mbedGateway = "128.61.112.1"; //Gateway |
rjuste3 | 0:16b592a513ea | 32 | eth.init(mbedIp, mbedMask, mbedGateway); |
rjuste3 | 0:16b592a513ea | 33 | eth.connect(); |
rjuste3 | 0:16b592a513ea | 34 | ntp.setTime("0.pool.ntp.org"); |
rjuste3 | 0:16b592a513ea | 35 | time_t currTime = time(NULL); |
rjuste3 | 0:16b592a513ea | 36 | |
rjuste3 | 0:16b592a513ea | 37 | while(1){ |
rjuste3 | 0:16b592a513ea | 38 | currTime = time(NULL); |
rjuste3 | 0:16b592a513ea | 39 | cTime = localtime(&currTime); |
rjuste3 | 0:16b592a513ea | 40 | if (minute == cTime->tm_min && hour == cTime->tm_hour){ |
rjuste3 | 0:16b592a513ea | 41 | on = 1; |
rjuste3 | 0:16b592a513ea | 42 | wait(.5); |
rjuste3 | 0:16b592a513ea | 43 | on = 0; |
rjuste3 | 0:16b592a513ea | 44 | off =0; |
rjuste3 | 0:16b592a513ea | 45 | wait(timeBrew); |
rjuste3 | 0:16b592a513ea | 46 | on = 0; |
rjuste3 | 0:16b592a513ea | 47 | off = 1; |
rjuste3 | 0:16b592a513ea | 48 | wait(.5); |
rjuste3 | 0:16b592a513ea | 49 | off = 0; |
rjuste3 | 0:16b592a513ea | 50 | } |
rjuste3 | 0:16b592a513ea | 51 | } |
rjuste3 | 0:16b592a513ea | 52 | } |
rjuste3 | 0:16b592a513ea | 53 | |
rjuste3 | 0:16b592a513ea | 54 | int main() { |
rjuste3 | 0:16b592a513ea | 55 | |
rjuste3 | 0:16b592a513ea | 56 | on = 0; |
rjuste3 | 0:16b592a513ea | 57 | off = 1; |
rjuste3 | 0:16b592a513ea | 58 | override.mode(PullUp); |
rjuste3 | 0:16b592a513ea | 59 | wait(0.1); |
rjuste3 | 0:16b592a513ea | 60 | off=0; |
rjuste3 | 0:16b592a513ea | 61 | |
rjuste3 | 0:16b592a513ea | 62 | |
rjuste3 | 0:16b592a513ea | 63 | |
rjuste3 | 0:16b592a513ea | 64 | char buffer[20]; |
rjuste3 | 0:16b592a513ea | 65 | char minBuffer[2]; |
rjuste3 | 0:16b592a513ea | 66 | char hourBuf[2]; |
rjuste3 | 0:16b592a513ea | 67 | bool brewing = false; |
rjuste3 | 0:16b592a513ea | 68 | |
rjuste3 | 0:16b592a513ea | 69 | |
rjuste3 | 0:16b592a513ea | 70 | |
rjuste3 | 0:16b592a513ea | 71 | |
rjuste3 | 0:16b592a513ea | 72 | while(brewing == false){ |
rjuste3 | 0:16b592a513ea | 73 | if(pc.readable()){ |
rjuste3 | 0:16b592a513ea | 74 | myled = 0; |
rjuste3 | 0:16b592a513ea | 75 | pc.gets(buffer,6); |
rjuste3 | 0:16b592a513ea | 76 | wait(0.5); |
rjuste3 | 0:16b592a513ea | 77 | pc.printf(buffer); |
rjuste3 | 0:16b592a513ea | 78 | pc.printf("\n"); |
rjuste3 | 0:16b592a513ea | 79 | if(isdigit(buffer[0])){ |
rjuste3 | 0:16b592a513ea | 80 | led = 1; |
rjuste3 | 0:16b592a513ea | 81 | for (int k = 0;k < 2;k++){ |
rjuste3 | 0:16b592a513ea | 82 | hourBuf[k] = buffer[k]; |
rjuste3 | 0:16b592a513ea | 83 | } |
rjuste3 | 0:16b592a513ea | 84 | for(int k =3; k<6; k++){ |
rjuste3 | 0:16b592a513ea | 85 | minBuffer[k-3]=buffer[k]; |
rjuste3 | 0:16b592a513ea | 86 | } |
rjuste3 | 0:16b592a513ea | 87 | hour = atoi(hourBuf); |
rjuste3 | 0:16b592a513ea | 88 | minute = atoi(minBuffer); |
rjuste3 | 0:16b592a513ea | 89 | pc.printf("hour is %d\n",hour); |
rjuste3 | 0:16b592a513ea | 90 | pc.printf("minute is %d\n",minute); |
rjuste3 | 0:16b592a513ea | 91 | brewing = true; |
rjuste3 | 0:16b592a513ea | 92 | waitForBrew(); |
rjuste3 | 0:16b592a513ea | 93 | } |
rjuste3 | 0:16b592a513ea | 94 | else |
rjuste3 | 0:16b592a513ea | 95 | led = 0; |
rjuste3 | 0:16b592a513ea | 96 | } |
rjuste3 | 0:16b592a513ea | 97 | else |
rjuste3 | 0:16b592a513ea | 98 | myled = 1; |
rjuste3 | 0:16b592a513ea | 99 | } |
rjuste3 | 0:16b592a513ea | 100 | |
rjuste3 | 0:16b592a513ea | 101 | |
rjuste3 | 0:16b592a513ea | 102 | } |