web server load-drive and reading sensors based on LPC1768

Dependencies:   DHT22 EthernetNetIf HTTPServer mbed

Committer:
douglasofranco
Date:
Mon Dec 07 14:06:24 2015 +0000
Revision:
0:3125f39d20b4
Web server load-drive and reading sensors based on LPC1768

Who changed what in which revision?

UserRevisionLine numberNew contents of line
douglasofranco 0:3125f39d20b4 1 #include "Leitura.h"
douglasofranco 0:3125f39d20b4 2 #include "mbed.h"
douglasofranco 0:3125f39d20b4 3 #include "DHT22.h"
douglasofranco 0:3125f39d20b4 4 #include "TextLCD.h"
douglasofranco 0:3125f39d20b4 5 #include "SensorHandler.h"
douglasofranco 0:3125f39d20b4 6
douglasofranco 0:3125f39d20b4 7 AnalogIn sensCur(p15);
douglasofranco 0:3125f39d20b4 8 AnalogIn sensCur2(p16);
douglasofranco 0:3125f39d20b4 9 AnalogIn sensCur3(p17);
douglasofranco 0:3125f39d20b4 10 AnalogIn sensCC (p18);
douglasofranco 0:3125f39d20b4 11 DigitalIn sensAC (p27);
douglasofranco 0:3125f39d20b4 12 DHT22 sensor(p11);
douglasofranco 0:3125f39d20b4 13
douglasofranco 0:3125f39d20b4 14 DigitalOut dout(LED1);
douglasofranco 0:3125f39d20b4 15 DigitalOut myled(LED4);
douglasofranco 0:3125f39d20b4 16
douglasofranco 0:3125f39d20b4 17 int AC;
douglasofranco 0:3125f39d20b4 18 int err;
douglasofranco 0:3125f39d20b4 19 int szTemp;
douglasofranco 0:3125f39d20b4 20 int szUmid;
douglasofranco 0:3125f39d20b4 21 char szTemp2[10]; //utilizado no sensorhandler
douglasofranco 0:3125f39d20b4 22 char szUmid2[10]; //utilizado no sensorhandler
douglasofranco 0:3125f39d20b4 23 char Corrente[50];
douglasofranco 0:3125f39d20b4 24 char Corrente2[50];
douglasofranco 0:3125f39d20b4 25 char Corrente3[50];
douglasofranco 0:3125f39d20b4 26 //char Tensao[10];
douglasofranco 0:3125f39d20b4 27 char TensCC[10];
douglasofranco 0:3125f39d20b4 28 unsigned char k = 0;
douglasofranco 0:3125f39d20b4 29 unsigned char h = 0;
douglasofranco 0:3125f39d20b4 30
douglasofranco 0:3125f39d20b4 31 float sensorValue;
douglasofranco 0:3125f39d20b4 32 float sensorValue_aux;
douglasofranco 0:3125f39d20b4 33 float sensorValue2;
douglasofranco 0:3125f39d20b4 34 float sensorValue_aux2;
douglasofranco 0:3125f39d20b4 35 float sensorValue3;
douglasofranco 0:3125f39d20b4 36 float sensorValue_aux3;
douglasofranco 0:3125f39d20b4 37 float getValor;
douglasofranco 0:3125f39d20b4 38 float Tcc;
douglasofranco 0:3125f39d20b4 39 float TensAC;
douglasofranco 0:3125f39d20b4 40 float media = 0; //para media movel
douglasofranco 0:3125f39d20b4 41 float filtro[10]; //para media movel
douglasofranco 0:3125f39d20b4 42 float media2 = 0; //para media movel
douglasofranco 0:3125f39d20b4 43 float filtro2[10]; //para media movel
douglasofranco 0:3125f39d20b4 44
douglasofranco 0:3125f39d20b4 45 float voltsporUnidade = 0.0008056640625; // 3.3/4096
douglasofranco 0:3125f39d20b4 46 float Vref = 3.3;
douglasofranco 0:3125f39d20b4 47 float Vref2 = 3.11;
douglasofranco 0:3125f39d20b4 48 float Offset = 2.3; //6.7; //Tensão CC
douglasofranco 0:3125f39d20b4 49 float salto = 0.01559; //0.01563;
douglasofranco 0:3125f39d20b4 50 float DHT = 62; //Taxa de amostragem DHT
douglasofranco 0:3125f39d20b4 51 int chute=0;
douglasofranco 0:3125f39d20b4 52
douglasofranco 0:3125f39d20b4 53
douglasofranco 0:3125f39d20b4 54 void Leituras::clima()
douglasofranco 0:3125f39d20b4 55 {
douglasofranco 0:3125f39d20b4 56
douglasofranco 0:3125f39d20b4 57
douglasofranco 0:3125f39d20b4 58 sensor.sample() ;
douglasofranco 0:3125f39d20b4 59
douglasofranco 0:3125f39d20b4 60 szTemp = (sensor.getTemperature()/10.0);
douglasofranco 0:3125f39d20b4 61 szUmid = (sensor.getHumidity()/10.0);
douglasofranco 0:3125f39d20b4 62
douglasofranco 0:3125f39d20b4 63 }
douglasofranco 0:3125f39d20b4 64 void Leituras::corrente()
douglasofranco 0:3125f39d20b4 65 {
douglasofranco 0:3125f39d20b4 66 sensorValue_aux = 0;
douglasofranco 0:3125f39d20b4 67 for (int a=0; a<10; a++) {
douglasofranco 0:3125f39d20b4 68 sensorValue_aux += sensCur.read();
douglasofranco 0:3125f39d20b4 69 }
douglasofranco 0:3125f39d20b4 70 sensorValue_aux = sensorValue_aux / 10;
douglasofranco 0:3125f39d20b4 71 sensorValue = ((((sensorValue_aux * Vref2) / voltsporUnidade)-1650)/DHT) - 12.56;
douglasofranco 0:3125f39d20b4 72 sprintf( Corrente, "%0.2f", sensorValue);
douglasofranco 0:3125f39d20b4 73 }
douglasofranco 0:3125f39d20b4 74
douglasofranco 0:3125f39d20b4 75 void Leituras::corrente2()
douglasofranco 0:3125f39d20b4 76 {
douglasofranco 0:3125f39d20b4 77 sensorValue_aux2 = 0;
douglasofranco 0:3125f39d20b4 78
douglasofranco 0:3125f39d20b4 79 for (int b=0; b<10; b++) {
douglasofranco 0:3125f39d20b4 80 sensorValue_aux2 += sensCur2.read();
douglasofranco 0:3125f39d20b4 81 }
douglasofranco 0:3125f39d20b4 82 sensorValue_aux2 = (sensorValue_aux2 / 10);
douglasofranco 0:3125f39d20b4 83 sensorValue2 = ((((sensorValue_aux2 * Vref2) / voltsporUnidade)-1650)/DHT) - 12.36;
douglasofranco 0:3125f39d20b4 84 sprintf( Corrente2, "%0.2f", sensorValue2);
douglasofranco 0:3125f39d20b4 85
douglasofranco 0:3125f39d20b4 86 }
douglasofranco 0:3125f39d20b4 87
douglasofranco 0:3125f39d20b4 88 void Leituras::corrente3()
douglasofranco 0:3125f39d20b4 89 {
douglasofranco 0:3125f39d20b4 90 sensorValue_aux3 = 0;
douglasofranco 0:3125f39d20b4 91
douglasofranco 0:3125f39d20b4 92 for (int c=0; c<10; c++) {
douglasofranco 0:3125f39d20b4 93 sensorValue_aux3 += sensCur3.read();
douglasofranco 0:3125f39d20b4 94 }
douglasofranco 0:3125f39d20b4 95 sensorValue_aux3 = sensorValue_aux3 / 10;
douglasofranco 0:3125f39d20b4 96 sensorValue3 = ((((sensorValue_aux3 * Vref2) / voltsporUnidade)-1650)/DHT) - 12.10;
douglasofranco 0:3125f39d20b4 97 sprintf( Corrente3, "%0.2f", sensorValue3);
douglasofranco 0:3125f39d20b4 98 }
douglasofranco 0:3125f39d20b4 99
douglasofranco 0:3125f39d20b4 100 void Leituras::TensaoCC()
douglasofranco 0:3125f39d20b4 101 {
douglasofranco 0:3125f39d20b4 102 Tcc = 0;
douglasofranco 0:3125f39d20b4 103 if (chute ==0){
douglasofranco 0:3125f39d20b4 104 Tcc= sensCC.read();
douglasofranco 0:3125f39d20b4 105 Tcc = ((Tcc * salto) + Offset);
douglasofranco 0:3125f39d20b4 106 chute =1;
douglasofranco 0:3125f39d20b4 107 }
douglasofranco 0:3125f39d20b4 108
douglasofranco 0:3125f39d20b4 109 //media movel
douglasofranco 0:3125f39d20b4 110
douglasofranco 0:3125f39d20b4 111 unsigned char j;
douglasofranco 0:3125f39d20b4 112 filtro[k] = sensCC.read();
douglasofranco 0:3125f39d20b4 113 k++;
douglasofranco 0:3125f39d20b4 114 if(k==10) {
douglasofranco 0:3125f39d20b4 115 k=0;
douglasofranco 0:3125f39d20b4 116 }
douglasofranco 0:3125f39d20b4 117
douglasofranco 0:3125f39d20b4 118 for(j=0; j<10; j++) {
douglasofranco 0:3125f39d20b4 119 getValor += filtro[j];
douglasofranco 0:3125f39d20b4 120 }
douglasofranco 0:3125f39d20b4 121 getValor = getValor/10;
douglasofranco 0:3125f39d20b4 122 Tcc = ((getValor * 4094) - 2048);
douglasofranco 0:3125f39d20b4 123 Tcc = ((Tcc * salto) + Offset);
douglasofranco 0:3125f39d20b4 124 if (Tcc < 12.1) {
douglasofranco 0:3125f39d20b4 125 Tcc = Tcc + 0.18;
douglasofranco 0:3125f39d20b4 126 }
douglasofranco 0:3125f39d20b4 127 if (Tcc>= 13) {
douglasofranco 0:3125f39d20b4 128 Tcc = Tcc - 0.06;
douglasofranco 0:3125f39d20b4 129 }
douglasofranco 0:3125f39d20b4 130 if (Tcc < 11.7) {
douglasofranco 0:3125f39d20b4 131 Tcc = Tcc + 0.09;
douglasofranco 0:3125f39d20b4 132 }
douglasofranco 0:3125f39d20b4 133 sprintf(TensCC, "%2.2f", Tcc);
douglasofranco 0:3125f39d20b4 134
douglasofranco 0:3125f39d20b4 135
douglasofranco 0:3125f39d20b4 136 }
douglasofranco 0:3125f39d20b4 137
douglasofranco 0:3125f39d20b4 138 void Leituras::TensaoAC()
douglasofranco 0:3125f39d20b4 139 {
douglasofranco 0:3125f39d20b4 140 float TAC = 0.0;
douglasofranco 0:3125f39d20b4 141 TensAC = 0;
douglasofranco 0:3125f39d20b4 142 unsigned char l;
douglasofranco 0:3125f39d20b4 143
douglasofranco 0:3125f39d20b4 144 for (int w=0; w<30; w++) {
douglasofranco 0:3125f39d20b4 145 TAC += sensAC.read();
douglasofranco 0:3125f39d20b4 146 }
douglasofranco 0:3125f39d20b4 147 TAC = (TAC / 30);
douglasofranco 0:3125f39d20b4 148
douglasofranco 0:3125f39d20b4 149 filtro2[h] = TAC;
douglasofranco 0:3125f39d20b4 150 h++;
douglasofranco 0:3125f39d20b4 151 if(h==10) {
douglasofranco 0:3125f39d20b4 152 h=0;
douglasofranco 0:3125f39d20b4 153 }
douglasofranco 0:3125f39d20b4 154
douglasofranco 0:3125f39d20b4 155 for(l=0; l<=10; l++) {
douglasofranco 0:3125f39d20b4 156 TensAC += filtro2[l];
douglasofranco 0:3125f39d20b4 157 }
douglasofranco 0:3125f39d20b4 158
douglasofranco 0:3125f39d20b4 159 TensAC = TensAC * Vref;
douglasofranco 0:3125f39d20b4 160 // TensAC = (TAC / 100) * Vref;
douglasofranco 0:3125f39d20b4 161 if (TensAC != 33.0) {
douglasofranco 0:3125f39d20b4 162 AC = 1;
douglasofranco 0:3125f39d20b4 163 } else AC = 0 ;
douglasofranco 0:3125f39d20b4 164 }