// D13 // резер вреле света
// D12 // резерв сервопривод/реле вентиляции
// Бипер - D10
// cервопривод вентиляции - D9 - https://роботехника18.рф/%d1%81%d0%b5%d1%80%d0%b2%d0%be%d0%bf%d1%80%d0%b8%d0%b2%d0%be%d0%b4-%d0%b0%d1%80%d0%b4%d1%83%d0%b8%d0%bd%d0%be/
// реле ИК обогревателя - D8
// реле/драйвер мотора вьюшки вперед - D7
// реле/драйвер мотора вьюшки назад - D6
// реле термостата включить - D5
// реле крана на воду включить - D4
// датчик температуры воды/трубы 2 штуки DS18B20 - D3 - https://amperka.ru/product/sealed-temperature-sensor-ds18b20 - https://aliexpress.ru/item/4000143479592.html?sku_id=10000003349087237&spm=.search_results.12.4155678bDp99Sx
// датчик температуры окружающей среды dht - D2
// wifi ESP8266- D0 - D1 - https://роботехника18.рф/wifi-esp-01/
// датчик угарного газа - A0 - https://роботехника18.рф/mq2-%d0%b0%d1%80%d0%b4%d1%83%d0%b8%d0%bd%d0%be/
// датчик уровня воды - A1 - https://роботехника18.рф/%d0%b4%d0%b0%d1%82%d1%87%d0%b8%d0%ba-%d0%b2%d0%bb%d0%b0%d0%b6%d0%bd%d0%be%d1%81%d1%82%d0%b8-%d0%bf%d0%be%d1%87%d0%b2%d1%8b/ - https://роботехника18.рф/%d0%b4%d0%b0%d1%82%d1%87%d0%b8%d0%ba-%d0%b0%d1%80%d0%b4%d1%83%d0%b8%d0%bd%d0%be-%d1%81%d0%b2%d0%be%d0%b8%d0%bc%d0%b8-%d1%80%d1%83%d0%ba%d0%b0%d0%bc%d0%b8/
// джойстик для меню и управлению всем - A2, A3, D11
// lcd - i2c - A4, A5
// датчик звука - A0
#include <Wire.h> // подключаем библиотеку для протокола I2C
#include <LiquidCrystal_I2C.h> // подключаем библиотеку для LCD 1602
#include <DHT.h> // подключаем библиотеку для датчика наружного
#include <OneWire.h> // подключаем библиотеку для 1-wire датчиков
#include <DallasTemperature.h> // подключаем библиотеку для датчика температуры 1-wire
#include <Servo.h> // подключаем библиотеку для работы с сервоприводом
LiquidCrystal_I2C LCD(0x27,16,2); // присваиваем имя LCD для дисплея
DHT dht(2, DHT22); // сообщаем на каком порту будет датчик D2
OneWire oneWire(3); // порт подключения датчика ds18b20 D3
DallasTemperature ds(&oneWire);
byte countTemperature; // количество подключенных датчиков ds18b20
Servo servoAir; // объявляем переменную для сервопривода
#define pinX A2 // ось X джойстика
#define pinY A3 // ось Y джойстика
#define swPin 10 // кнопка джойстика D10
void setup() {
LCD.init(); // инициализация LCD дисплея
LCD.backlight(); // включение подсветки дисплея
dht.begin(); // запускаем датчик DHT11
pinMode(7, OUTPUT); // объявляем пин 7 как выход вьюшки вперед
pinMode(6, OUTPUT); // объявляем пин 6 как выход вьюшки назад
pinMode(5, OUTPUT); // объявляем пин 5 как выход термостат включить
pinMode(4, OUTPUT); // объявляем пин 4 как выход крана воды
ds.begin(); // инициализация датчика ds18b20
countTemperature = ds.getDeviceCount(); // узнаем количество датчиков ds18b20
servoAir.attach(8); // привязываем сервопривод к выводу D8
// конфигурация джойстика
pinMode(pinX, INPUT);
pinMode(pinY, INPUT);
pinMode(swPin, INPUT);
digitalWrite(swPin, HIGH);
}
void loop() {
for (byte i = 0; i < countTemperature; i++){ // сбор информации с ds18b20
LCD.setCursor(0,0);
LCD.print("Count: ");
LCD.print(i);
ds.requestTemperatures(); // считываем температуру с датчика
float c = ds.getTempCByIndex(i);
LCD.setCursor(0,1);
LCD.print("TempWater : ");
LCD.print(c);
delay(2000); // ждем 1 секунду
LCD.clear();
}
boolean isPushButtom = digitalRead(swPin); // считываем состояние кнопки
int xJoystick = analogRead(pinX); // считываем значение оси Х
int yJoystick = analogRead(pinY); // считываем значение оси Y
LCD.clear();
LCD.setCursor(0,0);
LCD.print(xJoystick);
LCD.setCursor(0,1);
LCD.print(yJoystick);
delay(2000); // ждем 2 секунды
servoAir.write(0); // ставим угол поворота под 0
digitalWrite(4, HIGH); // замыкаем реле
delay(1000); // ждем 1 секунду
digitalWrite(4, LOW); // размыкаем реле
servoAir.write(90); // ставим угол поворота под 90
// считываем температуру (t) и влажность (h)
float h = dht.readHumidity();
float t = dht.readTemperature();
// выводим температуру (t) и влажность (h) на жк дисплей
LCD.setCursor(0,0);
LCD.print("Humidity: ");
LCD.print(h);
LCD.setCursor(0,1);
LCD.print("Temp: ");
LCD.print(t);
delay(1000); // ждем 1 секунду
LCD.clear();
}Loading
ds18b20
ds18b20
Loading
ds18b20
ds18b20