#include <Adafruit_ILI9341.h>
#include <DHTesp.h>
#include <ESP32Servo.h>
#define TFT_SCK 18
#define TFT_MOSI 23
#define TFT_MISO 19
#define TFT_CS 22
#define TFT_DC 21
#define DHT_PIN 27
#define WIDTH 320
#define HEIGHT 240
#define SERVO_PIN 17
#define SERVO_PIN2 16
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC);
DHTesp dhtSensor;
Servo servo;
Servo servo_2;
void startServo() {
int pos = 0;
for (pos = 0; pos <= 180; pos += 1) {
servo.write(pos);
delay(15);
}
for (pos = 180; pos >= 0; pos -= 1) {
servo.write(pos);
delay(15);
}
}
void setup(void) {
Serial.begin(115200);
tft.begin();
tft.setRotation(1);
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
servo.attach(SERVO_PIN, 500, 2400);
servo_2.attach(SERVO_PIN2, 500, 2400);
}
float lastHumidity = -1;
float lastTemperature = -41;
float humidity;
float temperature;
void loop() {
humidity = dhtSensor.getHumidity();
temperature = dhtSensor.getTemperature();
Serial.println(String(humidity));
delay(2000);
if (humidity != lastHumidity || temperature != lastTemperature) {
// Очищаем дисплей рисуем на всем дисплее черным
tft.fillScreen(ILI9341_BLACK);
tft.setTextColor(ILI9341_GREEN);
tft.setTextSize(3);
tft.setCursor(0, 0);
tft.println("Humidity: " + String(humidity) + "%");
tft.println("Temperature: " + String(temperature));
}
lastHumidity = humidity;
lastTemperature = temperature;
if (humidity < 25)
{
servo_2.write(90);
for (int i = 0; i < 3; i++)
{
startServo();
}
servo_2.write(0);
}
}