Mini invernadero automatizado, usando un sensor de temperatura y humedad DHT22
Para producir frio o calor, simplemente senso temperatura y activo unos reles que luego iran a los equipos correspondientes
La parte de humedad se supone que genere alta frecuencia pero no se como adaptar la salida de 40mA
para obtener una salida de potencia con la misma frecuencia, quizas un MOSFET pero no sabria como, agradeceria el conocimiento de alguien más en ese aspecto
#include <DHT.h>
#include <DHT_U.h>
#define DHTPIN 6
#define DHTTYPE DHT11 //Define sensor as DHT11
#define RELAY1 4 // Relay heating
#define RELAY2 5 // Relay cooling
int red = 8; // red LED heating
int blue = 9; // blue LED cooling
DHT dht(DHTPIN, DHTTYPE);
float temperature;
float humidity;
// Frequency Generator code
const uint8_t OUTPUT_PIN = 3; // = OC2B pin inamovible
const uint8_t PERIOD = 9; // 9 CPU cycles ~ 1.778 MHz
void setup()
{
pinMode(red, OUTPUT);
pinMode(blue, OUTPUT);
pinMode(RELAY1, OUTPUT);
pinMode(RELAY2, OUTPUT);
// Freq generator code
pinMode(OUTPUT_PIN, OUTPUT);
TCCR2B = 0; // stop timer
TCNT2 = 0; // reset timer
TCCR2A = _BV(COM2B1) // non-inverting PWM on OC2B
| _BV(WGM20) // fast PWM mode, TOP = OCR2A
| _BV(WGM21); // ...ditto
TCCR2B = _BV(WGM22); // ...ditto
OCR2A = PERIOD - 1;
OCR2B = PERIOD/2 - 1;
}
void soundBuzzer() {
TCCR2B |= _BV(CS20); // F_CPU / 1
}
void silenceBuzzer() {
TCCR2B &= ~_BV(CS20);
TCNT2 = 0;
}
//End of freq generator code
void loop()
{
delay(3000); //tiempo entre medidas. 3 sec for DHT22
temperature = dht.readTemperature(); //mide temperatura
humidity = dht.readHumidity(); //lee humedad
if(temperature < 23)
{
digitalWrite(red,HIGH);
digitalWrite(blue,LOW);
digitalWrite(RELAY1,0);
digitalWrite(RELAY2,1);
}
else if(temperature > 27)
{
digitalWrite(RELAY1,1);
digitalWrite(RELAY2,0);
digitalWrite(red,LOW);
digitalWrite(blue,HIGH);
}
else
{
digitalWrite(RELAY1,0);
digitalWrite(RELAY2,0);
digitalWrite(red,LOW);
digitalWrite(blue,LOW);
}
if(humidity < 30)
{
TCCR2A |= _BV(COM2B1);
}
else if(humidity > 35)
{
TCCR2A &= ~_BV(COM2B1);
}
}
El codigo es un borrador el original se subiera cuando este terminado
Saludos
EDIT: tranquilo mod, no entiendo como ver mis propios posteos y pense que el otro habia desaparecido, no trato de “duplicar” jeez chill out