#include <DHT.h>
const int relayfan = 16;
const int relaybutton = 5;
const int button1 = 18;
const int ledfanON = 27;
const int ledfanOFF = 14;
const int ledvalveOFF = 12;
const int ledvalveON = 13;
DHT dht(26, DHT11);
void task1(void * parameters){
for(;;){
int buttonState = digitalRead(button1);
if(buttonState == LOW){
digitalWrite(relaybutton, HIGH);
}
if(buttonState == HIGH){
digitalWrite(relaybutton, LOW);
}
}
}
void task2(void * parameters){
for(;;){
float temp = dht.readTemperature();
if(temp >= 31){
digitalWrite(relayfan, HIGH);
}
if(temp <= 31){
digitalWrite(relayfan, LOW);
}
Serial.print("Temperature in C: ");
Serial.println(temp);
vTaskDelay(500 / portTICK_PERIOD_MS);
}
}
void task3(void * parameters){
for(;;){
int relaystate = digitalRead(relaybutton);
if(relaystate == HIGH){
digitalWrite(ledvalveON, HIGH);
}else{
digitalWrite(ledvalveON, LOW);
}
if(relaystate == LOW){
digitalWrite(ledvalveOFF, HIGH);
}else{
digitalWrite(ledvalveOFF, LOW);
}
}
}
void task4(void * parameters){
for(;;){
int relayState = digitalRead(relayfan);\
if(relayState == HIGH){
digitalWrite(ledfanON, HIGH);
}else{
digitalWrite(ledfanON, LOW);
}
if(relayState == LOW){
digitalWrite(ledfanOFF, HIGH);
}else{
digitalWrite(ledfanOFF, LOW);
}
}
}
void setup() {
Serial.begin(9600);
dht.begin();
pinMode(relayfan, OUTPUT);
pinMode(relaybutton, OUTPUT);
pinMode(button1, INPUT_PULLUP);
pinMode(ledfanON, OUTPUT);
pinMode(ledfanOFF, OUTPUT);
pinMode(ledvalveON, OUTPUT);
pinMode(ledvalveOFF, OUTPUT);
xTaskCreate(
task1,
"Task 1",
1000,
NULL,
1,
NULL
);
xTaskCreate(
task2,
"Task 2",
1000,
NULL,
1,
NULL
);
xTaskCreate(
task3,
"Task 3",
1000,
NULL,
1,
NULL
);
xTaskCreate(
task4,
"Task 4",
1000,
NULL,
1,
NULL
);
}
void loop() {
}