#include <Keypad.h>
#include "DHTesp.h"
#include <ESP32Servo.h>
int servoPin = 32;
Servo myservo;
const int DHT_PIN = 22;
DHTesp dht;
// Настройка клавиатуры
const byte ROWS = 4; // 4 строки
const byte COLS = 4; // 4 столбца
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = {19, 21, 17, 16};
byte colPins[COLS] = {15, 2, 0, 4};
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
int lux;
int distance;
int t, h;
#define light 34
#define ECHO_PIN 14
#define TRIG_PIN 12
#define mq2 35
#define buzz 23
#define pir 13
// Пины для RGB светодиода
#define R 27
#define G 26
#define B 25
void setup(){
Serial.begin(115200);
myservo.attach(servoPin, 500, 2400);
dht.setup(DHT_PIN, DHTesp::DHT22);
pinMode(light, INPUT);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(mq2, INPUT);
pinMode(pir, INPUT);
pinMode(buzz, OUTPUT);
pinMode(R, OUTPUT);
pinMode(G, OUTPUT);
pinMode(B, OUTPUT);
// Изначально выключаем светодиод
analogWrite(R, 0);
analogWrite(G, 0);
analogWrite(B, 0);
analogWrite(buzz, 0);
myservo.write(180);
}
int readDistanceCM() {
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
int duration = pulseIn(ECHO_PIN, HIGH);
return duration * 0.034 / 2;
}
// Функция RGB
void RGB(int red, int green, int blue) {
red = constrain(red, 0, 255);
green = constrain(green, 0, 255);
blue = constrain(blue, 0, 255);
analogWrite(R, red); // Красный канал
analogWrite(G, green); // Зеленый канал
analogWrite(B, blue); // Синий канал
Serial.print("RGB: ");
Serial.print(red);
Serial.print(", ");
Serial.print(green);
Serial.print(", ");
Serial.println(blue);
}
void loop(){
distance = readDistanceCM();
t = dht.getTemperature();
h = dht.getHumidity();
char key = keypad.getKey();
if (key){
Serial.println(String(key));
}
Serial.println(distance);
Serial.println(t);
Serial.println(h);
delay(100);
}
Датчик расстояния
Клавиатура
Датчик освещённости
Сервопривод
Датчик газа
Датчик движения
Буззер
Светодиод