using a temperature, humidity sensor, touch, digit display and a buzzer to create an organ monitoring and alert system which communicates with an app via bluetooth

Dependencies:   DHT DigitDisplay mbed

Fork of Seeed_Grove_Temp_Humidity_Example by Seeed

Committer:
imomoh
Date:
Wed Mar 07 17:39:13 2018 +0000
Revision:
2:91d5583ea3c1
Parent:
0:c12c28a0f9e7
Organ_Transplant_Monitoring_via_bluetooth

Who changed what in which revision?

UserRevisionLine numberNew contents of line
imomoh 2:91d5583ea3c1 1 /*******************************************************************************
imomoh 2:91d5583ea3c1 2 ECE 595 2018 Spring
imomoh 2:91d5583ea3c1 3 Project 1
imomoh 2:91d5583ea3c1 4 Group 10
imomoh 2:91d5583ea3c1 5 last Update @
imomoh 2:91d5583ea3c1 6 memo: ?????????
imomoh 2:91d5583ea3c1 7 ??????//app????
imomoh 2:91d5583ea3c1 8 ????? for timer
imomoh 2:91d5583ea3c1 9 *******************************************************************************/
sam_grove 0:c12c28a0f9e7 10 #include "mbed.h"
sam_grove 0:c12c28a0f9e7 11 #include "DHT.h"
imomoh 2:91d5583ea3c1 12 #include "DigitDisplay.h"
sam_grove 0:c12c28a0f9e7 13
imomoh 2:91d5583ea3c1 14 DHT sensor(D4, DHT11);
imomoh 2:91d5583ea3c1 15 DigitalOut buzzer(D2);
imomoh 2:91d5583ea3c1 16 Timer tOverheat;
imomoh 2:91d5583ea3c1 17 DigitalOut ledred(LED_RED);//or LED1 try both
imomoh 2:91d5583ea3c1 18 DigitalIn touch(D7);
imomoh 2:91d5583ea3c1 19 DigitDisplay display(D5, D6);
imomoh 2:91d5583ea3c1 20
imomoh 2:91d5583ea3c1 21 Serial bluetooth(PTC15, PTC14); //wireless bluetooth connection to Android Device for output
imomoh 2:91d5583ea3c1 22 Serial pc(USBTX,USBRX);
imomoh 2:91d5583ea3c1 23
imomoh 2:91d5583ea3c1 24 int timeflag = 0;
imomoh 2:91d5583ea3c1 25 int timeread = 0;
imomoh 2:91d5583ea3c1 26 int on = 1, off = 0;
sam_grove 0:c12c28a0f9e7 27
imomoh 2:91d5583ea3c1 28 void stemp(float FFF){
imomoh 2:91d5583ea3c1 29 uint8_t FF = FFF;
imomoh 2:91d5583ea3c1 30 display.setColon(0);
imomoh 2:91d5583ea3c1 31 display.write(2, FF / 10);
imomoh 2:91d5583ea3c1 32 display.write(3, FF % 10);
imomoh 2:91d5583ea3c1 33 display.write(0, 0);
imomoh 2:91d5583ea3c1 34 display.write(1, 0);
imomoh 2:91d5583ea3c1 35 }
imomoh 2:91d5583ea3c1 36
imomoh 2:91d5583ea3c1 37 void stime(int ootime){
imomoh 2:91d5583ea3c1 38 uint8_t otime = ootime;
imomoh 2:91d5583ea3c1 39 display.setColon(0);
imomoh 2:91d5583ea3c1 40 display.write(2, otime / 10);
imomoh 2:91d5583ea3c1 41 display.write(3, otime % 10);
imomoh 2:91d5583ea3c1 42 display.write(0, 0);
imomoh 2:91d5583ea3c1 43 display.write(1, 0);
imomoh 2:91d5583ea3c1 44 }
imomoh 2:91d5583ea3c1 45
imomoh 2:91d5583ea3c1 46 void sdisplay(int sw, int tm, float tp){
imomoh 2:91d5583ea3c1 47 if(sw==1){
imomoh 2:91d5583ea3c1 48 stime(tm);
sam_grove 0:c12c28a0f9e7 49 }
imomoh 2:91d5583ea3c1 50 else if(sw==0){
imomoh 2:91d5583ea3c1 51 stemp(tp);
sam_grove 0:c12c28a0f9e7 52 }
sam_grove 0:c12c28a0f9e7 53 }
imomoh 2:91d5583ea3c1 54
imomoh 2:91d5583ea3c1 55 void blink(){
imomoh 2:91d5583ea3c1 56 buzzer = on;
imomoh 2:91d5583ea3c1 57 ledred = 1;
imomoh 2:91d5583ea3c1 58 wait(.3);
imomoh 2:91d5583ea3c1 59 buzzer = off;
imomoh 2:91d5583ea3c1 60 ledred = 0;
imomoh 2:91d5583ea3c1 61 }
imomoh 2:91d5583ea3c1 62
imomoh 2:91d5583ea3c1 63 int main()
imomoh 2:91d5583ea3c1 64 {
imomoh 2:91d5583ea3c1 65 int error = 0;
imomoh 2:91d5583ea3c1 66 float h = 0.0f, f = 0.0f;
imomoh 2:91d5583ea3c1 67 ledred = 1;//?????0???1?,??????
imomoh 2:91d5583ea3c1 68
imomoh 2:91d5583ea3c1 69 pc.baud(9600);
imomoh 2:91d5583ea3c1 70 bluetooth.baud(9600);
imomoh 2:91d5583ea3c1 71 wait(2.0f);
imomoh 2:91d5583ea3c1 72
imomoh 2:91d5583ea3c1 73 while(1)
imomoh 2:91d5583ea3c1 74 {
imomoh 2:91d5583ea3c1 75 error = sensor.readData();
imomoh 2:91d5583ea3c1 76 if (0 == error)
imomoh 2:91d5583ea3c1 77 {
imomoh 2:91d5583ea3c1 78 f = sensor.ReadTemperature(FARENHEIT);
imomoh 2:91d5583ea3c1 79 h = sensor.ReadHumidity();
imomoh 2:91d5583ea3c1 80 sdisplay(touch,timeread,f);
imomoh 2:91d5583ea3c1 81 pc.printf("Temperature in F: %4.2f\n",f);
imomoh 2:91d5583ea3c1 82 pc.printf("Humidity is: %4.2f\n",h);
imomoh 2:91d5583ea3c1 83 bluetooth.printf("%4.2f %4.2f",f,h);
imomoh 2:91d5583ea3c1 84 if(f>33)
imomoh 2:91d5583ea3c1 85 {
imomoh 2:91d5583ea3c1 86 if(timeflag==0){
imomoh 2:91d5583ea3c1 87 timeflag = 1;
imomoh 2:91d5583ea3c1 88 blink();
imomoh 2:91d5583ea3c1 89 pc.printf("Over Heat!!\n");
imomoh 2:91d5583ea3c1 90 tOverheat.start();
imomoh 2:91d5583ea3c1 91 }
imomoh 2:91d5583ea3c1 92 else if(timeflag==1){
imomoh 2:91d5583ea3c1 93 timeread = tOverheat.read();
imomoh 2:91d5583ea3c1 94 if(timeread >= 10){
imomoh 2:91d5583ea3c1 95 buzzer = on;
imomoh 2:91d5583ea3c1 96 pc.printf("Game Over\n");
imomoh 2:91d5583ea3c1 97 ledred = 0;
imomoh 2:91d5583ea3c1 98 }
imomoh 2:91d5583ea3c1 99 else{
imomoh 2:91d5583ea3c1 100 blink();
imomoh 2:91d5583ea3c1 101 pc.printf("Hurry Up, still have chance\n");
imomoh 2:91d5583ea3c1 102 }
imomoh 2:91d5583ea3c1 103 }
imomoh 2:91d5583ea3c1 104 }
imomoh 2:91d5583ea3c1 105 else if(f<=33){
imomoh 2:91d5583ea3c1 106 timeflag = 0;
imomoh 2:91d5583ea3c1 107 tOverheat.reset();
imomoh 2:91d5583ea3c1 108 timeread = 0;
imomoh 2:91d5583ea3c1 109 buzzer = off;
imomoh 2:91d5583ea3c1 110 ledred = 1;
imomoh 2:91d5583ea3c1 111 }
imomoh 2:91d5583ea3c1 112 }
imomoh 2:91d5583ea3c1 113 else{
imomoh 2:91d5583ea3c1 114 // pc.printf("Woops, Sensor Error: %d\n", error);
imomoh 2:91d5583ea3c1 115 }
imomoh 2:91d5583ea3c1 116 }
imomoh 2:91d5583ea3c1 117 }