HC-SR04 и ASI Biont: интеграция ультразвукового датчика с AI-агентом для автоматизации контроля уровня и обнаружения препятствий

Введение

Ультразвуковой дальномер HC-SR04 — один из самых популярных и доступных датчиков для измерения расстояния. Он используется в проектах умного дома, робототехнике, системах контроля уровня жидкости и парковки. Но в одиночку датчик — это просто набор сырых данных. Для превращения показаний в автоматизированные сценарии (например, отправка уведомления при заполнении бака или включение реле при приближении объекта) требуется связующее звено — AI-агент.

ASI Biont — это AI-агент для промышленности и IoT, который подключается к любому оборудованию через Python-скрипты, MQTT, Modbus, COM-порт и другие протоколы. В этой статье мы разберём, как подключить HC-SR04 к AI-агенту ASI Biont с помощью платы Arduino (или ESP32), прочитать данные и настроить автоматические реакции — без необходимости писать сложный код вручную.

Почему именно HC-SR04 и AI-агент?

HC-SR04 работает на принципе эхолокации: посылает ультразвуковой импульс и замеряет время возврата отражённого сигнала. Расстояние вычисляется по формуле: distance = (time * speed_of_sound) / 2. Датчик прост, дёшев (около 2–5 долларов) и точен в диапазоне от 2 см до 4 метров.

Однако для практических задач — мониторинга уровня воды в резервуаре, контроля свободных мест на парковке, обнаружения препятствий на пути робота — нужно не просто получить дистанцию, а:
- сравнивать её с порогами,
- отправлять уведомления (Telegram, email),
- записывать историю измерений,
- управлять исполнительными устройствами (реле, сервоприводами).

AI-агент ASI Biont берёт на себя логику анализа и принятия решений. Вы просто подключаете датчик к микроконтроллеру (Arduino, ESP32), а AI через чат пишет код интеграции и настраивает триггеры.

Какой способ подключения используем?

Для интеграции HC-SR04 с ASI Biont мы выберем Hardware Bridge через COM-порт. Это оптимальный сценарий для датчика, подключённого к ПК через Arduino или USB-UART адаптер. ASI Biont работает в облаке, а bridge.py, запущенный на вашем компьютере, соединяется с ним через WebSocket и обеспечивает доступ к COM-порту. AI использует команду industrial_command с протоколом serial://, чтобы отправлять запросы и читать ответы.

Почему не MQTT или SSH? HC-SR04 — простой датчик, не имеющий собственного IP-стека. Для работы через MQTT потребуется ESP32 с Wi-Fi, что усложняет схему. Hardware Bridge подходит, если датчик подключён к ПК напрямую (через Arduino) — это надёжно, дёшево и не требует настройки сети.

Схема подключения HC-SR04 к Arduino

Для считывания данных с HC-SR04 мы используем Arduino Uno (или Nano). Схема подключения проста:

HC-SR04 Arduino
VCC 5V
GND GND
Trig D9
Echo D10

Кроме того, для управления реле или светодиодом можно добавить, например, светодиод на D13 через резистор 220 Ом.

Прошивка Arduino: отправка данных в COM-порт

Загрузите на Arduino следующий скетч. Он измеряет расстояние каждые 2 секунды и выводит результат в порт в формате DIST:45.2, где 45.2 — расстояние в сантиметрах.

#define TRIG_PIN 9
#define ECHO_PIN 10
#define LED_PIN 13

void setup() {
  Serial.begin(9600);
  pinMode(TRIG_PIN, OUTPUT);
  pinMode(ECHO_PIN, INPUT);
  pinMode(LED_PIN, OUTPUT);
}

void loop() {
  // Отправка импульса
  digitalWrite(TRIG_PIN, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIG_PIN, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG_PIN, LOW);

  // Измерение времени отклика
  long duration = pulseIn(ECHO_PIN, HIGH);
  float distance = duration * 0.034 / 2;

  // Вывод в порт
  Serial.print("DIST:");
  Serial.println(distance);

  // Визуальная индикация: если объект ближе 20 см — включаем LED
  if (distance < 20) {
    digitalWrite(LED_PIN, HIGH);
  } else {
    digitalWrite(LED_PIN, LOW);
  }

  delay(2000);
}

