#include <DHT.h>
#include <LiquidCrystal_I2C.h>
#include <ESP32Servo.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
DHT dht(4, DHT22);// Set up the DHT sensor
Servo myservo;// Set up Servo
const int servoPin = 13;
float temperature ;
int counter;
LiquidCrystal_I2C lcd(0x27, 16, 2);
int pos = 0;
void SensorSuhu(){
temperature = dht.readTemperature();
}
void actuator(){
if (temperature >= 32) {
for (pos = 0; pos <= 180; pos += 1) {
myservo.write(pos);
delay(15);
}
}
else {
for (pos = 180; pos >= 0; pos -= 1) {
myservo.write(pos);
delay(15);
}
}
}
void liquid(){
lcd.setCursor(0, 0);
LCD.print("Suhu : "+ string(temperature));
LCD.setCursor(0, 1);
LCD.print("Angle : " + string(pos));
}
void setup(){
myservo.attach(13);
Serial.begin(115200);
servo.attach(servoPin, 500, 2400);
Wire.begin(21, 22);
xTaskCreatePinnedToCore(
SensorSuhu,
"Temperature: ",
1000,
NULL,
3,
NULL,
0,
);
xTaskCreatePinnedToCore(
Servo,
"Gerakan servo: "
1000,
NULL,
2,
NULL,
1,
);
xTaskCreatePinnedToCore(
liquid,
"Display: "
1000,
NULL,
1,
NULL,
0,
);
}
void loop() {
SensorSuhu;
liquid;
delay(1000);
}