Датчик наклона KY-017 (ртутный)

Узнайте всё о датчике наклона KY-017: спецификации, распиновка, схемы подключения, документация и примеры кода для ESP32, Arduino, Raspberry

Датчики движения Digital

Обзор

KY-017 — это модуль датчика наклона с ртутным выключателем, который обнаруживает изменения ориентации. При наклоне за определённый угол внутренний ртутный выключатель замыкается, отправляя цифровой сигнал. Он подходит для проектов, требующих простого обнаружения наклона или движения.

KY-017 — цифровой модуль датчика наклона с ртутным выключателем. При наклоне за пороговый угол контакт замыкается и на выходе появляется LOW-сигнал. Простой бинарный сенсор для систем антикражной защиты, датчиков положения и аварийных отключений.

Датчик KY-017
Быстрая навигация
Основные разделы статьи
Примеры кода
Популярные платформы

О датчике наклона KY-017

KY-017 Mercury Tilt Switch Module — это датчик, который обнаруживает наклон или отклонение. Он содержит ртутный выключатель, который замыкает цепь при наклоне до определённого угла, позволяя току протекать. Этот модуль работает в диапазоне напряжения 3.3В–5.5В и обеспечивает цифровой выходной сигнал. Он часто используется в приложениях, таких как обнаружение наклона, датчики движения и мониторинг ориентации.

🔹 Ключевые особенности:

  • Простой бинарный выход (LOW при наклоне)
  • Рабочее напряжение: 3.3В–5.5В
  • Малые габариты
  • Подходит для антикражных систем, датчиков положения
Где купить

Приобретите KY-017

Технические характеристики

Характеристики KY-017

Полные технические характеристики модуля датчика наклона KY-017.

Напряжение питания
3.3В - 5.5В
Тип выхода
Цифровой
Размеры
31 × 15 × 8 мм
Вес
2 г
Скачать полный даташит
Конфигурация пинов

Распиновка KY-017

KY-017 — это 3-пиновый модуль датчика наклона:

Визуальная диаграмма распиновки
Основное
Распиновка KY-017
Всего выводов
3
Типы
Питание + цифровой
Быстрые советы
  • Выход: цифровой (LOW при наклоне).
  • Ртутный выключатель — осторожно, содержит ртуть.
  • Порог срабатывания: обычно ~45° от вертикали.
Описание выводов
Название Тип Описание Примечания
1 - (GND) Питание Земля Общая земля
2 Middle (VCC) Питание Питание 3.3В–5.5В Любой из двух центральных пинов
3 S (Signal) Цифровой выход Сигнал наклона (LOW при активации) Требует внешний подтягивающий резистор (если нет на модуле)
Руководство по подключению

Подключение KY-017 к ESP32

Для интерфейса KY-017 с ESP32 используйте цифровой вход. Модуль уже содержит подтягивающий резистор, поэтому дополнительная настройка не требуется.

Схема подключения
Рекомендуемая (цифровой GPIO)
Подключение KY-017 к ESP32
Подключений
3
Статус
Все обязательны
Протокол
Digital
Подключения пинов
Вывод KY-017 Подключение Вывод ESP32 Описание
- (GND) обязательно GND Общая земля
Middle (VCC) обязательно 3.3V Питание (3.3В или 5В)
S (Signal) обязательно GPIO4 Цифровой сигнал (LOW при наклоне)
🔌 Выход: цифровой (LOW при активации) ⚡ Питание: 3.3В–5.5В 📏 Размер: 31×15×8 мм ⚖️ Вес: 2 г ⚠️ Содержит ртуть — обращаться осторожно
Помощь и поддержка

Устранение неполадок KY-017

Распространённые проблемы и решения, которые помогут запустить датчик.

Датчик всегда показывает HIGH
Сигнал не меняется при наклоне

Проблема: цифровой вход постоянно HIGH, даже при наклоне.

Возможные причины: отсутствует подтягивающий резистор (если модуль без него), неисправность ртутного выключателя, неправильная логика полярности.

