Osvaldo Neto / Mbed 2 deprecated Projeto

Dependencies:   DTH TextLCD mbed

Committer:
OsvaldoTNeto
Date:
Sun Nov 20 19:08:15 2016 +0000
Revision:
0:023d17fe2a19
Child:
1:15110efcc7a4
Projeto Final

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 0:023d17fe2a19 32
OsvaldoTNeto 0:023d17fe2a19 33 //Função que exibe a temperatua no LCD
OsvaldoTNeto 0:023d17fe2a19 34 void ExibeTemperatura(float temperatura)
OsvaldoTNeto 0:023d17fe2a19 35 {
OsvaldoTNeto 0:023d17fe2a19 36 //Define a posição do LCD na coluna 1 e linha 2, no caso (0,1)
OsvaldoTNeto 0:023d17fe2a19 37 lcd.locate(0,1);
OsvaldoTNeto 0:023d17fe2a19 38 //Limpa a linha com 16 espaços
OsvaldoTNeto 0:023d17fe2a19 39 lcd.printf(" ");
OsvaldoTNeto 0:023d17fe2a19 40 //Define a posição do LCD na coluna 1 e linha 2, no caso (0,1)
OsvaldoTNeto 0:023d17fe2a19 41 lcd.locate(0,1);
OsvaldoTNeto 0:023d17fe2a19 42 //Escreve e temperatua no LCD
OsvaldoTNeto 0:023d17fe2a19 43 lcd.printf("%.2f",temperatura);
OsvaldoTNeto 0:023d17fe2a19 44 //Escreve a unidade da temperatura no LCD
OsvaldoTNeto 0:023d17fe2a19 45 lcd.printf(" oC");
OsvaldoTNeto 0:023d17fe2a19 46 }
OsvaldoTNeto 0:023d17fe2a19 47
OsvaldoTNeto 0:023d17fe2a19 48 //Função Principal
OsvaldoTNeto 0:023d17fe2a19 49 int main()
OsvaldoTNeto 0:023d17fe2a19 50 {
OsvaldoTNeto 0:023d17fe2a19 51 //Apaga o LED Vermelho da Placa
OsvaldoTNeto 0:023d17fe2a19 52 led = 1;
OsvaldoTNeto 0:023d17fe2a19 53
OsvaldoTNeto 0:023d17fe2a19 54 //Define a tempertura inicial de escolha como 25 graus celcius
OsvaldoTNeto 0:023d17fe2a19 55 float temperatura = 25;
OsvaldoTNeto 0:023d17fe2a19 56
OsvaldoTNeto 0:023d17fe2a19 57 //Escreve o texto abaixo na primeira linha do LCD
OsvaldoTNeto 0:023d17fe2a19 58 lcd.locate(0,0);
OsvaldoTNeto 0:023d17fe2a19 59 lcd.printf("Set Temp Celcius");
OsvaldoTNeto 0:023d17fe2a19 60
OsvaldoTNeto 0:023d17fe2a19 61 //Exibe a temperatura inicial no LCD
OsvaldoTNeto 0:023d17fe2a19 62 ExibeTemperatura(temperatura);
OsvaldoTNeto 0:023d17fe2a19 63
OsvaldoTNeto 0:023d17fe2a19 64 //Laço infinito para que o usuário determine a temperatura do alarme.
OsvaldoTNeto 0:023d17fe2a19 65 //A temperatura será entre o range de temperaturas que o sensor foi construído
OsvaldoTNeto 0:023d17fe2a19 66 //ou seja, entre 0 e +50°C
OsvaldoTNeto 0:023d17fe2a19 67 while(1)
OsvaldoTNeto 0:023d17fe2a19 68 {
OsvaldoTNeto 0:023d17fe2a19 69 //Aumenta a temperatura
OsvaldoTNeto 0:023d17fe2a19 70 if (btnAumenta == 0)
OsvaldoTNeto 0:023d17fe2a19 71 {
OsvaldoTNeto 0:023d17fe2a19 72 //Espera 100ms para auemtnar a temperatura
OsvaldoTNeto 0:023d17fe2a19 73 wait(0.1);
OsvaldoTNeto 0:023d17fe2a19 74 //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 75 if (btnAumenta == 0 && temperatura < 50)
OsvaldoTNeto 0:023d17fe2a19 76 {
OsvaldoTNeto 0:023d17fe2a19 77 temperatura++;
OsvaldoTNeto 0:023d17fe2a19 78 ExibeTemperatura(temperatura);
OsvaldoTNeto 0:023d17fe2a19 79 }
OsvaldoTNeto 0:023d17fe2a19 80 }
OsvaldoTNeto 0:023d17fe2a19 81
OsvaldoTNeto 0:023d17fe2a19 82 //Diminui a temperatura
OsvaldoTNeto 0:023d17fe2a19 83 if (btnDiminui == 0)
OsvaldoTNeto 0:023d17fe2a19 84 {
OsvaldoTNeto 0:023d17fe2a19 85 //Espera 100ms para auemtnar a temperatura
OsvaldoTNeto 0:023d17fe2a19 86 wait(0.1);
OsvaldoTNeto 0:023d17fe2a19 87 //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 88 if (btnDiminui == 0 && temperatura > 0)
OsvaldoTNeto 0:023d17fe2a19 89 {
OsvaldoTNeto 0:023d17fe2a19 90 temperatura--;
OsvaldoTNeto 0:023d17fe2a19 91 ExibeTemperatura(temperatura);
OsvaldoTNeto 0:023d17fe2a19 92 }
OsvaldoTNeto 0:023d17fe2a19 93 }
OsvaldoTNeto 0:023d17fe2a19 94
OsvaldoTNeto 0:023d17fe2a19 95 //Caso o usuário tenha pressionado o botão de "Enter", o firmware encerra o "while" e ativa o alarme
OsvaldoTNeto 0:023d17fe2a19 96 if (btnEnter == 0)
OsvaldoTNeto 0:023d17fe2a19 97 break;
OsvaldoTNeto 0:023d17fe2a19 98 }
OsvaldoTNeto 0:023d17fe2a19 99
OsvaldoTNeto 0:023d17fe2a19 100 //Limpa o display LCD
OsvaldoTNeto 0:023d17fe2a19 101 lcd.cls();
OsvaldoTNeto 0:023d17fe2a19 102 //Define o texto na linha 1 e coluna 1, no caso (0,0)
OsvaldoTNeto 0:023d17fe2a19 103 lcd.locate(0,0);
OsvaldoTNeto 0:023d17fe2a19 104 //Escreve "Alarme Ativado"
OsvaldoTNeto 0:023d17fe2a19 105 lcd.printf("Alarm Activate");
OsvaldoTNeto 0:023d17fe2a19 106
OsvaldoTNeto 0:023d17fe2a19 107 while(1)
OsvaldoTNeto 0:023d17fe2a19 108 {
OsvaldoTNeto 0:023d17fe2a19 109 //Chama a função da biblioteca do sensor e requisita a leitura de dados do mesmo
OsvaldoTNeto 0:023d17fe2a19 110 sensor.readData();
OsvaldoTNeto 0:023d17fe2a19 111 //Chama a função da biblioteca do sensor e requisita a temperatura em graus Celcius
OsvaldoTNeto 0:023d17fe2a19 112 float temperaturaS = sensor.ReadTemperature(CELCIUS);
OsvaldoTNeto 0:023d17fe2a19 113 //Exibe a temperatura ambiente no display LCD
OsvaldoTNeto 0:023d17fe2a19 114 ExibeTemperatura(temperaturaS);
OsvaldoTNeto 0:023d17fe2a19 115
OsvaldoTNeto 0:023d17fe2a19 116 //Caso a temperatura ambiente seja maior que a temperatura de alarme
OsvaldoTNeto 0:023d17fe2a19 117 if (temperaturaS > temperatura)
OsvaldoTNeto 0:023d17fe2a19 118 {
OsvaldoTNeto 0:023d17fe2a19 119 // Dispara o alarme com um sinal luminoso no LED Vermelho da Placa
OsvaldoTNeto 0:023d17fe2a19 120 while(1)
OsvaldoTNeto 0:023d17fe2a19 121 {
OsvaldoTNeto 0:023d17fe2a19 122 led = 0;
OsvaldoTNeto 0:023d17fe2a19 123 wait(0.1);
OsvaldoTNeto 0:023d17fe2a19 124 led = 1;
OsvaldoTNeto 0:023d17fe2a19 125 wait(0.1);
OsvaldoTNeto 0:023d17fe2a19 126 }
OsvaldoTNeto 0:023d17fe2a19 127 }
OsvaldoTNeto 0:023d17fe2a19 128
OsvaldoTNeto 0:023d17fe2a19 129 //Espera 1 segundo para realizar uma nova leitura do sensor
OsvaldoTNeto 0:023d17fe2a19 130 wait(1);
OsvaldoTNeto 0:023d17fe2a19 131 }
OsvaldoTNeto 0:023d17fe2a19 132 }