Controle de temperatura do Arduino
Componentes e suprimentos
| | × | 1 | |
| Sensor de temperatura DHT22 | | × | 1 | |
| Fios de jumpers (genérico) | | × | 1 | |
| | × | 2 | |
| | × | 1 | |
| | × | 2 | |
| DFRobot LCD button Shield | | × | 1 | |
| | × | 1 | |
Aplicativos e serviços online
Sobre este projeto
O Projeto
Queremos mostrar o funcionamento de um sistema de controle de temperatura por histerese.
Componentes
Os componentes que usamos foram os seguintes:
Controle de temperatura
O projeto faz um controle de temperatura, modelamos a seguinte situação:
O sistema liga e mostra a temperatura, se a temperatura chegar a 25 graus, então o led verde é acionado e a sala começa a esfriar até que a temperatura caia para 23 graus, o ar condicionado desliga (led vermelho) até que a temperatura volte a subir.
E finalmente temos um vídeo onde você pode ver a operação:
Código
Controle de temperatura Arduino
/ * Por Alexis Santiago Allende * // * Última atualização:12/03/2017 * / # include "DHT.h" // Biblioteca do sensor DHT # include // Biblioteca LCD # define DHTPIN 12 // Definir sensor pino (pino 12) #define DHTTYPE DHT22 // Qual sensor usaDHT dht (DHTPIN, DHTTYPE); // Criar sensor objectLiquidCrystal lcd (8, 9, 4, 5, 6, 7); // Criar objeto lcd usando estes pinos 8,9,4,6,7boolean a =LOW, b =HIGH; float h =0, t =0; const int ledPin =3; // Pinos de LED para controle de temperatura const int ledPin2 =2; long previousMillis =0; long interval =2000; // Lê o sensor a cada 2 segundos para evitar o setup () {lcd.begin (16, 2); // Iniciar lcd lcd.setCursor (0,0); // Definir na posição 0,0 // definir o pino digital como saída:pinMode (ledPin, OUTPUT); // Mudar para saída meu pinspinMode (ledPin2, OUTPUT); dht.begin (); // Iniciar DHT22 sensordigitalWrite (ledPin2 , LOW); // Desativa o LEDdigitalWrite (ledPin, LOW); // Desativa o LEDlcd.print ("Tempera:"); // imprime esta palavra no LCD lcd.setCursor (0,1); // Altera a posição do cursorlcd .print ("Humedad:"); // imprime esta palavra no LCD} void loop () {unsigned long currentMillis =millis (); // tempo decorrido if (currentMillis - previousMillis> interval) // Comparação entre o tempo decorrido e a hora em que a ação deve ser executada {previousMillis =currentMillis; // "A última vez é agora" h =dht.readHumidity (); // valor da umidade t =dht.readTemperature (); // valor da temperatura em centígrados se desejar que o farenheit mude para // t =dht.readTemperature (true); // Abaixo estão os sensores de dados de impressão em lcd lcd.setCursor (10,0); lcd.print (t); lcd.setCursor (10,1); lcd.print (h); if (t> =25 &&a ==LOW) // se temperatura acima de 25 graus {digitalWrite (ledPin, HIGH); // Ar condicionado ativo digitalWrite (ledPin2, LOW); a =ALTO; b =BAIXO; } else if (t <=23 &&b ==LOW) // se a temperatura estiver abaixo de 23 graus {digitalWrite (ledPin2, HIGH); digitalWrite (ledPin, LOW); // Desligue o ar condicionado a =LOW; b =ALTO; }}}
Esquemas