Решение: проверьте мультиметром целостность ртутного контакта при наклоне, подключите внешний подтягивающий резистор 10кОм между сигнальным выводом и VCC, убедитесь в правильности кода (LOW = активация).

Ложные срабатывания
Датчик срабатывает без явного наклона

Проблема: модуль даёт сигнал при малейшей вибрации или без причины.

Решение: закрепите модуль жёстко, чтобы избежать микродвижений. В коде добавьте debounce (игнорировать изменения в течение 50–200 мс). Проверьте, что порог срабатывания соответствует углу наклона вашего применения.

Нет реакции на изменение угла
Датчик не срабатывает при наклоне

Возможные причины: порог наклона слишком мал, датчик установлен близко к вертикали, или ртутный выключатель залипает.

Решение: увеличьте угол наклона до рекомендаций производителя (~45°), проверьте механическую свободу ртутного переключателя, протестируйте мультиметром (сопротивление должно меняться при наклоне).

Советы по отладке

Serial монитор
Логирование состояния датчика
Добавьте в код отладочный вывод значения digitalRead() в Serial Monitor, чтобы видеть изменения состояния датчика в реальном времени.
Проверка мультиметром
Замкнутость контактов ртутного переключателя
Подайте напряжение 3.3В на VCC и GND, затем проверьте сопротивление между сигнальным выводом и GND. При наклоне сопротивление должно упасть до близкого к нулю (замыкание). При вертикальном положении — разомкнуто.
Примеры кода

Примеры программирования KY-017

Готовые к использованию примеры кода для различных платформ и фреймворков

Пример для Arduino

Совместим с Arduino IDE и платами ESP32

C++
int tiltPin = 10;     // Датчик наклона на цифровом пине 10
int ledPin = 13;      // Светодиод на пине 13
int sensorValue = 0;

void setup() {
    pinMode(tiltPin, INPUT);           // Вход (уже есть подтяжка на модуле)
    pinMode(ledPin, OUTPUT);           // Выход для светодиода
    Serial.begin(9600);
    Serial.println("Тест датчика наклона KY-017");
}

void loop() {
    sensorValue = digitalRead(tiltPin);
    if (sensorValue == LOW) {          // LOW = наклон обнаружен
        digitalWrite(ledPin, HIGH);
        Serial.println("Наклон обнаружен");
    } else {
        digitalWrite(ledPin, LOW);
    }
    delay(1000);                       // Проверка каждую секунду
}

Этот Arduino-скетч использует датчик наклона KY-017 на цифровом пине 10 и встроенный светодиод на пине 13. При наклоне датчика (выход становится LOW) светодиод зажигается и выводится сообщение в Serial Monitor. Проверка осуществляется каждую секунду.

Пример для ESP-IDF

Официальный фреймворк Espressif для разработки IoT

C++
#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"

#define TILT_SENSOR_PIN GPIO_NUM_4   // Пин датчика наклона
#define LED_PIN GPIO_NUM_2           // Встроенный светодиод ESP32

void app_main(void) {
    // Конфигурация пинов
    gpio_config_t io_conf = {
        .pin_bit_mask = (1ULL << TILT_SENSOR_PIN) | (1ULL << LED_PIN),
        .mode = GPIO_MODE_INPUT_OUTPUT,
        .pull_up_en = GPIO_PULLUP_ENABLE,       // Подтяжка к VCC
        .pull_down_en = GPIO_PULLDOWN_DISABLE,
        .intr_type = GPIO_INTR_DISABLE
    };
    gpio_config(&io_conf);

    printf("Тест датчика наклона KY-017\n");

    while (1) {
        int sensor_value = gpio_get_level(TILT_SENSOR_PIN);
        if (sensor_value == 0) {                 // LOW = наклон
            gpio_set_level(LED_PIN, 1);
            printf("Наклон обнаружен\n");
        } else {
            gpio_set_level(LED_PIN, 0);
        }
        vTaskDelay(pdMS_TO_TICKS(1000));         // Задержка 1 с
    }
}

