Ультразвуковой дальномер HC-SR04 — один из самых популярных датчиков в DIY-проектах и промышленной автоматизации. Он измеряет расстояние от 2 см до 4 метров с точностью до 3 мм, используя принцип эхолокации. Но его истинная ценность раскрывается при интеграции с AI-агентом ASI Biont: вы получаете не просто показания, а интеллектуальную систему, которая анализирует данные, принимает решения и уведомляет вас о событиях. В этой статье я покажу, как подключить HC-SR04 к ASI Biont через микроконтроллер Arduino Uno, используя Hardware Bridge, и приведу реальные сценарии: контроль парковки, измерение уровня жидкости и умное освещение.
Как ASI Biont подключается к HC-SR04?
ASI Biont не подключается к датчику напрямую — он работает через микроконтроллер (Arduino, ESP32), который управляет HC-SR04. Самый надёжный способ интеграции — через Hardware Bridge. Это небольшое приложение bridge.py, которое пользователь запускает на своём ПК (Windows, Linux или macOS). Bridge подключается к облаку ASI Biont через WebSocket (единственный канал связи) и открывает доступ к COM-портам локального компьютера.
Процесс выглядит так:
1. Вы скачиваете bridge.py из дашборда ASI Biont (Devices → Create API Key → Скачать bridge).
2. Запускаете bridge с указанием токена API и порта, к которому подключён Arduino: python bridge.py --token=ВАШ_ТОКЕН --ports=COM3 --baud 115200.
3. В чате с AI-агентом описываете задачу: «Подключись к Arduino на COM3, считай расстояние с HC-SR04 и пришли данные каждые 10 секунд».
4. AI использует industrial_command с протоколом serial:// для отправки команд на bridge, который через pyserial читает/пишет в COM-порт.
Почему именно этот способ? HC-SR04 — аналогово-цифровой датчик, который требует точной временной синхронизации (10 мкс импульс на Trig, замер Echo). Arduino справляется с этим на аппаратном уровне, а bridge обеспечивает надёжный канал между AI в облаке и микроконтроллером.
Схема подключения HC-SR04 к Arduino
Для начала соберите простую схему:
- VCC → 5V на Arduino
- GND → GND
- Trig → цифровой пин 9
- Echo → цифровой пин 10
Рекомендую использовать макетную плату и провода «папа-мама». Никаких дополнительных компонентов не нужно — HC-SR04 работает от 5V и потребляет около 15 мА.
Прошивка Arduino: скетч для работы с bridge
Загрузите на Arduino следующий скетч. Он слушает команды от AI через последовательный порт и возвращает измеренное расстояние в сантиметрах.
#define TRIG_PIN 9
#define ECHO_PIN 10
void setup() {
Serial.begin(115200);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
}
void loop() {
if (Serial.available() > 0) {
String cmd = Serial.readStringUntil('\n');
cmd.trim();
if (cmd == "DISTANCE") {
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
long duration = pulseIn(ECHO_PIN, HIGH, 30000); // таймаут 30 мс
int distance = duration * 0.034 / 2;
if (distance == 0) {
Serial.println("OUT_OF_RANGE");
} else {
Serial.println(distance);
}
} else if (cmd == "HELP") {
Serial.println("DISTANCE, LED_ON, LED_OFF");
} else if (cmd == "LED_ON") {
digitalWrite(LED_BUILTIN, HIGH);
Serial.println("OK");
} else if (cmd == "LED_OFF") {
digitalWrite(LED_BUILTIN, LOW);
Serial.println("OK");
}
}
}
Скетч реализует HELP-протокол: при отправке HELP Arduino отвечает списком поддерживаемых команд. Это обязательное условие для работы с bridge — AI использует HELP для проверки связи.
Настройка bridge и подключение к ASI Biont
- Установите зависимости:
pip install pyserial requests websockets. - Скачайте
bridge.pyиз дашборда ASI Biont. - Запустите:
python bridge.py --token=ваш_токен --ports=COM3 --baud 115200. - Если на Linux — порт может быть
/dev/ttyUSB0. - Если на macOS —
/dev/cu.usbmodem14101.
После запуска bridge подключится к облаку ASI Biont и будет готов принимать команды. В чате вы можете написать:
«Отправь команду DISTANCE на Arduino через bridge и выведи результат»
AI выполнит industrial_command с протоколом serial://, команда DISTANCE уйдёт на bridge, bridge запишет её в COM-порт и прочитает ответ. Вы получите расстояние в сантиметрах.
Реальные сценарии использования
1. Умный контроль парковки
Проблема: Вы хотите знать, занято ли парковочное место перед домом. HC-SR04 устанавливается над местом, измеряет расстояние до автомобиля. Если расстояние меньше 50 см — место занято.
Решение: AI-агент ASI Biont каждые 30 секунд опрашивает датчик через bridge, анализирует данные и отправляет уведомление в Telegram.
Пример кода, который AI генерирует и выполняет в sandbox:
import requests
import time
# Функция для отправки команды через bridge (AI использует industrial_command, но для примера покажу эквивалент)
def get_distance():
# В реальности AI вызывает industrial_command, а не пишет этот код
# Здесь показана логика: bridge возвращает расстояние
return 45 # пример
last_state = None
while True:
distance = get_distance()
state = "occupied" if distance < 50 else "free"
if state != last_state:
requests.post(
"https://api.telegram.org/botТОКЕН/sendMessage",
json={"chat_id": "ID", "text": f"Парковка {state}! Расстояние: {distance} см"}
)
last_state = state
time.sleep(30)
Результат: Вы получаете уведомления в Telegram при изменении статуса парковки. Никакого ручного кодирования — AI написал скрипт за секунды.
2. Измерение уровня жидкости в резервуаре
Проблема: Нужно контролировать уровень воды в баке для полива. HC-SR04 устанавливается над баком, измеряет расстояние до поверхности воды.
Решение: AI каждые 5 минут запрашивает расстояние, пересчитывает в процент заполнения (зная высоту бака) и логирует в CSV-файл.
Команда в чате:
«Подключись к Arduino на COM3, каждые 5 минут запрашивай DISTANCE, переводи в проценты заполнения бака высотой 120 см и сохраняй в CSV с меткой времени»
AI генерирует код с использованием pyserial (через bridge) и csv:
import csv
import time
from datetime import datetime
# AI использует industrial_command для получения расстояния
def get_distance():
# Возвращает расстояние в см от bridge
return 30 # пример
TANK_HEIGHT = 120
with open('level_log.csv', 'a', newline='') as f:
writer = csv.writer(f)
while True:
distance = get_distance()
level = max(0, (TANK_HEIGHT - distance) / TANK_HEIGHT * 100)
writer.writerow([datetime.now(), distance, round(level, 1)])
time.sleep(300)
Результат: Автоматический мониторинг уровня жидкости с историей. AI сам пишет код, вы только описываете задачу.
3. Умное освещение: свет включается при приближении
Проблема: В тёмной кладовке свет должен включаться, когда кто-то подходит ближе 1 метра, и выключаться через 30 секунд после ухода.
Решение: AI управляет реле через Arduino (пин 13 со светодиодом) и HC-SR04.
Команда в чате:
«Каждые 2 секунды проверяй расстояние с HC-SR04. Если меньше 100 см — включи LED на Arduino командой LED_ON. Если больше 100 см — подожди 30 секунд и выключи LED командой LED_OFF»
AI генерирует логику:
import time
# Функции для отправки команд через bridge (AI использует industrial_command)
def send_command(cmd):
# Отправляет команду на Arduino
pass
def read_distance():
# Возвращает расстояние
return 50 # пример
while True:
distance = read_distance()
if distance < 100:
send_command("LED_ON")
else:
time.sleep(30)
send_command("LED_OFF")
time.sleep(2)
Результат: Автоматическое освещение без датчиков движения — AI анализирует расстояние и принимает решение.
Почему это выгодно?
- Нет ручного кодирования. Вы описываете задачу на естественном языке — AI пишет интеграционный код за секунды.
- Гибкость. Подключите HC-SR04 к любому микроконтроллеру (Arduino, ESP32, STM32) — AI адаптирует протокол.
- Мгновенная автоматизация. Не нужно ждать, пока разработчики добавят поддержку — подключайте что угодно прямо сейчас через execute_python или Hardware Bridge.
- Единый интерфейс. Всё управление через чат с AI-агентом: никаких панелей, кнопок и сложных настроек.
Как начать?
- Скачайте
bridge.pyиз дашборда ASI Biont. - Подключите HC-SR04 к Arduino по схеме выше.
- Загрузите скетч и запустите bridge.
- Напишите в чате: «Подключись к Arduino на COM3, каждые 10 секунд измеряй расстояние и отправляй в Telegram, если меньше 50 см».
- AI сделает всё остальное.
Попробуйте интеграцию уже сегодня на asibiont.com — превратите обычный датчик в умное устройство с AI за 5 минут.
Комментарии