``
#include <Wire.h> // библиотека для протокола I2C
#include <LiquidCrystal_I2C.h> // подключаем библиотеку для LCD 1602
#include <DHT.h> // подключаем библиотеку для датчика
#include <Servo.h>
Servo servo;
int ky010 = 8;
int val;
LiquidCrystal_I2C LCD(0x3F,16,2); // присваиваем имя LCD для дисплея
DHT dht(2, DHT11); // сообщаем на каком порту будет датчик
byte simvol[8] = {
0b11100,
0b10100,
0b11100,
0b00000,
0b00000,
0b00000,
0b00000,
0b00000,
};
int lowerThreshold = 420;
int upperThreshold = 520;
int digitalPin = 3; // KY-026 digital pin
int analogPin = A1; // KY-026 analog pin
int digitalVal; // digital readings
int analogVal; //analog readings
// Выводы, подключенные к датчику
#define sensorPower 9
#define sensorPin A0
// Переменная для хранения значения уровня воды
int val = 0;
// Объявляем выводы, к которым подключены светодиоды
int redLED = 13;
int yellowLED = 12;
int greenLED = 11;
int led = 8;
void setup() {
pinMode(led, OUTPUT);
pinMode(digitalPin, INPUT);
LCD.init(); // инициализация LCD дисплея
LCD.backlight(); // включение подсветки дисплея
dht.begin(); // запускаем датчик DHT11
Serial.begin(9600);
pinMode(sensorPower, OUTPUT);
digitalWrite(sensorPower, LOW);
// Настроить выводы светодиодов на выход
pinMode(redLED, OUTPUT);
pinMode(yellowLED, OUTPUT);
pinMode(greenLED, OUTPUT);
// Изначально выключить все светодиоды
digitalWrite(redLED, LOW);
digitalWrite(yellowLED, LOW);
digitalWrite(greenLED, LOW);
pinMode(ky010, INPUT);
servo.attach(7);
}
void loop() {
// считываем температуру (t) и влажность (h)
float h = dht.readHumidity();
float t = dht.readTemperature();
// выводим температуру (t) и влажность (h) на жк дисплей
LCD.setCursor(0,0);
LCD.print("Hum:");
LCD.print(h);
LCD.setCursor(10,0);
LCD.print("%");
LCD.createChar(1, simvol);
LCD.setCursor(10,1); // ставим курсор на 1 символ первой строки
LCD.print(char(1)); // печатаем символ на первой строке
LCD.setCursor(0,1);
LCD.print("Temp:");
LCD.print(t);
delay(100);
int level = readSensor();
if (level == 0)
{
Serial.println("Water Level: Empty");
digitalWrite(redLED, LOW);
digitalWrite(yellowLED, LOW);
digitalWrite(greenLED, LOW);
}
else if (level > 0 && level <= lowerThreshold)
{
Serial.println("Water Level: Low");
digitalWrite(redLED, HIGH);
digitalWrite(yellowLED, LOW);
digitalWrite(greenLED, LOW);
}
else if (level > lowerThreshold && level <= upperThreshold)
{
Serial.println("Water Level: Medium");
digitalWrite(redLED, LOW);
digitalWrite(yellowLED, HIGH);
digitalWrite(greenLED, LOW);
}
else if (level > upperThreshold)
{
Serial.println("Water Level: High");
digitalWrite(redLED, LOW);
digitalWrite(yellowLED, LOW);
digitalWrite(greenLED, HIGH);
}
delay(1000);
digitalWrite(led, HIGH);
}
int readSensor() // функция к сигнализации
{
digitalWrite(sensorPower, HIGH);
delay(10);
val = analogRead(sensorPin);
digitalWrite(sensorPower, LOW);
return val;
digitalVal = digitalRead(digitalPin);
if(digitalVal == HIGH) // если сигнал огня
{
digitalWrite(led, HIGH); // включить лэд
}
else
{
digitalWrite(led, LOW); // выключить лэд
}
// читать аналог
analogVal = analogRead(analogPin);
Serial.println(analogVal);
val = digitalRead(ky010);
if (val == HIGH){
servo.write(10);
delay(1000);
}
else {
servo.write (100);
delay(1000);
}
delay(100);
на 33 строке почему то выдает ошибку
хотя до добавления нового скетча он работал