Этот пример ESP-IDF настраивает GPIO4 как цифровой вход с подтяжкой к питанию для датчика KY-017, а GPIO2 — как выход для светодиода. При наклоне (выход датчика LOW) светодиод зажигается и выводится сообщение в консоль. Проверка происходит каждую секунду.

Пример для ESPHome

Конфигурация ESPHome для Home Assistant

YAML
binary_sensor:
  - platform: gpio
    pin:
      number: GPIO4
      mode: INPUT_PULLUP
    name: "KY-017 Tilt Sensor"
    device_class: vibration
    filters:
      - delayed_on: 50ms
      - delayed_off: 50ms
    on_press:
      - then:
          - lambda: |-'
              ESP_LOGD("sensor", "Tilt detected!");

ESPHome конфигурация для KY-017 на GPIO4 с использованием встроенной подтяжки INPUT_PULLUP. Датчик объявлен как бинарный сенсор класса vibration. Фильтры задержки 50 мс предотвращают ложные срабатывания. При наклоне в логах появляется сообщение «Tilt detected!».

Пример для PlatformIO

Профессиональная среда разработки

C++

platformio.ini

[env:esp32]
platform = espressif32
board = esp32dev
framework = arduino
monitor_speed = 115200
lib_deps =
    arduino-libraries/Wire

main.cpp

#define TILT_SENSOR_PIN 4   // Пин датчика наклона
#define LED_PIN 2           // Встроенный светодиод

void setup() {
    Serial.begin(115200);
    pinMode(TILT_SENSOR_PIN, INPUT_PULLUP);  // Подтяжка к VCC
    pinMode(LED_PIN, OUTPUT);
    Serial.println("Тест датчика наклона KY-017");
}

void loop() {
    if (digitalRead(TILT_SENSOR_PIN) == LOW) {
        Serial.println("Наклон обнаружен");
        digitalWrite(LED_PIN, HIGH);
    } else {
        digitalWrite(LED_PIN, LOW);
    }
    delay(1000);
}

PlatformIO проект для ESP32 на фреймворке Arduino. Датчик подключён к GPIO4 с внутренней подтяжкой, светодиод — на GPIO2. При наклоне (LOW) выводится сообщение и зажигается светодиод. Проверка каждую секунду.

Пример для MicroPython

Python для микроконтроллеров

Python
from machine import Pin
import time

tilt_sensor = Pin(4, Pin.IN, Pin.PULL_UP)  # GPIO4 с подтяжкой
led = Pin(2, Pin.OUT)                     # Светодиод на GPIO2

while True:
    if tilt_sensor.value() == 0:          # LOW = наклон
        print("Наклон обнаружен")
        led.on()
    else:
        led.off()
    time.sleep(1)

Скрипт MicroPython для датчика KY-017 на GPIO4 (с внутренней подтяжкой) и светодиода на GPIO2. При наклоне (значение 0) выводится сообщение и включается светодиод. Интервал проверки — 1 секунда.

Итоги KY-017

Датчик наклона KY-017 Mercury Tilt Switch — простой и надёжный бинарный сенсор для обнаружения изменения ориентации. Подходит для антикражных систем, датчиков положения и аварийных отключений. Поддерживается на всех популярных платформах: Arduino, ESP-IDF, ESPHome, PlatformIO и MicroPython.

Рекомендации

Используйте стабильное питание 3.3В или 5В. Закрепите модуль жёстко, чтобы избежать ложных срабатываний от вибраций. Добавьте программный debounce (50–200 мс) для фильтрации дребезга контактов. Храните и обращайтесь осторожно — датчик содержит ртуть.

Безопасность прежде всего

Не разбирайте модуль и не повреждайте корпус — внутри находится элемент с ртутью. Утилизируйте отработанный датчик как опасные отходы. Не подвергайте модуль экстремальным температурам или ударам.

Готовы начать создавать?

Теперь, когда у вас есть вся необходимая информация, пора интегрировать KY-017 в проект на ESP32 и воплотить идеи в жизнь!