После загрузки откройте монитор порта (9600 бод) — вы увидите строки вида DIST:34.7.

Подключение ASI Biont через Hardware Bridge

Теперь настроим связь между AI-агентом и Arduino.

  1. Скачайте bridge.py из дашборда ASI Biont (раздел Devices → Create API Key → Скачать bridge).
  2. Установите зависимости (выполните в терминале):
    bash pip install pyserial requests websockets
  3. Запустите bridge, указав токен API и порт Arduino (например, COM3 на Windows или /dev/ttyUSB0 на Linux):
    bash python bridge.py --token=ВАШ_ТОКЕН --ports=COM3 --baud 9600

Bridge соединится с облаком ASI Biont через WebSocket. Теперь AI может отправлять команды на COM-порт.

Как AI получает данные: команда serial_write_and_read

В чате с AI-агентом вы пишете запрос, например:

«Подключись к Arduino на COM3, скорость 9600. Каждые 10 секунд читай строку с датчика HC-SR04 и если расстояние меньше 30 см — отправь мне уведомление в Telegram»

AI использует инструмент industrial_command с протоколом serial://. Внутри bridge выполняет атомарную операцию: записывает данные в порт и сразу читает ответ. Для HC-SR04 мы не отправляем команды (датчик сам шлёт данные), поэтому AI использует операцию чтения без записи.

Пример того, как AI обрабатывает задачу:

# Этот код выполняется в sandbox ASI Biont (execute_python)
import requests
import time

TELEGRAM_TOKEN = "YOUR_BOT_TOKEN"
CHAT_ID = "YOUR_CHAT_ID"

def send_telegram(message):
    url = f"https://api.telegram.org/bot{TELEGRAM_TOKEN}/sendMessage"
    requests.post(url, json={"chat_id": CHAT_ID, "text": message})

# AI вызывает industrial_command для чтения данных с порта
# (в реальности AI использует tool call, но для наглядности — псевдокод)
# response = industrial_command(protocol='serial://', command='serial_write_and_read', data='')
# data = response['data']  # строка вида "DIST:45.2"

# Допустим, AI получил строку
data = "DIST:12.3"
try:
    dist = float(data.split(':')[1])
    if dist < 30:
        send_telegram(f"⚠️ Внимание! Объект на расстоянии {dist} см!")
except:
    pass

Обратите внимание: код с while True недопустим из-за таймаута sandbox (30 секунд). AI использует industrial_command каждый раз по вашему запросу или по расписанию (в будущих версиях).

Сценарий 1: Контроль уровня жидкости в резервуаре

Задача: Датчик HC-SR04 установлен над открытым баком с водой. Когда уровень воды падает ниже 50 см (расстояние до поверхности > 50 см), нужно включить насос. Когда бак заполнен (расстояние < 15 см) — выключить насос и отправить уведомление.

Реализация:
- Подключаем реле к Arduino (например, на D12).
- Прошивка Arduino выводит расстояние, а AI анализирует его и через industrial_command включает/выключает реле.

Пример команды AI для включения реле:

industrial_command(protocol='serial://', command='serial_write_and_read', data='RELAY_ON\n')

На стороне Arduino нужно добавить обработку команд:

if (Serial.available()) {
  String cmd = Serial.readStringUntil('\n');
  if (cmd == "RELAY_ON") digitalWrite(RELAY_PIN, HIGH);
  else if (cmd == "RELAY_OFF") digitalWrite(RELAY_PIN, LOW);
}

Сценарий 2: Система помощи при парковке

Задача: Два датчика HC-SR04 установлены на заднем бампере автомобиля. При расстоянии до препятствия менее 1 м AI отправляет голосовое уведомление на смартфон (через Telegram) и зажигает светодиоды разного цвета в зависимости от дистанции.

Реализация:
- Два Arduino (или один с двумя датчиками) подключены к ноутбуку в автомобиле.
- AI читает данные с обоих портов (можно запустить два bridge с разными портами).
- При опасном сближении AI вызывает Telegram API.

Пример логики (выполняется AI в sandbox):

