Введение
Ультразвуковой дальномер HC-SR04 — один из самых популярных датчиков для измерения расстояния. Он используется в робототехнике, системах умного дома, на складах и в промышленности. Но что, если подключить его к AI-агенту? ASI Biont позволяет автоматизировать сбор данных, анализ и принятие решений без написания сложного кода. В этой статье мы покажем, как интегрировать HC-SR04 с ESP32 и AI-агентом, используя MQTT и Hardware Bridge.
Почему стоит подключить датчик к AI?
Обычно HC-SR04 работает как изолированный компонент: микроконтроллер измеряет расстояние и выполняет локальную логику. С AI-агентом вы получаете:
- Интеллектуальный анализ: AI может выявлять тренды, аномалии и прогнозировать события.
- Удалённое управление: команды приходят из облака, без перепрошивки.
- Гибкость: меняйте логику через чат, а не через код на C++.
Способы подключения HC-SR04 к ASI Biont
У ASI Biont есть два основных пути для работы с HC-SR04:
| Способ | Описание | Когда использовать |
|---|---|---|
| MQTT + ESP32 | Датчик подключён к ESP32, который отправляет данные через MQTT-брокер | Если ESP32 имеет Wi-Fi и вы хотите облачную интеграцию без ПК |
| Hardware Bridge (COM-порт) | ESP32/Arduino подключены к ПК через USB, bridge.py передаёт данные в ASI Biont | Если устройство не имеет сети или вы хотите низкую задержку |
В этом руководстве мы рассмотрим первый сценарий: ESP32 с HC-SR04 отправляет данные по MQTT, а ASI Biont анализирует их и принимает решения.
Пошаговая интеграция: ESP32 + HC-SR04 + MQTT + ASI Biont
Шаг 1: Подключение датчика к ESP32
Соберите схему:
- VCC HC-SR04 → 5V ESP32
- GND → GND
- Trig → GPIO5
- Echo → GPIO18
Шаг 2: Прошивка ESP32 (MicroPython)
Установите MicroPython на ESP32 и загрузите скрипт:
import network
import time
from machine import Pin
import ujson
from umqtt.simple import MQTTClient
# Настройка Wi-Fi
SSID = "ваш_ssid"
PASSWORD = "ваш_пароль"
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(SSID, PASSWORD)
while not wlan.isconnected():
time.sleep(1)
# Настройка датчика
trig = Pin(5, Pin.OUT)
echo = Pin(18, Pin.IN)
def measure_distance():
trig.value(0)
time.sleep_us(2)
trig.value(1)
time.sleep_us(10)
trig.value(0)
while echo.value() == 0:
pass
start = time.ticks_us()
while echo.value() == 1:
pass
end = time.ticks_us()
duration = time.ticks_diff(end, start)
distance_cm = (duration * 0.0343) / 2
return distance_cm
# Настройка MQTT (брокер Mosquitto на localhost или облачный)
BROKER = "test.mosquitto.org"
TOPIC_DATA = "sensors/hc-sr04/distance"
TOPIC_CMD = "sensors/hc-sr04/command"
client = MQTTClient("esp32_hc", BROKER)
client.connect()
while True:
dist = measure_distance()
payload = ujson.dumps({"distance_cm": dist})
client.publish(TOPIC_DATA, payload)
print("Published:", payload)
time.sleep(5)
Этот скрипт измеряет расстояние каждые 5 секунд и публикует JSON в топик sensors/hc-sr04/distance.
Шаг 3: Подключение ASI Biont к MQTT
Теперь нужно, чтобы AI-агент подписался на этот топик. Для этого в чате asibiont.com напишите:
«Подключись к MQTT-брокеру test.mosquitto.org, подпишись на топик sensors/hc-sr04/distance и читай данные. Если расстояние меньше 50 см, опубликуй предупреждение в топик sensors/hc-sr04/alert и отправь мне уведомление в Telegram.»
AI выполнит команду через industrial_command:
industrial_command(
protocol="mqtt",
command="subscribe",
params={
"broker": "test.mosquitto.org",
"topic": "sensors/hc-sr04/distance"
}
)
Затем AI проанализирует данные и, при необходимости, опубликует в топик sensors/hc-sr04/alert.
Шаг 4: Настройка автоматических оповещений
AI может настроить триггеры без вашего участия. Например, он создаст скрипт, который:
- Получает данные из MQTT
- Проверяет условие (distance < 50)
- Отправляет сообщение в Telegram через requests.post к api.telegram.org
Пример кода, который AI выполнит в sandbox:
import requests
import json
# Получение данных (имитация)
distance = 45 # пример от MQTT
if distance < 50:
token = "ваш_токен_бота"
chat_id = "ваш_chat_id"
text = f"⚠️ Внимание! Расстояние {distance} см ниже порога 50 см!"
url = f"https://api.telegram.org/bot{token}/sendMessage"
requests.post(url, json={"chat_id": chat_id, "text": text})
Сценарии использования
1. Контроль заполнения контейнера на складе
Установите HC-SR04 над мусорным баком или контейнером для сырья. Как только расстояние до поверхности содержимого становится меньше заданного порога (бак полон), AI отправляет уведомление логисту.
Преимущество: не нужно программировать ESP32 под каждый порог — достаточно описать условие в чате.
2. Автоматизация парковки
HC-SR04 монтируется на стене гаража. AI отслеживает расстояние до автомобиля и подаёт команду на светодиодную индикацию через MQTT (публикует в другой топик). Если расстояние меньше 20 см — загорается красный свет.
3. Система предотвращения столкновений для робота
Робот на базе ESP32 с HC-SR04 передаёт данные в ASI Biont. AI анализирует скорость изменения расстояния и при резком сокращении (препятствие) отправляет команду остановки через MQTT.
Почему это выгодно?
- Экономия времени: подключение занимает 5 минут вместо часов написания кода.
- Гибкость: логику можно менять в реальном времени через чат.
- Масштабируемость: десятки датчиков могут работать одновременно, AI обрабатывает данные централизованно.
Заключение
Интеграция HC-SR04 с AI-агентом ASI Biont открывает новые возможности для автоматизации: от простого контроля расстояния до сложных предиктивных систем. Всё, что нужно — ESP32, датчик и доступ к asibiont.com. Попробуйте сами: подключите датчик, опишите задачу в чате, и AI сделает остальное.
Комментарии