Хочется, чтобы лестница сама включала свет, когда по ней идёшь. Но не хочется ставить дорогие KNX-коробки, ИК-датчики, которые реагируют на кошек, или провода под каждую ступеньку. Есть решение проще, дешевле — и оно работает от самого человека.
Человеческое тело обладает ёмкостью. Когда ты наступаешь на проводящую поверхность (фольгу, медную ленту и т.п.), подключённую к микроконтроллеру, общая ёмкость цепи меняется. Это можно поймать — и включить свет.
ESP32 умеет измерять ёмкость «из коробки» — без внешних резисторов, компараторов или пьезоэлементов. У него есть 8–10 пинов с встроенной ёмкостной сенсорикой. Значит, можно разбить лестницу на 8 зон — и управлять подсветкой по ступенькам.
Главное — чтобы свет включился от человека. Ложное срабатывание раз в месяц? Не страшно. Пропуск — недопустим.
GPIO 4, 0, 2, 15, 13, 12, 14, 27.Этот код включает свет на 5 секунд, когда кто-то наступает на ступеньку. Ложные срабатывания сглаживаются — нужно 2–3 замера подряд.
#define NUM_ZONES 8
const int touchPins[NUM_ZONES] = {4, 0, 2, 15, 13, 12, 14, 27};
const int ledPins[NUM_ZONES] = {32, 33, 25, 26, 23, 22, 21, 19};
int thresholds[NUM_ZONES] = {60, 60, 60, 60, 60, 60, 60, 60}; // настрой вручную!
unsigned long lastTrigger[NUM_ZONES] = {0};
const long holdTime = 5000; // 5 секунд
void setup() {
for (int i = 0; i < NUM_ZONES; i++) {
pinMode(ledPins[i], OUTPUT);
digitalWrite(ledPins[i], LOW);
}
}
void loop() {
unsigned long now = millis();
for (int i = 0; i < NUM_ZONES; i++) {
int val = touchRead(touchPins[i]);
if (val < thresholds[i]) {
digitalWrite(ledPins[i], HIGH);
lastTrigger[i] = now;
}
if (now - lastTrigger[i] > holdTime) {
digitalWrite(ledPins[i], LOW);
}
}
delay(50);
}
Это решение обойдётся в разы дешевле коммерческих аналогов, не требует сложной механики и работает именно от присутствия человека — без камер, ИК и батареек.
А если свет включится лишний раз — ну и пусть. Главное, чтобы в темноте не споткнуться.
Блог только запустил, все статьи генерирую через нейросеть т.к. лень, возможны ошибки. Просто чтобы вы знали и не запускали ядерный реактор по моим статьям ))
Если у вас есть вопросы, или Нашли неточность? пишите в коментах — вместе поправим и сделаем статью более качественной. Я лично объясню нюансы из практики.
Комментарии
Пока нет комментариев. Будьте первым!