left_dist = 45.0  # получено с первого датчика
right_dist = 120.0  # со второго

if left_dist < 50 or right_dist < 50:
    msg = f"⚠️ Опасность! Левый: {left_dist} см, Правый: {right_dist} см"
    requests.post(f"https://api.telegram.org/bot{TOKEN}/sendMessage",
                  json={"chat_id": CHAT_ID, "text": msg})

Сценарий 3: Умный склад — мониторинг заполненности стеллажей

Задача: На складе 10 стеллажей, на каждом установлен HC-SR04, направленный вниз. Датчик измеряет расстояние до верхней коробки. Если расстояние больше заданного (стеллаж пуст или загружен не полностью) — AI отправляет отчёт в Excel и уведомление менеджеру.

Реализация:
- 10 Arduino (или ESP32 с мультиплексором) подключены к одному ПК через USB-хаб.
- AI читает данные со всех портов, записывает в базу SQLite (через sqlite3 в sandbox) и генерирует отчёт.

Пример кода для sandbox (упрощённо):

import sqlite3
from datetime import datetime

conn = sqlite3.connect('warehouse.db')
c = conn.cursor()
c.execute('''CREATE TABLE IF NOT EXISTS distances
             (shelf_id INTEGER, distance REAL, timestamp TEXT)''')

# Допустим, AI получил данные для стеллажа 1
dist = 120.5
c.execute("INSERT INTO distances VALUES (?, ?, ?)", (1, dist, datetime.now().isoformat()))
conn.commit()
conn.close()

Почему это выгодно?

  • Не нужно писать код самому. Вы просто описываете задачу в чате на естественном языке: «Подключи датчик HC-SR04 на COM3 и отправляй уведомление в Telegram, если расстояние < 20 см». AI сам генерирует скрипт, подключается к bridge и настраивает логику.
  • Гибкость. Если завтра вы захотите добавить второй датчик или сменить условие — просто пишете новое сообщение в чат.
  • Экономия времени. Интеграция занимает минуты, а не часы на отладку.

Заключение

HC-SR04 — простой, но мощный датчик, который в связке с AI-агентом ASI Biont превращается в интеллектуальную систему мониторинга и управления. Hardware Bridge обеспечивает надёжное соединение через COM-порт, а AI берёт на себя анализ данных, принятие решений и интеграцию с внешними сервисами (Telegram, базы данных, Excel).

Попробуйте интеграцию уже сегодня: зайдите на asibiont.com, скачайте bridge из дашборда, подключите Arduino с HC-SR04 и напишите в чат: «Считай расстояние с датчика и включи светодиод, если объект ближе 30 см». AI сделает всё остальное.

Полезные ссылки:
- Документация по Hardware Bridge: asibiont.com/docs/bridge
- Спецификация HC-SR04: datasheet
- Библиотека NewPing для Arduino: GitHub

← Все статьи

Комментарии

Читайте также

Автоматизация SEO-аналитики: как подключить Яндекс.Вебмастер к AI-агенту ASI Biont

20 июля 2026

Почему курс «SEC и инсайдерская торговля: регулирование и соблюдение требований» является обязательным для специалистов по комплаенсу в 2026 году

20 июля 2026

CISA — Certified Information Systems Auditor (ISACA): Как AI-обучение на asibiont.com упрощает подготовку к сертификации

20 июля 2026

Почему стратегия открытых весов Китая побеждает в гонке ИИ

20 июля 2026

TypeScript — статическая типизация в JavaScript: как декораторы упрощают код и почему AI-обучение на Asibiont ускоряет прогресс

20 июля 2026

Углы так не выглядят: что такое Screen Space Ambient Occlusion (SSAO) и почему это важно для vibe coding

20 июля 2026

Raspberry Pi Zero 2 W + ASI Biont: умный дом без программирования — управляйте GPIO голосом и через Telegram

20 июля 2026

ESP32 и ASI Biont: AI-управление теплицей через MQTT — потери урожая снижены на 25%

20 июля 2026

Launch HN: Bloomy (YC S26) – Как AI и Vibe Coding меняют K-12 образование в 2026 году

20 июля 2026