Updated

Dependencies:   C12832 LM75B PWM_Tone_Library mbed

Fork of IoT Project Final by UH IoT

Committer:
ko16aam
Date:
Wed Feb 22 11:32:35 2017 +0000
Revision:
3:9c4e6163a71b
Parent:
2:c8d16cec2564
Code fixes and alterations

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ko16aam 0:e9258aa72a94 1 #include "mbed.h"
ko16aam 0:e9258aa72a94 2 #include "C12832.h"
ko16aam 0:e9258aa72a94 3 #include "pwm_tone.h"
ko16aam 0:e9258aa72a94 4
ko16aam 0:e9258aa72a94 5 //DigitalOut myled(LED1);
ko16aam 0:e9258aa72a94 6 PwmOut Buzzer(D5);
ko16aam 0:e9258aa72a94 7 C12832 lcd(p5, p7, p6, p8, p11);
ko16aam 3:9c4e6163a71b 8 AnalogIn sensor(p16);
Fleishmachine 1:1ed4e4239ea6 9 PwmOut spkr(p26);
Fleishmachine 1:1ed4e4239ea6 10 BusOut RGB (p23, p24, p25);
ko16aam 0:e9258aa72a94 11
ko16aam 0:e9258aa72a94 12 float C_3 = 1000000/Do3,
ko16aam 0:e9258aa72a94 13 Cs_3 = 1000000/Do3s,
ko16aam 0:e9258aa72a94 14 D_3 = 1000000/Re3,
ko16aam 0:e9258aa72a94 15 Ds_3 = 1000000/Re3s,
ko16aam 0:e9258aa72a94 16 E_3 = 1000000/Mi3,
ko16aam 0:e9258aa72a94 17 F_3 = 1000000/Fa3,
ko16aam 0:e9258aa72a94 18 Fs_3 = 1000000/Fa3s,
ko16aam 0:e9258aa72a94 19 G_3 = 1000000/So3,
ko16aam 0:e9258aa72a94 20 Gs_3 = 1000000/So3s,
ko16aam 0:e9258aa72a94 21 A_3 = 1000000/La3,
ko16aam 0:e9258aa72a94 22 As_3 = 1000000/La3s,
ko16aam 0:e9258aa72a94 23 B_3 = 1000000/Ti3,
ko16aam 0:e9258aa72a94 24 C_4 = 1000000/Do4,
ko16aam 0:e9258aa72a94 25 Cs_4 = 1000000/Do4s,
ko16aam 0:e9258aa72a94 26 D_4 = 1000000/Re4,
ko16aam 0:e9258aa72a94 27 Ds_4 = 1000000/Re4s,
ko16aam 0:e9258aa72a94 28 E_4 = 1000000/Mi4,
ko16aam 0:e9258aa72a94 29 F_4 = 1000000/Fa4,
ko16aam 0:e9258aa72a94 30 Fs_4 = 1000000/Fa4s,
ko16aam 0:e9258aa72a94 31 G_4 = 1000000/So4,
ko16aam 0:e9258aa72a94 32 Gs_4 = 1000000/So4s,
ko16aam 0:e9258aa72a94 33 A_4 = 1000000/La4,
ko16aam 0:e9258aa72a94 34 As_4 = 1000000/La4s,
ko16aam 0:e9258aa72a94 35 B_4 = 1000000/Ti4,
ko16aam 0:e9258aa72a94 36 C_5 = 1000000/Do5,
ko16aam 0:e9258aa72a94 37 Cs_5 = 1000000/Do5s,
ko16aam 0:e9258aa72a94 38 D_5 = 1000000/Re5,
ko16aam 0:e9258aa72a94 39 Ds_5 = 1000000/Re5s,
ko16aam 0:e9258aa72a94 40 E_5 = 1000000/Mi5,
ko16aam 0:e9258aa72a94 41 F_5 = 1000000/Fa5,
ko16aam 0:e9258aa72a94 42 Fs_5 = 1000000/Fa5s,
ko16aam 0:e9258aa72a94 43 G_5 = 1000000/So5,
ko16aam 0:e9258aa72a94 44 Gs_5 = 1000000/So5s,
ko16aam 0:e9258aa72a94 45 A_5 = 1000000/La5,
ko16aam 0:e9258aa72a94 46 As_5 = 1000000/La5s,
ko16aam 0:e9258aa72a94 47 B_5 = 1000000/Ti5;
ko16aam 0:e9258aa72a94 48
ko16aam 0:e9258aa72a94 49 int tones[] = {E_4, D_4, C_4, D_4, E_4, E_4, E_4, 0, D_4, D_4, D_4, 0, E_4, G_4, G_4, 0,
ko16aam 0:e9258aa72a94 50 E_4, D_4, C_4, D_4, E_4, E_4, E_4, 0, D_4, D_4, E_4, D_4, C_4, 0, 0, 0};
ko16aam 0:e9258aa72a94 51 int tones_num = 32;
ko16aam 0:e9258aa72a94 52
ko16aam 0:e9258aa72a94 53
ko16aam 0:e9258aa72a94 54 float multiplier = 50; // this number got me closest to the reading on my multimeter temp probe
ko16aam 0:e9258aa72a94 55 float temp; // calculated temperature
Fleishmachine 1:1ed4e4239ea6 56 int count; // for computing average reading
Fleishmachine 1:1ed4e4239ea6 57 float total;
ko16aam 0:e9258aa72a94 58 float average;
ko16aam 3:9c4e6163a71b 59 int MAX = 22;
ko16aam 3:9c4e6163a71b 60 int MIN = 20;
ko16aam 3:9c4e6163a71b 61 int Boiler_MAX = MIN + 2;
ko16aam 0:e9258aa72a94 62
Fleishmachine 2:c8d16cec2564 63
Fleishmachine 1:1ed4e4239ea6 64 void buzz()
Fleishmachine 1:1ed4e4239ea6 65 {
ko16aam 3:9c4e6163a71b 66 for (float i=2000.0; i<7000.0; i+=1000) {
ko16aam 3:9c4e6163a71b 67 spkr.period(0.5/i);
ko16aam 3:9c4e6163a71b 68 spkr=0.1;
Fleishmachine 1:1ed4e4239ea6 69 wait(0.1);
Fleishmachine 1:1ed4e4239ea6 70 }
Fleishmachine 1:1ed4e4239ea6 71 spkr=0.0;
Fleishmachine 1:1ed4e4239ea6 72 }
Fleishmachine 1:1ed4e4239ea6 73
Fleishmachine 1:1ed4e4239ea6 74 int main() {
Fleishmachine 1:1ed4e4239ea6 75 count = 0;
Fleishmachine 1:1ed4e4239ea6 76 total = 0.0;
ko16aam 3:9c4e6163a71b 77 // RGB = 0xFF;
ko16aam 3:9c4e6163a71b 78 // buzz();
Fleishmachine 1:1ed4e4239ea6 79
ko16aam 0:e9258aa72a94 80 while (1) {
ko16aam 0:e9258aa72a94 81 // formula is analog reading * multiplier
ko16aam 0:e9258aa72a94 82
ko16aam 0:e9258aa72a94 83 temp = sensor.read() * multiplier;
ko16aam 0:e9258aa72a94 84 count++;
ko16aam 0:e9258aa72a94 85 total += temp;
ko16aam 0:e9258aa72a94 86 average = total / count;
ko16aam 0:e9258aa72a94 87
ko16aam 3:9c4e6163a71b 88 if(temp > MAX)
ko16aam 3:9c4e6163a71b 89 {
ko16aam 3:9c4e6163a71b 90 RGB = 0xff;
ko16aam 3:9c4e6163a71b 91 buzz();
ko16aam 3:9c4e6163a71b 92 }
ko16aam 3:9c4e6163a71b 93 else
ko16aam 3:9c4e6163a71b 94 {
ko16aam 3:9c4e6163a71b 95 RGB = 0x19;
ko16aam 3:9c4e6163a71b 96 }
ko16aam 3:9c4e6163a71b 97
ko16aam 3:9c4e6163a71b 98 if(temp < MIN)
ko16aam 3:9c4e6163a71b 99 {
ko16aam 3:9c4e6163a71b 100 RGB = 0x06;
ko16aam 3:9c4e6163a71b 101 }
ko16aam 3:9c4e6163a71b 102 else
ko16aam 3:9c4e6163a71b 103 {
ko16aam 3:9c4e6163a71b 104 RGB = 0x19;
ko16aam 3:9c4e6163a71b 105 }
ko16aam 3:9c4e6163a71b 106
ko16aam 0:e9258aa72a94 107 lcd.cls();
ko16aam 0:e9258aa72a94 108 lcd.locate(0,3);
ko16aam 0:e9258aa72a94 109 lcd.printf("Temperature= %6.2f \n Average= %5.1f \n", temp , average );
ko16aam 0:e9258aa72a94 110 wait(1);
ko16aam 0:e9258aa72a94 111 }
ko16aam 0:e9258aa72a94 112 }
ko16aam 0:e9258aa72a94 113
ko16aam 0:e9258aa72a94 114 //int main(void)
ko16aam 0:e9258aa72a94 115 //{
ko16aam 0:e9258aa72a94 116 // Tune(Buzzer, C_4, 4); //4 Octave C beat 4/16
ko16aam 0:e9258aa72a94 117 // wait_ms(250);
ko16aam 0:e9258aa72a94 118 // Tune(Buzzer, D_4, 4); //4 Octave D beat 4/16
ko16aam 0:e9258aa72a94 119 // wait_ms(250);
ko16aam 0:e9258aa72a94 120 // Tune(Buzzer, E_4, 4); //4 Octave E beat 4/16
ko16aam 0:e9258aa72a94 121 // wait_ms(250);
ko16aam 0:e9258aa72a94 122 //
ko16aam 0:e9258aa72a94 123 // int i;
ko16aam 0:e9258aa72a94 124 //
ko16aam 0:e9258aa72a94 125 // for(i=0; i<tones_num; i++) {
ko16aam 0:e9258aa72a94 126 // Auto_tunes(Buzzer, tones[i], 4); // Auto performance
ko16aam 0:e9258aa72a94 127 // Stop_tunes(Buzzer);
ko16aam 0:e9258aa72a94 128 // }
ko16aam 0:e9258aa72a94 129 //
ko16aam 0:e9258aa72a94 130 //}
ko16aam 0:e9258aa72a94 131
Fleishmachine 1:1ed4e4239ea6 132
ko16aam 0:e9258aa72a94 133
ko16aam 0:e9258aa72a94 134
Fleishmachine 1:1ed4e4239ea6 135