boa tarde, chamo-me carlos e tenho um filho de sete anos.
comprei um kit arduino para tentar motiva-lo em programação e electronica.
Já fizemos alguns testes mas agora pretendemos fazer uma pequena chocadeira para chocar 2 ovos num pequena caixa.
para tal temos um arduino uno, um sensor de temperatura e mais alguns acessorios.
preciso de ajuda para criar um codigo que leia a temperatura e quando ficar abaixo de 38º liga uma lampada por um relay e acima desliga
agradeço todo o tipo de ajuda e opiniões
Que bacana. Quando crescer ele vai ser uma fera da área. 8) 8)
Segue um exemplo bacana de um termostato ajustável por potenciômetro, que ainda exibe os dados numa tela LCD.
obrigado
o meu sensor é o dht11
uso o DHT-11 também,
Segue um código antigo meu para pegar a temperatura máxima e mínima, sendo que só preciso do valor inteiro da temperatura, mas você pode declarar long para receber os valores mais precisos
//Sensor temperatura
#include <DHT.h>
//Declara sensor de temperatura
DHT dht(pinTemp, DHT11);
int valTemperatura=0;
int valTempMax=0;
int valTempMin=50;
int valHumidade=0;
int valHumMax=0;
int valHumMin=100;
unsigned long horaLeituraTemp;
voi setup() {
Serial.println(F("Iniciar sensor de temperatura"));
dht.begin();
}
void loop() {
lerSensorHumidadeTemperatura();
}
//Ler sensor de temperatura e humidade e alimentar variáveis
//Intervalo de leitura de 10 em 10 segundos
void lerSensorHumidadeTemperatura() {
if (horaLeituraTemp==0||comparaTempo(horaLeituraTemp)>=10000) {
horaLeituraTemp=millis();
Serial.println(F("Ler temperatura"));
valTemperatura = (int) dht.readTemperature();
valHumidade = (int) dht.readHumidity();
if (isnan(valTemperatura) || isnan(valHumidade)) {
Serial.println(F("Erro ao ler sensor de humidade e temperatura"));
valTemperatura = 0;
valHumidade = 0;
} else {
char m=0;
//Calcular temperatura máxima e mínima
if (valTemperatura>valTempMax) {
valTempMax=valTemperatura;
m=1;
}
if (valTemperatura<valTempMin) {
valTempMin=valTemperatura;
m=1;
}
//Calcular humidade máxima e mínima
if (valHumidade>valHumMax) {
valHumMax=valHumidade;
m=1;
}
if (valHumidade<valHumMin) {
valHumMin=valHumidade;
m=1;
}
if (m==1) {
gravaValoresMaxMin();
m=0;
}
}
}
}
Pode ter alguns detalhes faltando, ou variáveis, pois peguei essas partes de um código grande.
muito obrigado Ricardo,
agora posso adicionar uma linha de IF para no caso de a temperatura baixar de 38 graus ligar um relay para ligar uma lampada para aquecer o ovo e se ultrapassar desligar a luz?
desculpa o meu desconhecimento
Seria isso mesmo. Um código um pouco mais complexo utilizando dimmer poderia manter a temperatura com muito mais precisão. Mas com um relay assim deve servir.
voltei...
depois de muito pesquisar encontrei este codigo e fiz umas pequenas alterações, mas tenha a duvida de colocar um hc07 para poder enviar os dados da temperatura e humidade para o telemovel
agradeço alguma ajuda ou orientação
// carico le librerie
#include "DHT.h"
// definisco il pin del sensore
#define DHTPIN 8
// definisco il tipo di sensore
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
// definisco che il pin 13 è quello a cui è connesso il led
const int ledPin = 13;
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
int t = dht.readTemperature();
int h = dht.readHumidity();
// setto il limite di temperatura minore o uguale a 17 gradi
if (t <= 17) {
//
digitalWrite(ledPin, HIGH);
}
else {
// turn LED off:
digitalWrite(ledPin, LOW);
}
}