#include <Servo.h> // подключаем библиотеку для работы с сервоприводом
Servo servo1; // объявляем переменную servo типа "servo1"
#include "DHT.h"
#define DHTPIN 9// Тот самый номер пина, о котором упоминалось выше
// Одна из следующих строк закоментирована. Снимите комментарий, если подключаете датчик DHT11 к arduino
DHT dht(DHTPIN, DHT22); //Инициация датчика
//DHT dht(DHTPIN, DHT11);
const int led1=11;
const int led2=12;
const int var=0;
const int pinPhoto = A0;
int RELAY_PIN = 3;
int row = 0;
int k = 0;
void setup() {
Serial.begin(9600);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode( pinPhoto, INPUT);
pinMode(RELAY_PIN, OUTPUT);
servo1.attach(13); // привязываем сервопривод к аналоговому выходу 13
dht.begin();
}
void loop() {
row = analogRead( pinPhoto );
if (row < 100){
digitalWrite(led2, HIGH);
digitalWrite(RELAY_PIN, LOW);
} else {
digitalWrite(led2,LOW);
digitalWrite(RELAY_PIN, HIGH);
}
delay(2000); // 2 секунды задержки
float h = dht.readHumidity(); //Измеряем влажность
float t = dht.readTemperature(); //Измеряем температуру
if (isnan(h) || isnan(t)) { // Проверка. Если не удается считать показания, выводится «Ошибка считывания», и программа завершает работу
Serial.println("Ошибка считывания");
return;
}
if (h>40 && k<5){
digitalWrite(led1, HIGH);
for(int i=0;i<1;i++){ // Конструкция «3 в одном»
servo1.write(0); // ставим угол поворота под 0
k++;
delay(1000); // ждем 1 секунду
servo1.write(180); // ставим угол поворота под 90
delay(500); // ждем 1 секунду
k++;
servo1.write(0); // ставим угол поворота под 90
delay(2000); // ждем 1 секунду
k++;
servo1.write(180); // ставим угол поворота под 90
delay(1000); // ждем 1 секунду
k++;
servo1.write(0); // ставим угол поворота под 90
delay(500); // ждем 1 секунду
servo1.write(180); // ставим угол поворота под 90
k++;
}
} else{ digitalWrite(led1, LOW);}
Serial.print("Влажность: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Температура: ");
Serial.print(t);
Serial.println(" *C "); //Вывод показателей на экран
}