Osvaldo Neto / Mbed 2 deprecated Projeto

Dependencies:   DTH TextLCD mbed

Committer:
OsvaldoTNeto
Date:
Mon Nov 21 22:32:38 2016 +0000
Revision:
1:15110efcc7a4
Parent:
0:023d17fe2a19
Vers?o Est?vel

Who changed what in which revision?

UserRevisionLine numberNew contents of line
OsvaldoTNeto 0:023d17fe2a19 1 // -------------------------------------
OsvaldoTNeto 0:023d17fe2a19 2 // Projeto Final
OsvaldoTNeto 0:023d17fe2a19 3 // Microcontroladores 2 - 10/10/2016
OsvaldoTNeto 0:023d17fe2a19 4 // Sensor de Temperatura e Umidade DTH11
OsvaldoTNeto 0:023d17fe2a19 5 // -------------------------------------
OsvaldoTNeto 0:023d17fe2a19 6 // Aline Romanini 145157
OsvaldoTNeto 0:023d17fe2a19 7 // Marlon Felipe 121207
OsvaldoTNeto 0:023d17fe2a19 8 // Osvaldo Torezan 147558
OsvaldoTNeto 0:023d17fe2a19 9 // -------------------------------------
OsvaldoTNeto 0:023d17fe2a19 10
OsvaldoTNeto 0:023d17fe2a19 11 // Inclui a Library do mbed
OsvaldoTNeto 0:023d17fe2a19 12 #include "mbed.h"
OsvaldoTNeto 0:023d17fe2a19 13 // Inclui a Library do Sensor de Temperatura e Umidade DHT11
OsvaldoTNeto 0:023d17fe2a19 14 #include "DHT.h"
OsvaldoTNeto 0:023d17fe2a19 15 //Inclui a Library do Display LCD
OsvaldoTNeto 0:023d17fe2a19 16 #include "TextLCD.h"
OsvaldoTNeto 0:023d17fe2a19 17
OsvaldoTNeto 0:023d17fe2a19 18 //Cria uma instância do LCD
OsvaldoTNeto 0:023d17fe2a19 19 TextLCD lcd(PTE0, PTE1, PTE2, PTE3, PTE4, PTE5);
OsvaldoTNeto 0:023d17fe2a19 20
OsvaldoTNeto 0:023d17fe2a19 21 //Cria uma instância do sensor de Temperatura
OsvaldoTNeto 0:023d17fe2a19 22 DHT sensor(PTE20, DHT11);
OsvaldoTNeto 0:023d17fe2a19 23
OsvaldoTNeto 0:023d17fe2a19 24 //Botão para aumentar temperatura de ajuste
OsvaldoTNeto 0:023d17fe2a19 25 DigitalIn btnAumenta(PTC7);
OsvaldoTNeto 0:023d17fe2a19 26 //Botão para diminuir temperatura de ajuste
OsvaldoTNeto 0:023d17fe2a19 27 DigitalIn btnDiminui(PTC0);
OsvaldoTNeto 0:023d17fe2a19 28 //Botão de selecção
OsvaldoTNeto 0:023d17fe2a19 29 DigitalIn btnEnter(PTC5);
OsvaldoTNeto 0:023d17fe2a19 30 //Led interno Vermelho
OsvaldoTNeto 0:023d17fe2a19 31 DigitalOut led(LED1);
OsvaldoTNeto 1:15110efcc7a4 32 //Led interno Verde
OsvaldoTNeto 1:15110efcc7a4 33 DigitalOut ledV(LED2);
OsvaldoTNeto 0:023d17fe2a19 34
OsvaldoTNeto 0:023d17fe2a19 35 //Função que exibe a temperatua no LCD
OsvaldoTNeto 0:023d17fe2a19 36 void ExibeTemperatura(float temperatura)
OsvaldoTNeto 0:023d17fe2a19 37 {
OsvaldoTNeto 0:023d17fe2a19 38 //Define a posição do LCD na coluna 1 e linha 2, no caso (0,1)
OsvaldoTNeto 0:023d17fe2a19 39 lcd.locate(0,1);
OsvaldoTNeto 0:023d17fe2a19 40 //Limpa a linha com 16 espaços
OsvaldoTNeto 0:023d17fe2a19 41 lcd.printf(" ");
OsvaldoTNeto 0:023d17fe2a19 42 //Define a posição do LCD na coluna 1 e linha 2, no caso (0,1)
OsvaldoTNeto 0:023d17fe2a19 43 lcd.locate(0,1);
OsvaldoTNeto 0:023d17fe2a19 44 //Escreve e temperatua no LCD
OsvaldoTNeto 0:023d17fe2a19 45 lcd.printf("%.2f",temperatura);
OsvaldoTNeto 0:023d17fe2a19 46 //Escreve a unidade da temperatura no LCD
OsvaldoTNeto 0:023d17fe2a19 47 lcd.printf(" oC");
OsvaldoTNeto 0:023d17fe2a19 48 }
OsvaldoTNeto 0:023d17fe2a19 49
OsvaldoTNeto 0:023d17fe2a19 50 //Função Principal
OsvaldoTNeto 0:023d17fe2a19 51 int main()
OsvaldoTNeto 0:023d17fe2a19 52 {
OsvaldoTNeto 0:023d17fe2a19 53 //Apaga o LED Vermelho da Placa
OsvaldoTNeto 0:023d17fe2a19 54 led = 1;
OsvaldoTNeto 1:15110efcc7a4 55 //Acende o LED Verde da Placa
OsvaldoTNeto 1:15110efcc7a4 56 ledV = 0;
OsvaldoTNeto 0:023d17fe2a19 57
OsvaldoTNeto 0:023d17fe2a19 58 //Define a tempertura inicial de escolha como 25 graus celcius
OsvaldoTNeto 0:023d17fe2a19 59 float temperatura = 25;
OsvaldoTNeto 0:023d17fe2a19 60
OsvaldoTNeto 0:023d17fe2a19 61 //Escreve o texto abaixo na primeira linha do LCD
OsvaldoTNeto 0:023d17fe2a19 62 lcd.locate(0,0);
OsvaldoTNeto 1:15110efcc7a4 63 lcd.printf("Set Temp Celsius");
OsvaldoTNeto 0:023d17fe2a19 64
OsvaldoTNeto 0:023d17fe2a19 65 //Exibe a temperatura inicial no LCD
OsvaldoTNeto 0:023d17fe2a19 66 ExibeTemperatura(temperatura);
OsvaldoTNeto 0:023d17fe2a19 67
OsvaldoTNeto 0:023d17fe2a19 68 //Laço infinito para que o usuário determine a temperatura do alarme.
OsvaldoTNeto 0:023d17fe2a19 69 //A temperatura será entre o range de temperaturas que o sensor foi construído
OsvaldoTNeto 0:023d17fe2a19 70 //ou seja, entre 0 e +50°C
OsvaldoTNeto 0:023d17fe2a19 71 while(1)
OsvaldoTNeto 0:023d17fe2a19 72 {
OsvaldoTNeto 0:023d17fe2a19 73 //Aumenta a temperatura
OsvaldoTNeto 0:023d17fe2a19 74 if (btnAumenta == 0)
OsvaldoTNeto 0:023d17fe2a19 75 {
OsvaldoTNeto 0:023d17fe2a19 76 //Espera 100ms para auemtnar a temperatura
OsvaldoTNeto 0:023d17fe2a19 77 wait(0.1);
OsvaldoTNeto 0:023d17fe2a19 78 //Caso o usuário tenha mesmo pressionado o botão, e a temperatura seja menor que +50°C, então aumenta 1°C na temperatura e exibe no LCD
OsvaldoTNeto 0:023d17fe2a19 79 if (btnAumenta == 0 && temperatura < 50)
OsvaldoTNeto 0:023d17fe2a19 80 {
OsvaldoTNeto 0:023d17fe2a19 81 temperatura++;
OsvaldoTNeto 0:023d17fe2a19 82 ExibeTemperatura(temperatura);
OsvaldoTNeto 0:023d17fe2a19 83 }
OsvaldoTNeto 0:023d17fe2a19 84 }
OsvaldoTNeto 0:023d17fe2a19 85
OsvaldoTNeto 0:023d17fe2a19 86 //Diminui a temperatura
OsvaldoTNeto 0:023d17fe2a19 87 if (btnDiminui == 0)
OsvaldoTNeto 0:023d17fe2a19 88 {
OsvaldoTNeto 0:023d17fe2a19 89 //Espera 100ms para auemtnar a temperatura
OsvaldoTNeto 0:023d17fe2a19 90 wait(0.1);
OsvaldoTNeto 0:023d17fe2a19 91 //Caso o usuário tenha mesmo pressionado o botão, e a temperatura seja maior que 0°C, então diminui 1°C na temperatura e exibe no LCD
OsvaldoTNeto 0:023d17fe2a19 92 if (btnDiminui == 0 && temperatura > 0)
OsvaldoTNeto 0:023d17fe2a19 93 {
OsvaldoTNeto 0:023d17fe2a19 94 temperatura--;
OsvaldoTNeto 0:023d17fe2a19 95 ExibeTemperatura(temperatura);
OsvaldoTNeto 0:023d17fe2a19 96 }
OsvaldoTNeto 0:023d17fe2a19 97 }
OsvaldoTNeto 0:023d17fe2a19 98
OsvaldoTNeto 0:023d17fe2a19 99 //Caso o usuário tenha pressionado o botão de "Enter", o firmware encerra o "while" e ativa o alarme
OsvaldoTNeto 0:023d17fe2a19 100 if (btnEnter == 0)
OsvaldoTNeto 0:023d17fe2a19 101 break;
OsvaldoTNeto 0:023d17fe2a19 102 }
OsvaldoTNeto 0:023d17fe2a19 103
OsvaldoTNeto 0:023d17fe2a19 104 //Limpa o display LCD
OsvaldoTNeto 0:023d17fe2a19 105 lcd.cls();
OsvaldoTNeto 0:023d17fe2a19 106 //Define o texto na linha 1 e coluna 1, no caso (0,0)
OsvaldoTNeto 0:023d17fe2a19 107 lcd.locate(0,0);
OsvaldoTNeto 0:023d17fe2a19 108 //Escreve "Alarme Ativado"
OsvaldoTNeto 0:023d17fe2a19 109 lcd.printf("Alarm Activate");
OsvaldoTNeto 0:023d17fe2a19 110
OsvaldoTNeto 0:023d17fe2a19 111 while(1)
OsvaldoTNeto 0:023d17fe2a19 112 {
OsvaldoTNeto 0:023d17fe2a19 113 //Chama a função da biblioteca do sensor e requisita a leitura de dados do mesmo
OsvaldoTNeto 0:023d17fe2a19 114 sensor.readData();
OsvaldoTNeto 0:023d17fe2a19 115 //Chama a função da biblioteca do sensor e requisita a temperatura em graus Celcius
OsvaldoTNeto 0:023d17fe2a19 116 float temperaturaS = sensor.ReadTemperature(CELCIUS);
OsvaldoTNeto 0:023d17fe2a19 117 //Exibe a temperatura ambiente no display LCD
OsvaldoTNeto 0:023d17fe2a19 118 ExibeTemperatura(temperaturaS);
OsvaldoTNeto 0:023d17fe2a19 119
OsvaldoTNeto 0:023d17fe2a19 120 //Caso a temperatura ambiente seja maior que a temperatura de alarme
OsvaldoTNeto 0:023d17fe2a19 121 if (temperaturaS > temperatura)
OsvaldoTNeto 0:023d17fe2a19 122 {
OsvaldoTNeto 0:023d17fe2a19 123 // Dispara o alarme com um sinal luminoso no LED Vermelho da Placa
OsvaldoTNeto 1:15110efcc7a4 124 //Apaga o LED Verde
OsvaldoTNeto 1:15110efcc7a4 125 ledV = 1;
OsvaldoTNeto 1:15110efcc7a4 126 //Acende o LED Vermelho
OsvaldoTNeto 1:15110efcc7a4 127 led = 0;
OsvaldoTNeto 1:15110efcc7a4 128 wait(0.1);
OsvaldoTNeto 1:15110efcc7a4 129 led = 1;
OsvaldoTNeto 1:15110efcc7a4 130 wait(0.1);
OsvaldoTNeto 1:15110efcc7a4 131 //}
OsvaldoTNeto 0:023d17fe2a19 132 }
OsvaldoTNeto 1:15110efcc7a4 133 else
OsvaldoTNeto 1:15110efcc7a4 134 ledV = 0; //Acende LED Verde
OsvaldoTNeto 0:023d17fe2a19 135
OsvaldoTNeto 0:023d17fe2a19 136 //Espera 1 segundo para realizar uma nova leitura do sensor
OsvaldoTNeto 0:023d17fe2a19 137 wait(1);
OsvaldoTNeto 0:023d17fe2a19 138 }
OsvaldoTNeto 0:023d17fe2a19 139 }